Skip to main content

Create a worker

The worker node is the edge node in a cluster deployment. This node will host ProxyPot, and receive attack traffic. All data collected will then be sent to the controller node for review.

System Requirements

This depends on the size of your worker, and how many emulations you intend to deploy. As a starting point, these should be your minimum requirements:

  • CPU: Any modern (2022+) dual-core CPU
  • RAM: 500MB
  • HDD: 10GB
  • OS: x86 or ARM system capable of hosting Docker, ideally Linux (Debian)

The instructions below assume you're on a Linux distribution, specifically Debian.

System Setup

We generally recommend using /opt to hold your container data.

After installing Docker following their setup guide, create /opt/docker-compose.yml with the following contents:

services:
worker:
image: ghcr.io/globalcyberalliance/proxypot:latest
container_name: worker
environment:
- PORT=8080
- ROLE=worker
- CONTROLLER_KEY=the-api-key-id-from-before
- CONTROLLER_URL=http://controller.ip:8080
ports:
- 8080:8080
volumes:
- /opt/proxypot:/app
restart: unless-stopped

Do note the two controller environment variables. You'll need to populate both of these before bringing your container online. You can then bring the container from the /opt directory by running docker compose up -d.

Note the /opt/proxypot directory. While this will hold this node's data, it's not too important to backup as the data is all being sent to the controller node anyway.

Joining the Cluster

Once the container starts, it should automatically make a request to the controller, and provide the controller with an API key for authentication. You should still review the container's logs to ensure that nothing has gone wrong ( docker logs worker).

You can ensure that the node has been registered by querying the GET /api/nodes endpoint on the controller node. If the worker node's status is no longer pending, then the worker is setup and ready to go!