- Jinja 100%
| update | ||
| appinfo.yml | ||
| compose.yml.j2 | ||
| forgejo-watch-sshkeys.j2 | ||
| forgejo-watch-sshkeys.service.j2 | ||
| forgejo.service.j2 | ||
| LICENSE | ||
| README.md | ||
forgejo
ppm app for a self-hosted Forgejo instance (git hosting, issues, CI orchestration, container registry).
What ppm sets up
forgejo.service— the forgejo server (codeberg.org/forgejo/forgejo), exposed to nginx viapublicurl.forgejo-watch-sshkeys.service— rewrites entries in forgejo'sauthorized_keyssogit+sshoperations are routed into the running container, and keeps~/.ssh/authorized_keysin sync whenever forgejo regenerates it.
All repository data, the container registry, and forgejo's own config
live under ~/data and are backed up.
Config
config:
publicurl: git.example.com
Anything beyond publicurl is not exposed through config.yml — edit
~/data/gitea/conf/app.ini directly instead (already reachable on the
host, since ~/data is bind-mounted into the container) and restart
forgejo.service. Every FORGEJO__<SECTION>__<KEY> environment
variable Forgejo's own docs mention is just that same app.ini setting
exposed a different way — editing the file directly is one less layer
of indirection, and app.ini supports value types env vars can't carry
cleanly. See forgejo's config cheat
sheet for
the full list of sections/keys.
Installing from scratch
Run ppm setup --start, then complete forgejo's own first-run admin
account setup through its web UI at publicurl. For enabling a Forgejo
Actions runner against this instance, see the companion forgejorunner
app.