mirror of
https://github.com/allaunthefox/SilverSight.git
synced 2026-07-31 01:25:21 +00:00
- Port NUVMAP projection engine from Research Stack to SilverSight with Q16_16 fixed-point (zero Float) and CBOR serialization - Add Rotational Wave — Braid Correspondence formalization at boundary (ChiralLabel, RossbyDrift, rossby_convergence_bound stubbed, kelvin_wave_eigensolid proven) - Add auto-pipeline CI workflow, webhook receiver, Forgejo MCP server - Add SOPS/Age encryption config - Add stack compose for portable deployment - Add rotational wave design doc
165 lines
4.6 KiB
YAML
165 lines
4.6 KiB
YAML
services:
|
|
postgres:
|
|
image: docker.io/library/postgres:16-alpine
|
|
restart: unless-stopped
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
environment:
|
|
POSTGRES_PASSWORD: ${PG_PASS:?required}
|
|
|
|
redis:
|
|
image: docker.io/library/redis:7-alpine
|
|
restart: unless-stopped
|
|
volumes:
|
|
- redis_data:/data
|
|
|
|
authentik-server:
|
|
image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2026.5.3}
|
|
command: server
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${PORT_HTTP:-9000}:9000"
|
|
- "${PORT_HTTPS:-9443}:9443"
|
|
environment:
|
|
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:-authentik-secret-key}
|
|
AUTHENTIK_POSTGRESQL__HOST: postgres
|
|
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
|
|
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-postgres}
|
|
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS:-postgres}
|
|
AUTHENTIK_REDIS__HOST: redis
|
|
AUTHENTIK_REDIS__PORT: 6379
|
|
volumes:
|
|
- authentik_data:/data
|
|
- ./authentik/templates:/templates
|
|
depends_on:
|
|
postgres:
|
|
condition: service_started
|
|
redis:
|
|
condition: service_started
|
|
|
|
authentik-worker:
|
|
image: ghcr.io/goauthentik/server:${AUTHENTIK_TAG:-2026.5.3}
|
|
command: worker
|
|
restart: unless-stopped
|
|
environment:
|
|
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:-authentik-secret-key}
|
|
AUTHENTIK_POSTGRESQL__HOST: postgres
|
|
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
|
|
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-postgres}
|
|
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS:-postgres}
|
|
AUTHENTIK_REDIS__HOST: redis
|
|
AUTHENTIK_REDIS__PORT: 6379
|
|
volumes:
|
|
- authentik_data:/data
|
|
- ./authentik/templates:/templates
|
|
depends_on:
|
|
postgres:
|
|
condition: service_started
|
|
redis:
|
|
condition: service_started
|
|
|
|
homarr:
|
|
image: ghcr.io/homarr-labs/homarr:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${PORT_HOMARR:-7575}:7575"
|
|
environment:
|
|
- SECRET_ENCRYPTION_KEY=${SECRET_ENCRYPTION_KEY:-1502ee91fadf86c4c99a9bc1a66ce17ac9ab3a148edbe4084b4af496031ae10d}
|
|
- HOMARR__POSTGRES_ENABLED=true
|
|
- HOMARR__POSTGRES_HOST=postgres
|
|
- HOMARR__POSTGRES_PORT=5432
|
|
- HOMARR__POSTGRES_USER=${PG_USER:-postgres}
|
|
- HOMARR__POSTGRES_PASSWORD=${PG_PASS:?required}
|
|
- HOMARR__POSTGRES_DATABASE=homarr
|
|
volumes:
|
|
- homarr_data:/app/data
|
|
depends_on:
|
|
postgres:
|
|
condition: service_started
|
|
|
|
audiobookshelf:
|
|
image: ghcr.io/advplyr/audiobookshelf:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${PORT_ABS:-13378}:80"
|
|
volumes:
|
|
- abs_config:/config
|
|
- abs_metadata:/metadata
|
|
- ./audiobooks:/audiobooks:ro
|
|
- ./podcasts:/podcasts:ro
|
|
depends_on: []
|
|
|
|
kanboard:
|
|
image: kanboard/kanboard:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${PORT_KANBOARD:-8090}:80"
|
|
environment:
|
|
- DATABASE_URL=postgres://postgres:postgres@postgres:5432/kanboard?sslmode=disable
|
|
volumes:
|
|
- kanboard_data:/var/www/app/data
|
|
depends_on:
|
|
postgres:
|
|
condition: service_started
|
|
|
|
forgejo:
|
|
image: codeberg.org/forgejo/forgejo:1.20.2-0
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${PORT_FORGEJO_HTTP:-3000}:3000"
|
|
- "${PORT_FORGEJO_SSH:-2222}:22"
|
|
volumes:
|
|
- forgejo_data:/data
|
|
environment:
|
|
- USER_UID=1000
|
|
- USER_GID=100
|
|
- FORGEJO__database__DB_TYPE=postgres
|
|
- FORGEJO__database__HOST=postgres:5432
|
|
- FORGEJO__database__NAME=forgejo
|
|
- FORGEJO__database__USER=postgres
|
|
- FORGEJO__database__PASSWD=postgres
|
|
- FORGEJO__actions__ENABLED=true
|
|
- FORGEJO__server__DOMAIN=neon-64gb
|
|
- FORGEJO__server__HTTP_PORT=3000
|
|
- FORGEJO__server__ROOT_URL=http://localhost:3000
|
|
depends_on:
|
|
postgres:
|
|
condition: service_started
|
|
|
|
webhook:
|
|
image: docker.io/library/python:3.13-alpine
|
|
command: python3 /app/webhook_receiver.py
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${PORT_WEBHOOK:-8080}:8080"
|
|
environment:
|
|
- WEBHOOK_SECRET=${WEBHOOK_SECRET:-auto-pipeline-secret}
|
|
- WEBHOOK_PORT=8080
|
|
volumes:
|
|
- "${PIPELINE_DIR:-/home/allaun/SilverSight}/scripts/auto:/app:ro"
|
|
depends_on: []
|
|
|
|
caddy:
|
|
image: docker.io/library/caddy:2-alpine
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${PORT_CADDY_HTTP:-9090}:80"
|
|
- "${PORT_CADDY_HTTPS:-9091}:443"
|
|
volumes:
|
|
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
|
|
- caddy_data:/data
|
|
depends_on:
|
|
- authentik-server
|
|
- homarr
|
|
- audiobookshelf
|
|
|
|
volumes:
|
|
postgres_data:
|
|
redis_data:
|
|
authentik_data:
|
|
homarr_data:
|
|
abs_config:
|
|
abs_metadata:
|
|
kanboard_data:
|
|
forgejo_data:
|
|
caddy_data:
|