A zensical site under docs/, served by a new `docs` compose service behind Traefik, built with --strict in CI. Same pattern the sibling n3xd workspace uses. Getting started splits the way the landing page does — one path is `pip install fluksio` and a training script, the other is a Docker stack and an afternoon in the browser — because the two audiences will not spend the same amount of time. Everything after that is shared: the concepts, the web interface (app and portal), the CLI and the API, and a reference for node types, payload types and configuration. The three flow guides move here from the docs submodule rather than being copied, so there is one version of them. Styling mirrors DESIGN-GUIDELINES.md: the app's token palette remapped onto Material's variables in both schemes, Inter, the 16px panel radius, and the one terracotta accent spent on the facility lane of the audience split. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M7Xv3cJEW5c8AXxn2hoojV
20 lines
949 B
Docker
20 lines
949 B
Docker
# ─── Fluksio docs site (zensical) ───
|
|
# Multi-stage: build the static documentation with zensical, serve it with Nginx.
|
|
# Routed to docs.${DOMAIN} by the `docs` service in compose.yml. The runtime
|
|
# image is just Nginx + static files (no Python), mirroring the SPA approach.
|
|
|
|
# ── Stage 1: Build the static site ───────────────────────────────
|
|
FROM python:3.13-slim AS docs-build
|
|
# Pin zensical so a rebuild is reproducible (it is only a build-time tool).
|
|
RUN pip install --no-cache-dir zensical==0.0.46
|
|
WORKDIR /docs
|
|
COPY zensical.toml ./
|
|
COPY docs/ ./docs/
|
|
RUN zensical build --clean
|
|
|
|
# ── Stage 2: Serve static files ──────────────────────────────────
|
|
FROM nginx:alpine
|
|
COPY docker/nginx.docs.conf /etc/nginx/conf.d/default.conf
|
|
COPY --from=docs-build /docs/site /usr/share/nginx/html
|
|
EXPOSE 80
|