diff options
| author | Alex Pooley (@zuedev) <zuedev@gmail.com> | 2026-04-18 18:10:47 +0100 |
|---|---|---|
| committer | Alex Pooley (@zuedev) <zuedev@gmail.com> | 2026-04-18 18:10:47 +0100 |
| commit | 6ae7d263a341c63f191bbb907136fc51c6ecf62d (patch) | |
| tree | 0ccaf666cfa65b62dc415af895f88832c47b98f6 /README.md | |
| parent | fb9210408c1d8792600410a08727b41404f6c418 (diff) | |
| download | NuclearOptionDedicatedServerDocker-6ae7d263a341c63f191bbb907136fc51c6ecf62d.tar NuclearOptionDedicatedServerDocker-6ae7d263a341c63f191bbb907136fc51c6ecf62d.tar.gz NuclearOptionDedicatedServerDocker-6ae7d263a341c63f191bbb907136fc51c6ecf62d.tar.bz2 NuclearOptionDedicatedServerDocker-6ae7d263a341c63f191bbb907136fc51c6ecf62d.tar.xz NuclearOptionDedicatedServerDocker-6ae7d263a341c63f191bbb907136fc51c6ecf62d.zip | |
add readme
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..5e4d010 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +# Nuclear Option Dedicated Server Docker + +A Docker setup for running a [Nuclear Option](https://store.steampowered.com/app/2376900/Nuclear_Option/) dedicated server. + +## Prerequisites + +- Docker and Docker Compose +- A Steam account that owns Nuclear Option (or use anonymous login if the app supports it) + +## Quick Start + +1. Clone this repository. + +2. Create a `.env` file with your Steam credentials: + + ```env + STEAM_USERNAME=your_username + STEAM_PASSWORD=your_password + ``` + + Or use anonymous login: + + ```env + STEAM_USERNAME=anonymous + ``` + +3. Start the server: + + ```sh + docker compose up -d + ``` + +The entrypoint will download/update the server files via SteamCMD, apply any overlay files, and launch the server. + +## Configuration + +### Server Config via Environment Variables + +You can override fields in `DedicatedServerConfig.json` by setting environment variables prefixed with `CONFIG_` in your `.env` file. The field name is uppercased. + +| Environment Variable | Type | Description | +| ------------------------- | ------- | ---------------------------------------------- | +| `CONFIG_MISSIONDIRECTORY` | string | Path to the missions directory | +| `CONFIG_MODDEDSERVER` | boolean | Whether the server is modded (`true`/`false`) | +| `CONFIG_HIDDEN` | boolean | Hide the server from the browser | +| `CONFIG_SERVERNAME` | string | Server name shown in the server browser | +| `CONFIG_PASSWORD` | string | Server password (empty for no password) | +| `CONFIG_MAXPLAYERS` | number | Maximum number of players | +| `CONFIG_DISABLEERRORKICK` | boolean | Disable kicking players on error | +| `CONFIG_NOPLAYERSTOPTIME` | number | Seconds before stopping when no players are on | +| `CONFIG_POSTMISSIONDELAY` | number | Delay in seconds after a mission ends | +| `CONFIG_ROTATIONTYPE` | number | Mission rotation type | + +### Direct Config Editing + +You can also edit `nuclearoption/DedicatedServerConfig.json` directly. This file is mounted into the container at `/app`. + +### Overlay + +Any files placed in an `overlay/` directory will be copied over the server installation at `/app` on each startup. This is useful for adding custom missions, mods, or overriding specific files. + +## Volumes + +| Host Path | Container Path | Purpose | +| ----------------- | -------------- | ----------------------------- | +| `./nuclearoption` | `/app` | Server installation directory | +| `./overlay` | `/overlay` | Optional file overlay | + +## Networking + +The container uses `network_mode: host`, so the server binds directly to the host's network interfaces. No port mapping is needed. + +## Logs + +Server logs are written to `nuclearoption/logs/`. |
