SQLite replaces Postgres, and two fixes from using the thing. - The database is a file under ./storage instead of a second container. Ten members never needed a database server, and the driver is pure Go, so the build stays CGO_ENABLED=0 and the dependency count is unchanged. One bind mount is now the whole backup: no pgdata, no healthcheck-gated depends_on, no startup retry loop. Timestamps are UTC text, idle_ttl is seconds, the divisive/unified boards carry their own stddev, and foreign keys are on by pragma. Tests get a database file each and run without any setup - Invites are copied, not clicked. An invite is something to send, and the anchor opened the join form in the admin's own browser - Feedback asks for more than faults: the footer reads "Ongelmia? Ideoita? Palautetta?" and the page behind it invites ideas rather than only bugs - Kuuntele YouTubessa opens in a new tab, so a half-typed review survives it
23 lines
743 B
YAML
23 lines
743 B
YAML
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
args:
|
|
VERSION: ${VERSION:-dev}
|
|
environment:
|
|
ADMIN_USER: ${ADMIN_USER:-admin}
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD:?set ADMIN_PASSWORD in .env}
|
|
ADDR: ":8080"
|
|
# Inside the container the admin listener must bind the container's own interface; it is not
|
|
# published below, so it stays unreachable from outside without a tunnel or the proxy.
|
|
ADMIN_ADDR: ":8081"
|
|
SECURE_COOKIES: ${SECURE_COOKIES:-true}
|
|
PUBLIC_URL: ${PUBLIC_URL:-}
|
|
# The SQLite file sits in here beside the audio, so this one mount is the whole backup.
|
|
volumes:
|
|
- ./storage:/storage
|
|
ports:
|
|
- "8080:8080"
|
|
- "8081:8081"
|
|
restart: unless-stopped
|