Three additions to the docs site, all atomic to docs/: 1. Deployment configs (Dockerfile + Caddyfile + docker-compose.yml + .env.example + Makefile) mirroring bingham/cucx's pattern. The compose service uses caddy-docker-proxy labels with the operator's .mcp.l.supported.systems wildcard DNS pattern; suggested subdomain is mcaxl-docs.mcp.l.supported.systems. 2. Logo + favicon (forest-green palette matching the existing custom.css accent). Wordmark uses ui-monospace with currentColor so Starlight inverts on light/dark; icon-mark is a terminal chevron + three diminishing query-row lines (audit-by-query motif). 3. Live cluster examples in reference/tools.md for axl_version, axl_list_tables (route% pattern), and axl_describe_table (routepartition). Outputs sanitized per python.md PII rules (15.0.1.12900(234) → 15.0(1); cluster-fingerprinting build string removed). Build clean: 17 pages built, pagefind search index across all, favicon resolves to /favicon.svg, logo fingerprinted into _astro/. Not yet deployed — operator wires docker compose up when ready.
72 lines
2.1 KiB
YAML
72 lines
2.1 KiB
YAML
# mcaxl docs — dev/prod via compose profiles.
|
|
#
|
|
# Mode is driven by COMPOSE_PROFILES in .env:
|
|
# COMPOSE_PROFILES=dev → hot-reload astro dev server at https://${DEV_DOMAIN}
|
|
# COMPOSE_PROFILES=prod → static site via in-container Caddy at https://${DOMAIN}
|
|
#
|
|
# Both profiles sit behind the host's external caddy-docker-proxy on the
|
|
# `caddy` network. mcaxl is a public OSS project; no basic auth.
|
|
#
|
|
# Prerequisite: `docker network create caddy` (one-time, shared with the
|
|
# edge caddy-docker-proxy instance).
|
|
|
|
services:
|
|
docs-dev:
|
|
profiles: ["dev"]
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: dev
|
|
image: ${COMPOSE_PROJECT}-dev
|
|
container_name: ${COMPOSE_PROJECT}-dev
|
|
restart: unless-stopped
|
|
environment:
|
|
ASTRO_TELEMETRY_DISABLED: "1"
|
|
NODE_ENV: development
|
|
DOMAIN: ${DEV_DOMAIN} # Vite HMR binds wss://${DEV_DOMAIN}:443
|
|
volumes:
|
|
- .:/app
|
|
- /app/node_modules
|
|
- /app/.astro
|
|
networks:
|
|
- caddy
|
|
labels:
|
|
caddy: ${DEV_DOMAIN}
|
|
caddy.reverse_proxy: "{{upstreams 4321}}"
|
|
|
|
# ── HMR-through-Caddy streaming tweaks ──
|
|
# Vite HMR doesn't send app-level pings; Caddy closes idle WebSockets
|
|
# after ~10-15s without these. Refs in ~/.claude/CLAUDE.md.
|
|
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"
|
|
|
|
caddy.encode: "gzip zstd"
|
|
|
|
docs-prod:
|
|
profiles: ["prod"]
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: prod
|
|
args:
|
|
DOMAIN: ${DOMAIN}
|
|
image: ${COMPOSE_PROJECT}-prod
|
|
container_name: ${COMPOSE_PROJECT}-prod
|
|
restart: unless-stopped
|
|
networks:
|
|
- caddy
|
|
labels:
|
|
caddy: ${DOMAIN}
|
|
caddy.reverse_proxy: "{{upstreams 80}}"
|
|
caddy.encode: "gzip zstd"
|
|
|
|
networks:
|
|
caddy:
|
|
external: true
|