Copy of the legacy ~/.pi/agent/docs tree rebuilt as the command-center knowledge base: concept files promoted to path identity, index listings stripped of frontmatter, all wikilinks/relative links resolved, every checkable claim verified against the live fleet (Dankserver = Ryzen 7 7700X + RTX 3090; Strix Halo is Dankclaw), unverifiable claims tagged. kb-lint exits 0.
3.2 KiB
Gitea on dankclaw
Private Git hosting on dankclaw. Three quadlet-managed containers in the rootless podman session of user dank: Gitea, PostgreSQL, Caddy.
Host: dankclaw (71.227.227.172)
Config: ~/.config/containers/systemd/gitea-{postgres,server,caddy}.container + gitea.network
Local access: http://dankclaw:3000
Domain: https://gitea.franksdank.cloud (DNS pending)
Architecture
| Container | Unit | Port | Purpose |
|---|---|---|---|
gitea-server |
gitea-server.service |
3000 (HTTP), 2222 (SSH) | Git web UI, API, SSH daemon |
gitea-postgres |
gitea-postgres.service |
5432 (internal) | Database |
gitea-caddy |
gitea-caddy.service |
80, 443 | Reverse proxy, auto-TLS |
The containers share the private network systemd-gitea (quadlet gitea.network, DNS enabled). The automatic podman default network has DNS disabled; do not run the stack on it.
Management
All commands run as dank on dankclaw.
| Action | Command |
|---|---|
| Start all | systemctl --user start gitea-postgres gitea-server gitea-caddy |
| Stop all | systemctl --user stop gitea-caddy gitea-server gitea-postgres |
| Restart Gitea only | systemctl --user restart gitea-server |
| Follow logs | podman logs -f gitea-server or journalctl --user -u gitea-server -f |
| Check status | systemctl --user status gitea-postgres gitea-server gitea-caddy |
Data Persistence
All data lives on host bind mounts under /opt/gitea/data/. Containers are ephemeral. Stopping a quadlet unit removes its container; the next start recreates it. Volumes survive.
| Volume Path | Container Mount | Contents |
|---|---|---|
/opt/gitea/data/gitea-gitea/ |
/data |
Git repositories, app.ini, attachments |
/opt/gitea/data/gitea-postgres/ |
/var/lib/postgresql/data |
PostgreSQL data files |
/opt/gitea/data/caddy/data/ |
/root/.local/share/caddy |
Caddy configuration, TLS certs |
See data-persistence for backup and restore.
Boot Persistence
User-level linger is enabled for dank. The units start at host boot without a login. Each unit carries [Install] WantedBy=default.target; the podman generator applies it. The legacy podman-compose stack had no units and did not survive reboots (incident 2026-08-16).
See management for boot persistence details and troubleshooting.
Repo Copies
The quadlet files, Caddyfile, and .env.example are tracked in the serverAppConfigs repo under dankclaw/gitea/. The live password lives only in /opt/gitea/.env on the host (mode 0600).
See Also
-
architecture — network topology and ports
-
management — operations, upgrades, backups, incident log
-
data-persistence — volumes and backup strategy
-
containers — quadlet reference
-
Gitea Architecture — Gitea container architecture, network topology, and Caddy reverse proxy configuration on dankclaw.
-
Gitea Data Persistence — Gitea data persistence, volume mounts, ownership, and backup strategy on dankclaw.
-
Gitea Management — Gitea container management, boot persistence, troubleshooting, upgrades, and backup procedures on dankclaw.
-