Skip to main content

Overview

The official image is published at ghcr.io/landsandboat/server:latest (Ubuntu-based) and ghcr.io/landsandboat/server:alpine (Alpine-based). The image contains the compiled server binaries, scripts, SQL, and tools — but not a database.

Prerequisites: mesh volumes

Navigation and line-of-sight meshes are shipped in a separate image. You must load them into named Docker volumes before starting the server:
This is a one-time operation. The volumes (losmeshes, navmeshes) persist across container restarts.

Database configuration

A database is not included in the image. You must provide connection credentials via environment variables:

Running the server


Docker Compose

Docker Compose is the recommended approach. It manages all services, health checks, and startup order automatically.

Volume mounts


Customization

Settings via environment variables

Any setting in a settings/*.lua file can be overridden with an environment variable using the format:
Examples:

Settings files

For more extensive changes, bind-mount an entire settings file:

Modules

Bind-mount a modules directory to load Lua and SQL runtime modules:
C++ modules require building a custom image. See Build from source for build-arg options.

Default user

The image runs as user xiadmin (UID 1000, GID 1000). Ensure that bind-mounted files and directories are readable by UID 1000.

Port reference