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!