- Jinja 55.4%
- Shell 44.6%
upstream.version in iac.json: installation, image and update get this version (iac-core v2, tools/upstream-version.sh); Renovate raises it by pull request. image.yml from the iac-core template builds and boot-tests renovate/** branches without publishing. Tested: lint; upstream-version.sh returns the pin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QaQ6zqex7wQFyscNqCQMUz |
||
|---|---|---|
| .forgejo/workflows | ||
| .vibe | ||
| files | ||
| handlers | ||
| tasks | ||
| templates | ||
| tests | ||
| .clinerules | ||
| .cursorrules | ||
| .windsurfrules | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| GEMINI.md | ||
| iac.json | ||
| README.md | ||
iac-forgejo
Forgejo – Git-Hosting mit Issues, Pull Requests, Paketen und Forgejo
Actions – als LXC oder VM auf Proxmox VE (Debian 13).
Teil von iac – Konzept: iac-core/docs/CONCEPT.md.
Installation (auf der Proxmox-Node)
bash -c "$(curl -fsSL https://iac.heyer.systems/forgejo/ct.sh)" # LXC
bash -c "$(curl -fsSL https://iac.heyer.systems/forgejo/vm.sh)" # VM
Ohne Dialog: IAC_NONINTERACTIVE=1 und var_*-Variablen – am einfachsten mit dem Generator auf
https://iac.heyer.systems/apps/forgejo/.
Erster Login
Web-Oberfläche: http://<IP>:3000/, Benutzer forgejo-admin (admin ist in Forgejo reserviert),
das Passwort wird pro Instanz erzeugt – im Gast:
grep forgejo_admin_password /etc/iac/settings.env
Der Benutzer wird nur angelegt, solange Forgejo gar keinen Admin hat; ein geändertes Passwort oder
eigene Admins fasst iac nie an. Die Selbstregistrierung ist abgeschaltet – weitere Konten legt ein
Admin unter Website-Administration → Benutzerkonten an (oder DISABLE_REGISTRATION in
app.ini ändern).
Ports
| Port | Inhalt | Erreichbar |
|---|---|---|
| 3000/tcp | Web-Oberfläche, API, Git über HTTP | alle |
| 2222/tcp | Git über SSH (eingebauter SSH-Server von Forgejo, Benutzer git) |
alle |
| 22/tcp | SSH des Gasts für root (nur Schlüssel) |
wie jeder iac-Gast |
Clone-URLs: http://<IP>:3000/<owner>/<repo>.git und ssh://git@<IP>:2222/<owner>/<repo>.git.
TLS macht ein Proxy davor (z. B. iac-traefik).
Konfiguration und Daten
| Pfad | Inhalt |
|---|---|
/etc/forgejo/app.ini |
Konfiguration – bei der ersten Installation mit den Secrets der Instanz geschrieben, danach gehört sie dir: iac überschreibt sie nie. Nach Änderungen: systemctl restart forgejo |
/var/lib/forgejo/repositories |
Git-Repositories |
/var/lib/forgejo/data |
LFS, Pakete, Anhänge, Avatare, Actions-Logs, SSH-Host-Keys |
/var/lib/forgejo/backup |
forgejo dump vor dem letzten Major-Update |
PostgreSQL, Datenbank forgejo |
Benutzer, Issues, Pull Requests, … (Modul postgresql) |
ROOT_URL und DOMAIN stehen auf der IP des Gasts bei der ersten Installation. Hinter einem
Proxy oder mit eigenem Namen in [server] von app.ini anpassen, z. B.
ROOT_URL = https://git.example.org/, DOMAIN und SSH_DOMAIN = git.example.org.
Mail ist aus ([mailer]), ein Runner für Forgejo Actions ist nicht dabei.
Update (im Gast)
update
Das aktualisiert Debian-Pakete und Forgejo auf das neueste Release von Codeberg (Checksumme aus
dem Release) – auch auf eine neue Major-Version: Forgejo migriert seine Datenbank beim Start
selbst. Vor einem Major-Wechsel schreibt iac forgejo dump nach /var/lib/forgejo/backup
(nur der letzte Dump bleibt). Zurück auf die alte Major-Version geht nur mit diesem Dump –
vorher die Release Notes lesen.
Selbsttest (im Gast)
bash /var/lib/iac/src/core/bin/iac-smoke
Prüft zusätzlich zu Dienst, Health-Check und Ports: API-Version, Datenbank, SSH-Server auf 2222,
Benutzer git und dass ein Admin existiert.