# Standalone compose stack for skald. Postgres lives inside the # skald container — single deployable unit until the tool stabilises. # # Set in .env (or the environment): # POSTGRES_PASSWORD=... # required # CLAWDFORGE_URL=http://...:8800 # if running gen / cleanup / audit # CLAWDFORGE_TOKEN=cf_... # SKALD_DATA=./pgdata # optional override; defaults to ./pgdata # SKALD_SEED=./seed # optional override; defaults to ./seed # # To import the first story: # docker compose exec skald skald import-markdown \ # --path /seed/.md \ # --title "" name: skald services: skald: build: . image: skald:latest container_name: skald restart: unless-stopped ports: - "7780:7780" environment: POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required} POSTGRES_USER: ${POSTGRES_USER:-skald} POSTGRES_DB: ${POSTGRES_DB:-skald} DATABASE_URL: ${DATABASE_URL:-postgresql://skald:${POSTGRES_PASSWORD}@localhost:5432/skald} CLAWDFORGE_URL: ${CLAWDFORGE_URL:-} CLAWDFORGE_TOKEN: ${CLAWDFORGE_TOKEN:-} SKALD_MODEL: ${SKALD_MODEL:-opus} F5_TTS_URL: ${F5_TTS_URL:-} KOKORO_URL: ${KOKORO_URL:-} TORTOISE_URL: ${TORTOISE_URL:-} RUST_LOG: ${RUST_LOG:-info} SKALD_LOG_FORMAT: ${SKALD_LOG_FORMAT:-json} volumes: # Postgres data — persist across container recreates. - ${SKALD_DATA:-./pgdata}:/var/lib/postgresql/data # Markdown corpus to import via `skald import-markdown`. - ${SKALD_SEED:-./seed}:/seed:ro