Skip to content

Latest commit

 

History

History
96 lines (62 loc) · 2.65 KB

File metadata and controls

96 lines (62 loc) · 2.65 KB

Linux Docker Quickstart

This is the low-cost target deployment path: Linux x86_64 VPS, Docker Engine, one container per Nuclear Option dedicated server, and the panel bound to localhost.

1. Prepare the VPS

Use a current Debian or Ubuntu x86_64 host. Install Docker Engine and the Compose plugin from Docker's official packages.

Open only the ports you need:

  • Panel: keep on 127.0.0.1:5000; expose through a reverse proxy only.
  • Game UDP: default 7777/udp.
  • Query UDP: default 7778/udp.
  • Command TCP: default 7779/tcp, keep local/private unless explicitly required.

2. Configure

cp .env.example .env

Edit .env:

  • set SERVER_NAME
  • keep MAX_PLAYERS=16 unless you have benchmark data
  • set unique GAME_PORT, QUERY_PORT, and COMMAND_PORT per server
  • keep ENABLE_COMMAND_PORT=false for public deployments unless admin access requires it

3. Build And Start

Build the panel and the dedicated-server image:

docker compose -f docker/compose/base.yml -f docker/compose/linux.yml build

For a syntax/base-image check that does not download the game:

SKIP_STEAMCMD=true docker compose -f docker/compose/base.yml -f docker/compose/linux.yml build nuclear-option-server

Install/update the game files into the persistent server volume:

docker compose -f docker/compose/base.yml -f docker/compose/linux.yml run --rm nuclear-option-server update

Start the panel:

docker compose -f docker/compose/base.yml -f docker/compose/linux.yml up -d panel

Start the example game server profile:

docker compose -f docker/compose/base.yml -f docker/compose/linux.yml --profile servers up -d nuclear-option-server

The panel is available on the VPS itself at:

http://127.0.0.1:5000

For external access, put a TLS reverse proxy in front of the panel and keep the Flask service local.

Data Layout

Per-server data lives under:

data/servers/<name>/

Each server gets persistent directories for server files, config, missions, bans, logs, and recordings. Server binaries are installed into the server directory by the explicit update command, not baked into the image layer.

Capacity Planning

Use these assumptions until measured on your exact host:

  • 16-player server: 1 vCPU and 2-3 GB RAM
  • above 16-20 players: plan closer to 3-5 GB RAM
  • host reserve: at least 1 GB RAM + 0.5 vCPU

Tune CPU and memory limits after collecting real metrics.

Full Validation

Run the real validation on Linux x86_64:

./scripts/validate_nuclear_option_linux_server.sh --verbose --no-cache
./scripts/validate_docker_server.sh --platform linux/amd64 --verbose --no-cache