Musenalm
Bibliographie deutscher Almanache des 18. und 19. Jahrhunderts. Runs as a PocketBase-based web app with SQLite storage.
Commands
Local build (dev assets + sqlite tags used in this repo):
./scripts/build.sh
Manual build equivalent:
go build -tags=dev,fts5,sqlite_icu -o ./tmp/musenalm .
Run (as used in the Docker image):
./scripts/run.sh
Docker image build:
./scripts/docker.sh
Reset local data directory:
./scripts/reset.sh
Docker Compose (prod/stage):
docker compose up --build
docker compose -f stage.docker-compose.yml up --build
Build prerequisites
- Go 1.24 (see
go.mod, also used inDockerfile). - SQLite build tags used in this repo:
- Local/dev build:
dev,fts5,sqlite_icu(seescripts/build.sh). - Docker build:
sqlite_fts5,sqlite_json,sqlite_foreign_keys,sqlite_vtable(seeDockerfile).
- Local/dev build:
- The
devbuild tag serves templates/assets from disk (no embedding). Without it, assets are embedded into the binary.
Configuration
Config files are loaded in this order, later values override earlier ones:
config.dev.json(dev defaults)config.json(runtime overrides)- Environment variables with prefix
MUSENALM_
Options
debug (bool)
Enables PocketBase dev mode and, unless disable_watchers is true, turns on template watchers.
allow_test_login (bool)
Creates/keeps a test superuser account (demo@example.com / password). When false, the test account is removed if present.
disable_watchers (bool)
Disables template watchers even if debug is true.
Environment variable equivalents:
MUSENALM_DEBUGMUSENALM_ALLOW_TEST_LOGINMUSENALM_DISABLE_WATCHERS
Hosting
Docker (recommended)
docker-compose.yml runs the app on port 8090 and persists data in /app/data/pb_data via an external volume.
Prereqs:
docker volume create musenalm
docker network create caddynet
Start:
docker compose up --build
Stage uses stage.docker-compose.yml and a separate external volume musenalmstage.
Bare binary
Build the binary, then run it with a data directory:
./tmp/musenalm serve --http=0.0.0.0:8090 --dir=/path/to/pb_data