- 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
63 lines
2.1 KiB
Markdown
63 lines
2.1 KiB
Markdown
# 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)
|
|
|
|
```yaml
|
|
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
|
|
|
|
- [[Dankclaw Stack]]
|
|
- Knowledge base: [[Gitea]] (tools), [[Gitea Data Persistence]], [[Gitea Architecture]] |