Files
familienarchiv/.devcontainer
Marcel 86c13a230c docs(legibility): migrate CLAUDE.md rules into human docs — DOC-7
Processes all 7 CLAUDE.md files according to the 3-bucket classification.
Migration targets (CONTRIBUTING.md, docs/ARCHITECTURE.md, docs/DEPLOYMENT.md,
domain READMEs) are introduced by DOC-2/4/5/6 — this PR must merge last.

### scripts/CLAUDE.md → scripts/README.md
New `scripts/README.md` with full script documentation (preserving the
⚠️ destructive-operation warning on reset-db.sh). `scripts/CLAUDE.md`
reduced to a pointer + "document new scripts in README.md" reminder.

### .devcontainer/CLAUDE.md → .devcontainer/README.md
New `.devcontainer/README.md` with all configuration, usage, and limitations.
`devcontainer/CLAUDE.md` reduced to a single pointer line.

### docs/CLAUDE.md → docs/README.md
New `docs/README.md` covering the folder structure, ADR guide, infrastructure
docs, and specs folder. `docs/CLAUDE.md` reduced to pointer + ADR reminder.

### ocr-service/CLAUDE.md
Reduced to pointer to `ocr-service/README.md` (content migrated in DOC-6).
Kept LLM reminders: single-node constraint, ALLOWED_PDF_HOSTS SSRF risk.

### backend/CLAUDE.md
- Layering Rules → pointer to docs/ARCHITECTURE.md
- Error Handling → pointer to CONTRIBUTING.md + reminder
- Security/Permissions → pointer to docs/ARCHITECTURE.md + reminder
- Package Structure → tagged TODO post-REFACTOR-1
- Fixed errors.ts path to frontend/src/lib/shared/errors.ts
- Added ANNOTATE_ALL + BLOG_WRITE to permission list
- Key Entities, Entity Code Style, Services → kept (Bucket-2)

### root CLAUDE.md
- Stack, Infrastructure, Dev Container → pointers
- Layering Rules, Error Handling, Security, OpenAPI, API Client,
  Date Handling, UI Components, Frontend Error Handling → pointers + reminders
- Package Structure → tagged TODO post-REFACTOR-1
- Domain Model, Entity Code Style, Form Actions, Styling → kept (Bucket-2)

### frontend/CLAUDE.md
- API Client Pattern, Date Handling → pointers + reminders
- Key UI Components → pointer to domain READMEs
- Styling, Form Actions, How to Run, Vite Proxy, i18n → kept (Bucket-2)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 07:41:02 +02:00
..

Dev Container — Familienarchiv

VS Code Dev Container configuration for a pre-configured development environment. Includes Java 21, Maven, and Node.js 24 — everything needed to work on both backend and frontend.

Configuration

File: .devcontainer/devcontainer.json

Included Features

Feature Version Purpose
Java 21 Spring Boot backend
Maven bundled with Java feature Build tool
Node.js 24 SvelteKit frontend

VS Code Extensions (Auto-installed)

Extension Purpose
vscjava.vscode-java-pack Java language support, debugging, testing
vmware.vscode-spring-boot Spring Boot tooling
gabrielbb.vscode-lombok Lombok annotation support
humao.rest-client HTTP request files (for backend/api_tests/)

Ports

  • 8080 forwarded to host — access backend at http://localhost:8080

User

Runs as vscode user (not root) for security.

How to Use

Prerequisites

  • VS Code with the Dev Containers extension installed
  • Docker running locally

Open in Dev Container

  1. Open the project in VS Code
  2. Press F1 → type "Dev Containers: Reopen in Container"
  3. VS Code will:
    • Build the container using the root docker-compose.yml
    • Install Java 21, Maven, and Node 24
    • Install the listed extensions
    • Mount the workspace folder

Working Inside the Container

Once inside the container, you have access to both stacks:

# Backend
cd backend
./mvnw spring-boot:run

# Frontend (in a new terminal)
cd frontend
npm install
npm run dev

The container reuses the docker-compose.yml services, so PostgreSQL and MinIO are available automatically.

Forwarding Frontend Port

The devcontainer config only forwards port 8080 by default. To access the frontend dev server (port 5173 or 3000), either:

  1. Add 5173 to forwardPorts in devcontainer.json, or
  2. Use the VS Code "Ports" panel to forward it dynamically

Limitations

  • The devcontainer attaches to the backend service from docker-compose.yml, so it inherits those environment variables
  • OCR service and other containers should be started separately via docker-compose up -d
  • GPU passthrough for OCR training is not configured

Customization

To add more tools or extensions, edit .devcontainer/devcontainer.json:

{
  "features": {
    "ghcr.io/devcontainers/features/python:1": {
      "version": "3.11"
    }
  },
  "forwardPorts": [8080, 5173, 3000]
}