This repository builds the official BoxFerry website for open-source,
source-aware conversion between Docker Compose, Podman resources, and Podman Quadlet, and assembles
the unified documentation below /docs/. The CLI, Rust library, and conversion engine live in the
BoxFerry source repository; each technical document
remains in the repository that owns the documented behavior. This repository owns the homepage,
shared navigation, visual identity, deterministic documentation assembly, site validation, and
deployment tooling.
Use the BoxFerry five-repository Dev Container workspace, then run:
./scripts/check-all.shFor an interactive preview:
./scripts/serve.shNavigation and theme entry points are listed in docs/customization.md.
Colors live in content/assets/stylesheets/tokens.css; logo sources and regeneration remain defined
in docs/brand.md.
Successful push-triggered CI runs on main automatically publish their exact revision through the
protected GitHub production environment. The same workflow retains manual deploy, bootstrap,
rollback, and key-rendering operations. New servers require one administrator preparation and
one manual bootstrap publication. Production keeps five rollback targets.
Renovate polls the main branch of BoxFerry and every Lens repository. It groups changed revision
pins into one pull request and merges that pull request only after the website checks pass.
Follow the concise docs/deployment.md runbook. It covers GitHub variables
and secrets, SSH key creation, the local server-preparation script, first publication, normal
deployment, verification, key rotation, and rollback.
The supported toolchain and repository architecture are documented in
docs/development.md and docs/architecture.md.
The site assembles concise BoxFerry, ComposeLens, PodmanLens, and QuadletLens documentation, checks published CLI examples, generates stable diagnostic-rule pages, and publishes first-party Lens Rust API documentation. The production workflow builds exact locked revisions and deploys immutable, rollback-capable static releases to Hetzner automatically or on manual request.