# Fabled Grimoire: the app and its database. # docker compose up -d # Then open http://localhost:5000. The first account registered becomes admin. # # Keep both volumes. app_data holds the instance's own SECRET_KEY, which seals # saved credentials; pgdata holds everything else. services: app: image: git.fabledsword.com/bvandeusen/fabledgrimoire:latest ports: - "5000:5000" environment: DATABASE_URL: "postgresql+asyncpg://${POSTGRES_USER:-grimoire}:${POSTGRES_PASSWORD:-grimoire}@db:5432/${POSTGRES_DB:-grimoire}" LOG_LEVEL: "${LOG_LEVEL:-INFO}" # Behind an HTTPS reverse proxy: # BASE_URL: "https://grimoire.example.com" # SECURE_COOKIES: "true" # TRUST_PROXY_HEADERS: "true" volumes: - app_data:/data depends_on: - db restart: unless-stopped db: # Postgres 17 with the vector extension Grimoire needs. image: pgvector/pgvector:pg17 stop_grace_period: 120s volumes: - pgdata:/var/lib/postgresql/data environment: POSTGRES_USER: ${POSTGRES_USER:-grimoire} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-grimoire} POSTGRES_DB: ${POSTGRES_DB:-grimoire} restart: unless-stopped volumes: app_data: pgdata: