From 6ae7d263a341c63f191bbb907136fc51c6ecf62d Mon Sep 17 00:00:00 2001 From: "Alex Pooley (@zuedev)" Date: Sat, 18 Apr 2026 18:10:47 +0100 Subject: add readme --- README.md | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 README.md 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/`. -- cgit v1.2.3