Diátaxis-structured documentation for 406 MHz SARSAT beacon reception: - Tutorials: signal chain walkthrough - Guides: antenna setup, message decoding - Reference: block API, signal format - Explanation: Cospas-Sarsat system overview Includes extracted images from official Cospas-Sarsat specifications (LFS).
61 lines
2.3 KiB
YAML
61 lines
2.3 KiB
YAML
# gr-sarsat-modern Documentation Site
|
|
# Usage:
|
|
# Dev: docker compose --profile dev up
|
|
# Prod: docker compose --profile prod up -d
|
|
|
|
services:
|
|
# ─────────────────────────────────────────────────────────────
|
|
# Development - hot reload with volume mounts
|
|
# ─────────────────────────────────────────────────────────────
|
|
docs-dev:
|
|
profiles: ["dev"]
|
|
build:
|
|
context: .
|
|
target: dev
|
|
restart: unless-stopped
|
|
networks:
|
|
- caddy
|
|
volumes:
|
|
- ./src:/app/src:ro
|
|
- ./public:/app/public:ro
|
|
- ./astro.config.mjs:/app/astro.config.mjs:ro
|
|
- ./tsconfig.json:/app/tsconfig.json:ro
|
|
environment:
|
|
- ASTRO_TELEMETRY_DISABLED=1
|
|
- VITE_HMR_HOST=${DOMAIN}
|
|
labels:
|
|
caddy: ${DOMAIN}
|
|
caddy.reverse_proxy: "{{upstreams 4321}}"
|
|
# WebSocket support for HMR
|
|
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"
|
|
|
|
# ─────────────────────────────────────────────────────────────
|
|
# Production - static site served by embedded Caddy
|
|
# ─────────────────────────────────────────────────────────────
|
|
docs-prod:
|
|
profiles: ["prod"]
|
|
build:
|
|
context: .
|
|
target: prod
|
|
restart: unless-stopped
|
|
networks:
|
|
- caddy
|
|
labels:
|
|
caddy: ${DOMAIN}
|
|
caddy.reverse_proxy: "{{upstreams 80}}"
|
|
# Security headers
|
|
caddy.header.X-Content-Type-Options: "nosniff"
|
|
caddy.header.X-Frame-Options: "DENY"
|
|
caddy.header.Referrer-Policy: "strict-origin-when-cross-origin"
|
|
|
|
networks:
|
|
caddy:
|
|
external: true
|