about summary refs log tree commit diff

circus-register

Register a new companion

Setup

First, build an image:

$ docker build . -t circus-register

Then run the container:

$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --net circus -p 8081:8081 circus-register:latest -initialVPNPort 1194

initialVPNPort defines the first vpn port to be handed out to a companion container.

Function

This container should only show a small registration form for the user. The user inputs a name and recieves an access token and a link to a companion container.

All this contains does is run this command with a few custom values:

$ docker run \
    --net circus \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v $(pwd)/companion.json:/etc/companion.json \
    -p 8086:8080 \
    -d circus-companion:latest \
    -username "Player 1" \
    -accessCode theoneandonlyplayeroneisready \
    -sessionSalt salty \
    -vpnRemoteAddress 127.0.0.1 \
    -vpnRemotePort 1193

What this command does:

  • starts a circus companion
  • inserts the companion into the circus network
  • mounts the docker socket
  • mounts the companion.json seeding the challenges
  • exposes port 8080 to the outside world
  • defines the name of the player
  • defines the access-token the player can use to login
  • defines a salt for the session
  • defines where the remote vpn is running
  • defines behind which port the vpn can be found

That's a lot, but all we need to do is to get a name for the user, generate a random access code, start the container and return the access code to the user.

Overall procedure:

Circus-container connections: