gr-mcp/docs/docker-compose.yml
Ryan Malloy 3fe862109d add docs site deployment infrastructure (Docker + Caddy)
- Multi-stage Dockerfile: Node builder → Caddy static prod, Node HMR dev
- docker-compose with dev/prod profiles on external caddy network
- Caddyfile with immutable hashed asset caching
- Makefile: prod, dev, down, logs, rebuild targets
- Site URL configurable via SITE_URL env var
2026-02-24 09:36:43 -07:00

45 lines
1.3 KiB
YAML

services:
# ── Production: Caddy serves static build ──────────────────────
docs:
build:
context: .
target: prod
args:
SITE_URL: https://${DOMAIN}
restart: unless-stopped
networks:
- caddy
labels:
caddy: ${DOMAIN}
caddy.reverse_proxy: "{{upstreams 80}}"
# ── Development: Node with HMR ────────────────────────────────
docs-dev:
build:
context: .
target: dev
profiles: [dev]
volumes:
- ./src:/app/src
- ./astro.config.mjs:/app/astro.config.mjs
- ./package.json:/app/package.json
environment:
- VITE_HMR_HOST=${DOMAIN}
networks:
- caddy
labels:
caddy: ${DOMAIN}
caddy.reverse_proxy: "{{upstreams 4321}}"
caddy.reverse_proxy.flush_interval: "-1"
caddy.reverse_proxy.transport: http
caddy.reverse_proxy.transport.read_timeout: "0"
caddy.reverse_proxy.transport.write_timeout: "0"
caddy.reverse_proxy.transport.keepalive: 5m
caddy.reverse_proxy.transport.keepalive_idle_conns: "10"
caddy.reverse_proxy.stream_timeout: 24h
caddy.reverse_proxy.stream_close_delay: 5s
networks:
caddy:
external: true