#219: verified reproducible build without network access #287
No reviewers
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#287
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "issue-219-offline-build"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
ADR 0024 §4 decision taken both ways: prebuilt digest-pinned images for operation; additionally the workspace build verified offline (pnpm store + ~/.cache as the offline kit; prisma engines from the cache), reproduced twice from clean checkouts under docker run --network none with the pinned toolchain (node:22.15.1-alpine, pnpm 11.9.0). One network dependency found and bounded: the drawio plugin ZIP vendor tarball (deploy images contain no plugin ZIPs; CI=1 skips; offline ZIP builds pre-seed vendor/). Evidence: docs/vs-nfd/96-offline-build-protokoll.md. Also catches up the operations manual scheduler table to 10 jobs (missed in #224). Stacked on #218. Refs #219
Airgapped sites pull from their own registry (ADR 0024). The image list is GENERATED (deploy/scripts/list-images.sh resolves the compose file incl. the caddy profile) so a mirror can never silently miss a service; third-party images gain a configurable ${REGISTRY_PREFIX:-} in the compose file (digest pins unchanged - Docker verifies the same sha256 regardless of which registry serves it), own images keep IMAGE_PREFIX; no image reference is ever edited per site. Step-by-step procedure in deploy/stages.md 5b: generate list, copy digest-preservingly (docker buildx imagetools create; plain pull/tag/push as the documented fallback - the digest comparison closes the loop either way), verify the digest in the mirror against the pin, point the deployment via REGISTRY_PREFIX/IMAGE_PREFIX. Executed once end-to-end and recorded as assessor-facing evidence (docs/vs-nfd/95-mirror-protokoll.md): all four third-party images mirrored digest-identically into a local registry:2, plus dorfteich-api:v0.12.0 (sha256:576f1646... identical on both sides; the imagetools stall against the Gitea registry is recorded with its workaround). Operations manual's airgap section now lists the mirror part as available. Refs #218. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUtYMxwTCMHG9mVHnwbFg8