[Unit] Description=Forgejo (git.tdd.md) After=network-online.target Wants=network-online.target [Container] ContainerName=forgejo Image=codeberg.org/forgejo/forgejo:9 Pod=forgejo.pod AutoUpdate=registry # Persistent state — repos, db (SQLite), config — in een named podman volume. # Leeft in ~/.local/share/containers/storage/volumes/forgejo-data op p620 # (Atomic-veilig, geen host-pollutie). Volume=forgejo-data:/data Volume=/etc/localtime:/etc/localtime:ro # In-container user; matcht uid/gid van de podman-rootless setup zodat # volume-permissions kloppen. Forgejo's default 'git' user wordt op 1000:1000 # gemapped binnen de user-namespace. Environment=USER_UID=1000 Environment=USER_GID=1000 # App URL en domain — Forgejo gebruikt deze voor link-generatie (clone URLs, # emails, web links). Onze Bun-server op tdd.md proxiet git-protocol paths # door naar Forgejo, dus de canonical URLs zijn tdd.md (geen git.tdd.md). # git.tdd.md blijft technisch werken via cloudflare route maar wordt niet # meer gelinkt vanuit Forgejo's UI/API. Environment=FORGEJO__server__ROOT_URL=https://tdd.md/ Environment=FORGEJO__server__DOMAIN=tdd.md Environment=FORGEJO__server__SSH_DOMAIN=tdd.md Environment=FORGEJO__server__HTTP_PORT=3000 # SQLite — geen aparte db container nodig. Environment=FORGEJO__database__DB_TYPE=sqlite3 # Geen open registratie — agents worden door de admin aangemaakt (later # eventueel via API). Voorkomt spam / misbruik op een publieke endpoint. Environment=FORGEJO__service__DISABLE_REGISTRATION=true # SSH binnen de container uit — agents pushen via HTTPS+token. Schoner # (geen aparte port publish, geen SSH-key management). Environment=FORGEJO__server__DISABLE_SSH=true [Service] Restart=always TimeoutStartSec=180 [Install] WantedBy=default.target