2026-01-28 19:37:19 +01:00
2026-01-28 19:37:19 +01:00
2026-01-28 19:37:19 +01:00
2026-01-28 19:37:19 +01:00
2026-01-28 19:37:19 +01:00
2026-01-16 12:05:33 +01:00
2026-01-19 17:21:02 +01:00
2026-01-28 19:37:19 +01:00
2026-01-28 19:37:19 +01:00
2026-01-28 19:37:19 +01:00
2026-01-28 19:37:19 +01:00
2025-03-02 15:29:11 +01:00
2025-10-02 15:45:15 +00:00
2025-03-07 22:47:32 +01:00
2026-01-23 16:18:05 +01:00
2026-01-23 10:31:03 +01:00
2026-01-23 10:31:03 +01:00
2025-02-07 13:11:31 +01:00
2025-05-29 02:31:27 +02:00
2026-01-28 17:26:04 +01:00

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 in Dockerfile).
  • SQLite build tags used in this repo:
    • Local/dev build: dev,fts5,sqlite_icu (see scripts/build.sh).
    • Docker build: sqlite_fts5,sqlite_json,sqlite_foreign_keys,sqlite_vtable (see Dockerfile).
  • The dev build 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:

  1. config.dev.json (dev defaults)
  2. config.json (runtime overrides)
  3. 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_DEBUG
  • MUSENALM_ALLOW_TEST_LOGIN
  • MUSENALM_DISABLE_WATCHERS

Hosting

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
Description
All code for musenalm.de -- uses Pocketbase but defines SSR endpoints for data presentation and editing.
Readme BSD-2-Clause 395 MiB
Languages
CSS 47%
JavaScript 16%
Go 13.3%
Less 10.2%
SCSS 8.2%
Other 5.3%