Files
familienarchiv/docs
Marcel e75ddc318b docs(adr): ADR-012 — nsenter via privileged container for host service management in CI
Captures the architectural decision, alternatives considered (sudo
systemctl, Caddy admin API, SSH), and consequences (symlink contract,
Renovate review requirement, step duplication tracked in #539).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 23:13:50 +02:00
..
2026-03-23 09:20:43 +01:00
2026-03-17 18:46:05 +00:00

docs/

Project documentation organised into four categories: architecture decision records (ADRs), system architecture diagrams, infrastructure runbooks, and detailed UI/UX specifications.

Folder structure

docs/
├── adr/                     # Architecture Decision Records
├── architecture/            # C4 model diagrams and system architecture docs
├── infrastructure/          # Deployment, CI/CD, and ops guides
├── specs/                   # UI/UX feature specifications (HTML)
├── ARCHITECTURE.md          # Human-readable architecture overview (DOC-2)
├── DEPLOYMENT.md            # Day-1 checklist and operational reference (DOC-5)
├── GLOSSARY.md              # Domain terminology (DOC-3)
├── security-guide.md        # Security policies and hardening guide
└── STYLEGUIDE.md            # Coding and design style guide

ADR (adr/)

Architecture Decision Records capture major technical decisions and their rationale.

ADR Title Status
001-ocr-python-microservice.md OCR as a separate Python container Accepted
002-polygon-jsonb-storage.md Polygon coordinates in JSONB columns Accepted
003-chronik-unified-activity-feed.md Unified activity feed (Chronik) Accepted

When making a significant architectural change (new service, data model change, technology swap), write a new ADR:

  • Status (Proposed / Accepted / Deprecated / Superseded)
  • Context (forces at play)
  • Decision (what we decided)
  • Consequences (trade-offs)
  • Alternatives Considered (table format)

ADRs are sequential (NNN-descriptive-name.md). Do not reuse numbers.

Architecture (architecture/)

Contains C4 model diagrams describing the system at different zoom levels:

  • Context diagram — How Familienarchiv fits into the user and system ecosystem
  • Container diagram — The high-level technology choices (Spring Boot, SvelteKit, PostgreSQL, MinIO, OCR service)
  • Component diagram — Major structural components within the backend

Written in Markdown with embedded Mermaid diagrams (c4-diagrams.md). Gitea renders these automatically.

For the human-readable architecture narrative, see docs/ARCHITECTURE.md.

Infrastructure (infrastructure/)

Operational documentation for running Familienarchiv in production and CI.

Document Purpose
ci-gitea.md Gitea CI/CD pipeline configuration
production-compose.md Production Docker Compose setup and VPS provisioning
s3-migration.md Migrating documents between S3 buckets
self-hosted-catalogue.md Self-hosted software catalogue

For the day-1 deployment checklist, see docs/DEPLOYMENT.md.

Specs (specs/)

High-fidelity UI/UX specifications written as standalone HTML files. These are design documents describing exact layout, interactions, and responsive behavior before implementation.

Each spec typically includes:

  • Visual mockups with CSS-in-HTML styling
  • Interaction flows and state transitions
  • Responsive breakpoint behavior
  • Accessibility requirements

Before implementing a feature, check specs/ for an existing specification.

Style Guide

docs/STYLEGUIDE.md covers:

  • Code formatting and linting rules
  • Component naming conventions
  • Color palette and typography
  • Accessibility standards (WCAG 2.1 AA)