blob: 5e4d010756778ea6e059fd5b4e906422dac98c52 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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/`.
|