|
All checks were successful
Build Docker Image on Commit / build-and-publish (push) Successful in 3s
|
||
|---|---|---|
| .forgejo/workflows | ||
| defaults | ||
| scripts | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Readme.md | ||
| steamcred.env | ||
Resonite Headless Docker
A streamlined, all-in-one Docker container for Resonite Headless servers. Includes built-in support for Resonite Mod Loader (RML), automated updates, and easy configuration.
Image: git.merith.xyz/oci/resonite:nightly
⚠️ Note: Only the
nightlytag is supported.
🚀 Quick Start
On first startup, the container will download Resonite Headless, generate a default
Config.json, and may take several minutes depending on network speed.
Option 1: Docker Compose (Recommended)
-
Create
docker-compose.yml:services: resonite: image: git.merith.xyz/oci/resonite:nightly container_name: resonite network_mode: host restart: unless-stopped volumes: - ./data:/data:rw environment: # Core Configuration CONFIG_FILE: "/data/Config.json" # Mod Loader (Optional) RESONITE_MOD_LOADER: true MOD_URLS: | https://github.com/Raidriar796/StresslessHeadless/releases/latest/download/StresslessHeadless.dll https://github.com/New-Project-Final-Final-WIP/HeadlessTweaks/releases/latest/download/HeadlessTweaks.dll env_file: - ./steamcred.env # Optional: For SteamCMD updates -
Create
steamcred.env(Optional): Required if you need the container to download/update the game.STEAM_USER=your_username STEAM_PASS=your_password STEAM_BETA=your_beta_key⚠️ Security Note: Use a dedicated Steam account if possible.
Avoid using your primary account for automated SteamCMD downloads. -
Start the server:
docker-compose up -d
Option 2: Docker CLI (One-Liner)
For a quick test or simple setup:
docker run -d \
--name resonite \
--network host \
-v ./data:/data:rw \
git.merith.xyz/oci/resonite:nightly
⚙️ Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
DISABLE_STEAMCMD |
false |
Set true to skip game updates/install. |
CONFIG_FILE |
/data/Config.json |
Path to Resonite config. Auto-generated if missing. |
RESONITE_MOD_LOADER |
false |
Set true to enable RML. |
MOD_URLS |
(empty) | List of mod DLL URLs (one per line). |
RUN_AS |
1000 |
UID to run the server as. |
STOP_LAUNCH |
false |
Debug: Run setup scripts but stop before launching server. |
COMMAND |
/scripts/99_start.sh |
Override the startup script. |
Volumes & Data Structure
The container uses /data as the central storage location.
| Host Path | Container Path | Purpose |
|---|---|---|
./data |
/data |
Required. Root storage for all persistent data. |
./data/resonite |
/data/resonite |
Persist game installation & RML to avoid re-downloading. |
./data/steamcmd |
/data/steamcmd |
Persist SteamCMD cache. |
Internal Data Layout:
/data/Config.json: Main Config. Place your Headless Config here. It is automatically copied to the correct internal location on startup./data/app/: Stores Resonite's runtime data (Database, Cache)./data/resonite/: Contains the game installation and RML files.
🧩 Modding (RML)
To use mods:
- Set
RESONITE_MOD_LOADER: true. - Add direct download links to
.dllfiles inMOD_URLS.
The container will automatically download these mods into the correct directory on every startup.
🛠️ Management & Debugging
Common Commands:
-
View Logs:
docker logs -f resonite -
Access Shell:
docker exec -it resonite bash -
Manual Config:
Edit./data/Config.jsonafter the first run.
Note: The default generated config may need manual adjustment. -
Debug Mode:
SetSTOP_LAUNCH: trueto inspect the container state without starting the game server.
ℹ️ Advanced Notes
- Networking: Defaults to
--network hostas Resonite requires a wide range of UDP ports. - Podman: Theoretically supported but untested.
- Scripts: Startup logic is handled by scripts in
/scripts. You can mount your own to override them:-v ./my_scripts:/scripts:ro.
Repository: git.merith.xyz/oci/resonite