Personal project. This is my own private Screeps server setup. No guarantees, no support, no promises. Use it as a reference if it's useful to you.
Heavily assisted by Claude.
New player? See the Player Setup Guide.
Setup using the Jomik screeps-server Docker image.
sudo apt install -y docker.io
sudo systemctl enable docker
sudo usermod -aG docker $USERLog out and back in for the group change to take effect.
curl --remote-name-all https://raw.githubusercontent.com/Jomik/screeps-server/main/{docker-compose.yml,.env.sample,config.yml} \
&& cp .env.sample .envEdit .env and set the following variables:
| Variable | Required | Description |
|---|---|---|
STEAM_KEY |
Yes | Steam API key from https://steamcommunity.com/dev/apikey |
Edit config.yml and set the mods list:
mods:
- screepsmod-auth
- screepsmod-admin-utils
- screepsmod-mongo
- screepsmod-tickrate
- screepsmod-featuresdocker compose up -ddocker compose exec screeps cliThen in the CLI:
setPassword("username", "password")This server runs two custom mods beyond the standard screepsmod stack:
- screepsmod-visualizer — web UI and session-authenticated game state API
- screepsmod-picklenet — player tool API (SSE room stream,
Game.picklenet)
| Command | Description |
|---|---|
make start |
Start the server |
make stop |
Stop the server |
make restart |
Restart the server |
make rebuild |
Pull latest images and restart |
make logs |
Tail server logs |
make cli |
Open the server CLI |
make reload |
Reload config.yml without restarting |
make set-user-pass USER=x PASS=y |
Set a user's password |
make headless-user USER=x PASS=y |
Create a user without Steam — password auth only, Steam client cannot log in as this user |
make deleteuser USER=x |
Delete a user |
- Server runs at
http://localhost:21025 - Auto-starts on reboot via Docker
- View logs:
docker compose logs screeps -f - Stop:
docker compose stop - Full teardown:
docker compose down -v
To require a password on the connection screen (the field players see when clicking
Change server in the Screeps client), set it in config.yml:
auth:
password: yourpasswordThen reload without restarting:
make reloadTo remove the password, delete the auth.password line and reload.
Registration is disabled. Users are created automatically when they first log in via the Steam client. Set their password via:
make set-user-pass USER=username PASS=passwordShare credentials with the user privately. They can change their password at http://<server>:21025/authmod/password/.