No description
Find a file
Merith-TK 82b997103c
All checks were successful
Build Docker Image on Commit / build-and-publish (push) Successful in 3s
Overhaul the god damned readme
2025-12-28 02:13:14 +00:00
.forgejo/workflows Initial commit 2024-11-19 04:25:19 +00:00
defaults rebase to dotnet containter 2024-12-09 21:58:51 +00:00
scripts fix startup error with "missing user"?? 2025-12-24 21:45:12 +00:00
.gitignore rebase to dotnet containter 2024-12-09 21:58:51 +00:00
docker-compose.yml update compose file with some altered defaults 2025-12-24 21:49:50 +00:00
Dockerfile dotnet10 2025-12-23 19:35:09 +00:00
Readme.md Overhaul the god damned readme 2025-12-28 02:13:14 +00:00
steamcred.env push headless config 2024-11-18 20:30:43 -08:00

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 nightly tag 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.

  1. 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
    
  2. 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.

  3. 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:

  1. Set RESONITE_MOD_LOADER: true.
  2. Add direct download links to .dll files in MOD_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.json after the first run.
    Note: The default generated config may need manual adjustment.

  • Debug Mode:
    Set STOP_LAUNCH: true to inspect the container state without starting the game server.


Advanced Notes

  • Networking: Defaults to --network host as 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