Files
Erupe/docker
Houmgaor 486be65a38 fix(protbot,channelserver): fix sign protocol and entrance parsing, guard nil save data
The protbot sent "DSGN:\x00" as the sign request type, but the server
strips the last 3 characters as a version suffix. Send "DSGN:041"
(ZZ client mode 41) to match the real client format.

The entrance channel entry parser read 14 bytes for remaining fields
but the server writes 18 bytes (9 uint16, not 7), causing a panic
when parsing the server list.

The channel server panicked on disconnect when a session had no
decompressed save data (e.g. protbot or early client disconnect).
Guard Save() against nil decompSave.

Also fix docker-compose volume mount for Postgres 18 which changed
its data directory layout.
2026-02-20 14:17:40 +01:00
..

Docker for Erupe

Quick Start

  1. From the repository root, copy and edit the config:

    cp config.example.json docker/config.json
    

    Edit docker/config.json — set Database.Host to "db" and match the password to docker-compose.yml (default: password).

  2. Place your quest/scenario files in docker/bin/.

  3. Start everything:

    cd docker
    docker compose up
    

The database is automatically initialized and patched on first start via init/setup.sh.

pgAdmin is available at http://localhost:5050 (default login: user@pgadmin.com / password).

Building Locally

By default the server service pulls the prebuilt image from GHCR. To build from source instead, edit docker-compose.yml: comment out the image line and uncomment the build section, then:

docker compose up --build

Stopping the Server

docker compose stop     # Stop containers (preserves data)
docker compose down     # Stop and remove containers (preserves data volumes)

To delete all persistent data, remove these directories after stopping:

  • docker/db-data/
  • docker/savedata/

Updating

After pulling new changes:

  1. Check for new patch schemas in schemas/patch-schema/ — apply them via pgAdmin or psql into the running database container.

  2. Rebuild and restart:

    docker compose down
    docker compose build
    docker compose up
    

Troubleshooting

Postgres won't populate on Windows: init/setup.sh must use LF line endings, not CRLF. Open it in your editor and convert.