Astro/Starlight documentation site with 8 content pages: - Circuit design (SPICE validation, R2 sweep data, K-line compat) - Firmware architecture (composition diagram, concurrency model) - BMW I/K-Bus protocol (message format, module addresses) - OBD-II K-line protocol (init sequences, PID decode formulas) - Bill of materials - Getting started guide - Development journal (4-session engineering log) Docker deployment: multi-stage build (Node builder + Caddy static), caddy-docker-proxy labels, Makefile for management.
45 lines
1.1 KiB
YAML
45 lines
1.1 KiB
YAML
services:
|
|
docs:
|
|
build:
|
|
context: .
|
|
target: production
|
|
container_name: k-line-docs
|
|
restart: unless-stopped
|
|
networks:
|
|
- caddy
|
|
labels:
|
|
caddy: ${DOMAIN}
|
|
caddy.reverse_proxy: "{{upstreams 80}}"
|
|
caddy.encode: gzip
|
|
|
|
docs-dev:
|
|
build:
|
|
context: .
|
|
target: development
|
|
profiles:
|
|
- dev
|
|
volumes:
|
|
- ./src:/app/src:ro
|
|
- ./public:/app/public:ro
|
|
- ./astro.config.mjs:/app/astro.config.mjs:ro
|
|
- ./tsconfig.json:/app/tsconfig.json:ro
|
|
networks:
|
|
- caddy
|
|
environment:
|
|
- VITE_HMR_HOST=${DOMAIN}
|
|
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
|