Files
server-stack/docker-compose.yml
JamBox b217747ab6 Add Summit Stride 5K training tracker at /running
Node/Express backend with SQLite storage, WebAuthn passkey auth,
and React frontend built via Vite. Caddy routes /running/* via
handle_path labels on docker-compose.
2026-02-15 22:01:58 -08:00

77 lines
1.8 KiB
YAML

services:
caddy:
image: lucaslorentz/caddy-docker-proxy:ci-alpine
container_name: caddy
ports:
- "80:80"
- "443:443"
environment:
- CADDY_INGRESS_NETWORKS=server-stack_server-network
networks:
- server-network
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./caddy_data:/data
restart: unless-stopped
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
networks:
- server-network
volumes:
- ./gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
labels:
caddy: git.jamesvanboxtel.com
caddy.reverse_proxy: "{{upstreams 3000}}"
restart: always
tessavb-app:
build: ./apps/tessavb
container_name: tessavb-app
networks:
- server-network
volumes:
- ./apps/tessavb/data:/app/data
labels:
caddy: tessavb.com
caddy.reverse_proxy: "{{upstreams 8080}}"
restart: unless-stopped
jamesvanboxtel-app:
build: ./apps/jamesvanboxtel
container_name: jamesvanboxtel-app
networks:
- server-network
volumes:
- ./apps/jamesvanboxtel/data:/app/data
labels:
caddy: jamesvanboxtel.com
caddy.reverse_proxy: "{{upstreams 8080}}"
restart: unless-stopped
running-app:
build: ./apps/running
container_name: running-app
networks:
- server-network
volumes:
- ./apps/running/data:/app/data
environment:
- NODE_ENV=production
- SESSION_SECRET=${RUNNING_SESSION_SECRET:-change-me-in-production}
labels:
caddy: jamesvanboxtel.com
caddy.handle_path: /running/*
caddy.handle_path.reverse_proxy: "{{upstreams 8080}}"
restart: unless-stopped
networks:
server-network:
external: false