Two independent copies of the same law, and each page cited its own numbers. The finish rule — stop when independent sources agree, when the retrieval budget is spent, or when every claim is met; report gaps, never invent a source — stood in full in `agentic-search-best-practices.md` (with the loop caps: 20 steps, re-plan every 4) and again in `research-effectiveness.md` without them. The operational page owns it; the measurement page keeps the pointer and the one thing that is its business, which is that unbounded loops are why "infinite re-search" is a named failure mode. `tools/gitea/index.md` was a second copy of its own directory: an architecture table, a management command table, a data-persistence path table and a boot-persistence paragraph, every one of them a subset of `architecture.md`, `management.md` and `data-persistence.md` — verified line by line before cutting, including the two facts that looked unique to the index (the `dns_enabled: false` default network, the `/opt/gitea` leftover) and turn out to be owned upstream with more detail. The index now answers "which page owns my question" and gives three one-line orientation facts. Gitea's live version was re-read while I was in there: still 1.27.3. Refs #64
43 lines
2.5 KiB
Markdown
43 lines
2.5 KiB
Markdown
# Gitea on dankclaw
|
|
|
|
Private Git hosting on dankclaw. Two quadlet-managed containers in the rootless podman session of user `dank`: Gitea and PostgreSQL, sharing a dedicated network unit. The former `gitea-caddy` container is **retired** — the canonical fleet Caddy (`caddy.service`, see [/caddy/index.md](/caddy/index.md)) fronts `gitea.franksdank.cloud`; do not recreate the retired unit.
|
|
|
|
**Host:** dankclaw (192.168.0.143 LAN)
|
|
**Config:** `~/.config/containers/systemd/gitea-{postgres,server}.container` + `gitea.network`
|
|
**Local access:** `http://dankclaw:3000` — Gitea 1.27.3 (`/api/v1/version`, re-read 2026-10-21)
|
|
**Domain:** `https://gitea.franksdank.cloud` (live; served by fleet Caddy, DNS-01 TLS)
|
|
|
|
## What lives where
|
|
|
|
| Question | Owner |
|
|
|---|---|
|
|
| Containers, unit names, network topology, ports, env wiring | [architecture](architecture.md) |
|
|
| Start / stop / logs / upgrade; boot persistence (linger + `[Install] WantedBy=default.target`); incident log | [management](management.md) |
|
|
| Data layout on host bind mounts, UID ownership, backup and restore, the `/opt/gitea` leftover | [data-persistence](data-persistence.md) |
|
|
| Token-based HTTP access from clients, the credential store, git 2.56 store-format trap | [client-access](client-access.md) |
|
|
|
|
One-line answers, so you know which row to open:
|
|
|
|
* **Two containers** (`gitea-server` :3000/:2222, `gitea-postgres` internal) plus a quadlet
|
|
network unit, all in user `dank`'s rootless session.
|
|
* **Data survives everything**: host bind mounts under `/home/dank/Containers/gitea/`, env file
|
|
mode 0600; stopping a unit removes its container and the next start recreates it.
|
|
* **Boot**: user linger for `dank` plus `[Install] WantedBy=default.target` on each unit — no
|
|
login session required. The podman-compose stack had neither and did not survive a reboot
|
|
(2026-08-16, written up in [management](management.md)).
|
|
|
|
This index used to carry its own copies of all four pages' tables. They went: a second copy of
|
|
an operational table is a future contradiction, and every one of them was already a subset.
|
|
|
|
## Repo Copies
|
|
|
|
The quadlet files and `.env` templates are tracked in the `serverAppConfigs` deploy repo; the
|
|
sibling vault page `Infrastructure/Gitea.md` (in `~/Projects/serverAppConfig/serverAppConfigs-docs/`)
|
|
is the deploy-side source of truth. Secrets live only on the host under `Containers/gitea/`
|
|
(mode 0600), never in either docs tree.
|
|
|
|
## See Also
|
|
|
|
* [Dankclaw](/system/dankclaw.md) — the host, and its container census.
|
|
* [Caddy](/caddy/index.md) — the fleet edge proxy that fronts `gitea.franksdank.cloud`.
|