Files
serverAppConfigs/docs/Dankclaw/Gitea.md
T
Frank e3eb5334cb feat: initialize serverAppConfigs with podman stacks for Dankserver and Dankclaw
- Dankserver stack: RomM, Copyparty, Calibre-Web, node-exporter
- Dankclaw stack: Gluetun VPN (SearXNG tunnel), SearXNG+Valkey, ComfyUI
  (CPU backend), OpenWebUI, Hermes, Gitea+Postgres (migrated), Caddy
  reverse proxy, Grafana+Prometheus+Loki+Alloy observability
- Caddyfiles with .local hostname convention and basicauth homepage
- bind-mount storage policy, no named volumes
- deploy.sh mirroring vllmScripts git workflow (push -> pull -> restart -> health)
- docs/ Obsidian vault: per-service docs from frank-default-small research
  subagents (promtail EOL -> Alloy; gitea SECRET_KEY preservation; ComfyUI --cpu)
- bats test suite at 6 seams — 22 tests green
2026-08-13 20:19:41 -07:00

2.1 KiB

Gitea

Gitea is a lightweight self-hosted Git service with issues, pull requests, and a web UI. It already runs on Dankclaw as a podman-compose stack at /opt/gitea/ and is being migrated into this repository.

Host: Dankclaw — Hostname: gitea.dankclaw.local — Port: 3001 — Docs: https://docs.gitea.com

Facts (from live inventory + knowledge base)

Item Value
Image docker.io/gitea/gitea:latest
DB image docker.io/library/postgres:16-alpine
Gitea port 3000 → 3001 (host, proxied)
SSH port 2222 → 22 (host)
DB postgres on the podman network (internal 5432)
Current location /opt/gitea/podman-compose.yml on Dankclaw

Migration Plan

  1. Copy the live /opt/gitea/podman-compose.yml into dankclaw/compose.yaml (redacted: secrets moved to .env).
  2. Keep the bind-mount data at /opt/gitea/data/ so repos survive.
  3. Commit the compose, push, and pull on Dankclaw.
  4. Replace the live stack by bringing up the repo-managed compose.

Env (from the live compose, redacted)

environment:
  DATABASE_TYPE: postgres
  DATABASE_HOST: postgres
  DATABASE_NAME: gitea
  DATABASE_USER: gitea
  DATABASE_PASSWD: "${GITEA_DB_PASSWORD}"   # from .env, never committed
  USER_UID: "1000"
  USER_GID: "1000"

Volumes

Container path Host path (live)
/data /opt/gitea/data/gitea-gitea
/var/lib/postgresql/data /opt/gitea/data/gitea-postgres
/root/.local/share/caddy /opt/gitea/data/caddy/data

Healthcheck

Gitea serves /api/v1/version and the web UI on /.

Backup

Back up /opt/gitea/data/ (tar) or pg_dump the gitea database. See the knowledge base page Gitea Data Persistence.

Gotchas

  • The live compose contains a real DB password — never commit it (test-enforced).
  • Gitea and postgres both run as UID 1000; keep the bind mounts owned by dank.
  • DNS gitea.franksdank.cloud → 71.227.227.172 is pending; the LAN hostname works now.

See Also