- Fix API routing: redirect_slashes=False + strip trailing slashes from route paths - Fix StaticFiles catch-all intercepting /api/* before FastAPI redirect - Add [tool.hatch.build.targets.wheel] to pyproject.toml for Docker builds - Install docker-compose plugin (v2.34.0) as CLI plugin - Create Dockerfile (python:3.11-alpine, CMD python -m lightsync) - Create docker-compose.prod.yml (Traefik + Authelia, edge network) - Deploy lightsync container to lightsync.groll.cloud - Add LightSync entry to start/projects.json - Update frontend app.js to use /api/devices (no trailing slash)
25 lines
688 B
YAML
25 lines
688 B
YAML
services:
|
|
lightsync:
|
|
build: .
|
|
container_name: lightsync
|
|
restart: unless-stopped
|
|
environment:
|
|
HOST: 0.0.0.0
|
|
PORT: "8000"
|
|
volumes:
|
|
- ./shows:/app/shows
|
|
- ./devices.json:/app/devices.json
|
|
networks:
|
|
- edge
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.lightsync.rule=Host(`lightsync.groll.cloud`)"
|
|
- "traefik.http.routers.lightsync.entrypoints=websecure"
|
|
- "traefik.http.routers.lightsync.tls.certresolver=letsencrypt"
|
|
- "traefik.http.routers.lightsync.middlewares=authelia@docker"
|
|
- "traefik.http.services.lightsync.loadbalancer.server.port=8000"
|
|
|
|
networks:
|
|
edge:
|
|
external: true
|