This commit is contained in:
root
2026-09-20 14:16:41 +02:00
parent 0798933b05
commit b6d1909d7f
56 changed files with 3752 additions and 1989 deletions
+27 -10
View File
@@ -1,3 +1,7 @@
# The project name is fixed (not taken from the directory), so volume and network
# names stay stable: halcyon_data, halcyon_manual, halcyon_caddy-data, ...
name: halcyon
services:
web:
build: .
@@ -9,21 +13,33 @@ services:
# Local only: the public entrance is Caddy, which terminates TLS.
- "127.0.0.1:8070:8080"
environment:
DATABASE_URL: sqlite:/data/wh.db
DATABASE_URL: sqlite:/data/halcyon.db
# The world. `docker exec ... daily` inherits these, so the daily job always
# matches the server. A world refuses changed settings once it has run, so
# only change them on a fresh volume. Defaults shown; override in .env.
WH_SEED: ${WH_SEED:-1}
WH_TICKS_PER_DAY: ${WH_TICKS_PER_DAY:-1440}
WH_CYCLES_PER_TICK: ${WH_CYCLES_PER_TICK:-2000}
WH_PROGRAM_BYTES: ${WH_PROGRAM_BYTES:-4096}
WH_RAM_BYTES: ${WH_RAM_BYTES:-8192}
WH_COMM_BYTES: ${WH_COMM_BYTES:-1024}
WH_ASTEROIDS: ${WH_ASTEROIDS:-500}
HALCYON_SEED: ${HALCYON_SEED:-1}
HALCYON_TICKS_PER_DAY: ${HALCYON_TICKS_PER_DAY:-1440}
HALCYON_CYCLES_PER_TICK: ${HALCYON_CYCLES_PER_TICK:-2000}
HALCYON_PROGRAM_BYTES: ${HALCYON_PROGRAM_BYTES:-4096}
HALCYON_RAM_BYTES: ${HALCYON_RAM_BYTES:-8192}
HALCYON_COMM_BYTES: ${HALCYON_COMM_BYTES:-1024}
HALCYON_ASTEROIDS: ${HALCYON_ASTEROIDS:-500}
volumes:
- halcyon-data:/data
- data:/data
- manual:/manual:ro # the PDF manual, rendered separately (see below)
command: ["server"]
# Renders the PDF manual into the volume the web service reads. Not started by
# `docker compose up` (that stays fast); run it with scripts/render-manual.sh.
manual:
build:
context: .
target: manual
image: halcyon-manual:latest
profiles: ["manual"]
volumes:
- manual:/out
caddy:
image: caddy:2-alpine
container_name: halcyon-caddy
@@ -40,6 +56,7 @@ services:
- caddy-config:/config
volumes:
halcyon-data:
data:
manual:
caddy-data:
caddy-config: