31 lines
1.0 KiB
YAML
31 lines
1.0 KiB
YAML
services:
|
|
queue:
|
|
build: .
|
|
image: queue:latest
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./data:/data
|
|
environment:
|
|
# Full public URL used to generate the QR code.
|
|
# Must match the hostname in the Traefik rule below.
|
|
- APP_URL=https://${QUEUE_HOSTNAME:-queue.example.com}
|
|
- DB_PATH=/data/queues.db
|
|
networks:
|
|
- traefik
|
|
labels:
|
|
- "traefik.enable=true"
|
|
# ---- routing ----
|
|
- "traefik.http.routers.queue.rule=Host(`${QUEUE_HOSTNAME:-queue.example.com}`)"
|
|
- "traefik.http.routers.queue.entrypoints=websecure"
|
|
- "traefik.http.routers.queue.tls=true"
|
|
- "traefik.http.routers.queue.tls.certresolver=letsencrypt"
|
|
# ---- backend ----
|
|
- "traefik.http.services.queue.loadbalancer.server.port=8080"
|
|
# WebSocket connections use the same router — Traefik v2+ passes
|
|
# Upgrade/Connection headers through by default, no extra middleware needed.
|
|
|
|
networks:
|
|
# Must already exist: docker network create traefik
|
|
backend:
|
|
external: true
|