syntaxai/tdd.md · main · scripts / p620 / forgejo.container

forgejo.container 51 lines · 1777 bytes raw
[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