CI / test (ubuntu-latest, node 22) (push) Failing after 33m10s
CI / test (ubuntu-latest, node 24) (push) Failing after 34m41s
CI / tooling (lint, imports, typecheck) (push) Failing after 36m11s
CI / test (windows-latest, node 22) (push) Canceled after 0s
CI / test (windows-latest, node 24) (push) Canceled after 0s
33 lines
1.8 KiB
YAML
33 lines
1.8 KiB
YAML
# 卫戍协议:盟约 · one command: `docker compose up -d` (docs/DEPLOY.md「Docker」).
|
|
# The service builds the repository's own Dockerfile and tags the image; no other service is needed.
|
|
services:
|
|
stronghold:
|
|
build:
|
|
context: .
|
|
# A) download the art while building (~550 MB, needs internet): uncomment
|
|
# args: { FETCH_ASSETS: "1" }
|
|
image: stronghold-protocol
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
# Skland (森空岛) account binding: SP_SKLAND=1 turns the module on (docs/skland.md) and SP_SKLAND_DB points its
|
|
# SQLite credential store at the named volume below. To run without the module, comment out (or delete) both
|
|
# lines — the server then keeps no account credentials at all and the volume is never written.
|
|
SP_SKLAND: "1"
|
|
SP_SKLAND_DB: /app/skland-data/skland.db
|
|
volumes:
|
|
# The credential database must survive `docker compose down`, `docker compose up --build` and image rebuilds, so
|
|
# it lives in a named volume instead of the container's writable layer. A named volume behaves the same on Windows,
|
|
# macOS and Linux and needs no host path or permission setup; `docker compose down -v` is what deletes it.
|
|
# The database is a secret: never publish or serve it over HTTP (it is outside every static mount), and back it
|
|
# up carefully (docs/DEPLOY.md「Docker」).
|
|
- skland-data:/app/skland-data
|
|
# B) the host's art instead of the downloaded copy, read-only (prepare it with `node tools/setup.mjs`): uncomment
|
|
# - ./public/assets:/app/public/assets:ro
|
|
|
|
# One named volume, one runtime database. `docker volume inspect` shows where the host keeps it; it is private to the
|
|
# container user, so a bind mount (`./skland-data:/app/skland-data`) is only needed to read the file from the host.
|
|
volumes:
|
|
skland-data:
|