Files
learning-platform/docker-compose.prod.yml

53 lines
1.1 KiB
YAML

services:
frontend:
build: .
restart: always
expose:
- "80"
pocketbase:
image: ghcr.io/muchobien/pocketbase:latest
restart: always
expose:
- "8090"
ports:
- "8090:8090" # Remove after initial setup via admin UI
volumes:
- pb_data:/pb/pb_data
command: ["serve", "--http=0.0.0.0:8090"]
caddy:
image: caddy:2-alpine
restart: always
ports:
- "80:80"
- "443:443"
environment:
- DOMAIN_NAME=${DOMAIN_NAME}
entrypoint:
- /bin/sh
- -c
- |
CLEAN_DOMAIN=$(printf '%s' "$DOMAIN_NAME" | tr -d ';')
cat > /etc/caddy/Caddyfile <<EOF
$${CLEAN_DOMAIN} {
handle /pb/* {
uri strip_prefix /pb
reverse_proxy pocketbase:8090
}
reverse_proxy /* frontend:80
}
EOF
caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
volumes:
- caddy_data:/data
- caddy_config:/config
depends_on:
- frontend
- pocketbase
volumes:
caddy_data:
caddy_config:
pb_data: