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!