Skip to content

Docs

Documentation for the sepia home server.

Quick Reference

  • Hostname: sepia
  • Domain: veenboer.xyz / uitgeest.veenboer.xyz
  • Primary Compose: /opt/compose.yaml
  • Docker Project: /opt/
  • Docker Containers: ~11 running services

Structure

docs/
├── memory.md              # Curated long-term knowledge
├── runbook.md             # Operational procedures
├── heartbeat.md           # Periodic check-in tasks
├── journal/               # Daily operational logs
├── reference/             # Quick reference
│   ├── services.md
│   ├── network.md
│   ├── storage.md
│   ├── caddy.md
│   └── postgres.md
├── applications/          # Per-app documentation
└── plans/                 # Project plans with lifecycle
    ├── active/
    ├── backlog/
    └── completed/

Journal vs Plans

Both track work, but at different levels of abstraction:

Journal Plans
Time Past — what happened on a given day Future — what we intend to do
Grain Mixed topics per day, stream of work One focused goal per document
Lifecycle Immutable chronological record Active → Completed lifecycle
Purpose "When did X change? Why did we decide Y?" "What's the plan? What's left to do?"

Journal entries are the raw work log — what you did, what broke, what you decided, all in one place per day.

Plans define structured projects with context and steps. They graduate through active/completed/ as work progresses.

They complement each other: working on a plan generates journal entries, and journal entries feed into plan updates. Templates cross-reference both directions.

Environment Variables

Many services rely on .env files and shell environment variables: - HOST_IP - Host IP address (used in extra_hosts) - DOMAIN - veenboer.xyz - SUBDOMAIN - uitgeest - Database credentials for various services - API keys for external services

See individual compose files for service-specific variables.

Quality Gates

This repo uses pre-commit for basic docs hygiene and Markdown/Dockerfile checks. Typical checks include whitespace, EOF normalization, YAML/JSON/TOML validity, merge-conflict markers, markdown linting, and Dockerfile linting.