Fanned out 5 read-only doc-auditor subagents (one per service group) that fact-checked the knowledge base against the live system + repo config, researched official setup docs online, and verified progress. Applied: - All 34 broken links fixed (real pages / external URLs / correct relative paths); 0 broken links remain. No .AGENTTRASH links (the 4 mentions are accurate descriptive text, not links). - Fact-check fixes: Readarr retired (May 2026), Radarr v4->v6, Calibre 9.2.1 live, Calibre-Web 0.6.25 live, Copyparty v1.20.21, LLM index ncmoe 38 + 786432 ctx, frank-default-small active (not frank-pp-worker), Hermes/SearXNG/Grafana hostnames, Loki/Alloy local images, Observability diagram (Promtail->Alloy), VLLM retired note, DFlash status, benchmark live-drift notes, Homepage test count 116.
1.9 KiB
1.9 KiB
Postgres
PostgreSQL is the database backend for Gitea. It runs on the same podman network as Gitea and holds the repository metadata, users, and issue data.
Host: Dankclaw — Docs: https://www.postgresql.org/docs
Facts
| Item | Value |
|---|---|
| Image | docker.io/library/postgres:16-alpine |
| Port | 5432 (internal only) |
| Data volume | bind mount at /var/lib/postgresql/data |
Configuration
services:
postgres:
image: docker.io/library/postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: gitea
POSTGRES_PASSWORD: "${GITEA_DB_PASSWORD}"
POSTGRES_DB: gitea
volumes:
- /opt/gitea/data/gitea-postgres:/var/lib/postgresql/data
Gitea Connection
Gitea reaches the database over the systemd-gitea network (quadlet-managed live, compose-managed after the full-stack deploy):
environment:
DATABASE_TYPE: postgres
DATABASE_HOST: gitea-postgres
DATABASE_NAME: gitea
DATABASE_USER: gitea
DATABASE_PASSWD: "${GITEA_DB_PASSWORD}"
The live app.ini on the host overrides env vars. When you rename the database container, update its [database] HOST line. See Gitea Gotchas.
Migration
The live Gitea stack on Dankclaw already runs this image with the data at /opt/gitea/data/gitea-postgres. The migration keeps the bind mount in place; see Gitea.
Healthcheck
Use pg_isready:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U gitea"]
interval: 30s
timeout: 5s
retries: 3
Gotchas
- The database password must match between the
postgresservice and Gitea'sDATABASE_PASSWD; both come from the same.envvariable. - Do not change the Gitea
SECRET_KEYorINTERNAL_TOKENafter migration — encrypted data becomes unreadable. - Back up with
pg_dump; see Gitea (knowledge base).