homelab/nodes/heimdall/zipline/compose.yaml

54 lines
1.6 KiB
YAML

services:
zipline-db:
image: postgres:16
container_name: zipline-db
restart: unless-stopped
networks:
- proxy-net
env_file:
- .env
environment:
POSTGRES_USER: ${POSTGRESQL_USER:-zipline}
POSTGRES_PASSWORD: ${POSTGRESQL_PASSWORD:?POSTGRESSQL_PASSWORD is required}
POSTGRES_DB: ${POSTGRESQL_DB:-zipline}
volumes:
- /mnt/appdata/zipline/data/pgdata:/var/lib/postgresql/data
# healthcheck:
# test: ['CMD', 'pg_isready', '-U', 'zipline']
# interval: 10s
# timeout: 5s
# retries: 5
zipline:
image: ghcr.io/diced/zipline
container_name: zipline
restart: unless-stopped
env_file:
- .env
networks:
- proxy-net
environment:
- DATABASE_URL=postgres://zipline:${POSTGRESQL_PASSWORD}@zipline-db:5432/${POSTGRESQL_DB:-zipline}
depends_on:
zipline-db:
condition: service_healthy
volumes:
- '/mnt/appdata/zipline/uploads:/zipline/uploads'
- '/mnt/appdata/zipline/public:/zipline/public'
- '/mnt/appdata/zipline/themes:/zipline/themes'
labels:
- "traefik.enable=true"
- "traefik.http.routers.zipline.entrypoints=websecure"
- "traefik.http.routers.zipline.rule=Host(`zipline.castaldifamily.com`)"
- "traefik.http.routers.zipline.tls=true"
- "traefik.http.routers.zipline.tls.certresolver=cloudflare"
- "traefik.http.services.zipline.loadbalancer.server.port=3000"
# healthcheck:
# test: ["CMD-SHELL", "curl -f http://localhost:3000/api/healthcheck || exit 1"]
# interval: 10s
# timeout: 5s
# retries: 3
networks:
proxy-net:
external: true