Was ist Forgejo
Forgejo ist ein freies, in Go entwickeltes Softwarepaket für die Versionsverwaltung bei der Softwareentwicklung mit Git. Forgejo bietet GitHub-Benutzern eine vertraute Umgebung und ermöglicht einen reibungslosen Übergang zu einer Plattform, die sie selber hosten können. Sie behalten volle Kontrolle über Ihre Daten und Softwareprojekte.
Forgejo ist sehr leichtgewichtig und performant. Es benötigt deutlich weniger Ressourcen als andere Plattformen, was es auch ideal für den Einsatz auf kleinen Systemen wie Raspberry Pis macht.
Installation
Die Installation ist sehr einfach und in wenigen Minuten erledigt. Neben der Binary-Installation gibt es auch ein Docker-Image.
Hier die notwendigen Schritte für ein Debian-basiertes System.
Download und Signaturprüfung
wget https://codeberg.org/forgejo/forgejo/releases/download/v9.0.3/forgejo-9.0.3-linux-amd64
gpg --keyserver keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710
wget https://codeberg.org/forgejo/forgejo/releases/download/v9.0.3/forgejo-9.0.3-linux-amd64.asc
gpg --verify forgejo-9.0.3-linux-amd64.asc forgejo-9.0.3-linux-amd64
Natürlich muss git und git-lfs Installiert sein
apt install git git-lfs
Das Binary kopieren wir nach /usr/local/bin und machen es ausführbar.
cp forgejo-x.y.z-linux-amd64 /usr/local/bin/forgejo
chmod 755 /usr/local/bin/forgejo
Forgejo lassen wir als user git laufen. Dieser muss noch im System erstellt werden.
/sbin/adduser --system --shell /bin/bash --gecos 'Git Version Control' \
--group --disabled-password --home /home/git git
Nun erstellen wir die Verzeichnisse, die Forgejo verwenden soll, und setzen Sie die Zugriffsrechte entsprechend. Dies ist das Verzeichnis, in dem Forgejo seine Daten speichert, einschließlich Ihrer Git-Repositories.
mkdir /var/lib/forgejo
chown git:git /var/lib/forgejo && sudo chmod 750 /var/lib/forgejo
Dies ist das Verzeichnis, in dem die Konfiguration von Forgejo, app.ini genannt, gespeichert wird. Anfänglich muss es für Forgejo beschreibbar sein, kann aber nach der Installation auf nur lesbar geändert werden.
mkdir /etc/forgejo
chown root:git /etc/forgejo && sudo chmod 770 /etc/forgejo
Praktischerweise stellt Forgejo ein systemd-Service-Skript zur Verfügung, das wir direkt herunterladen können.
wget -O /etc/systemd/system/forgejo.service https://codeberg.org/forgejo/forgejo/raw/branch/forgejo/contrib/systemd/forgejo.service
Damit können wir forgejo aktivieren und starten
systemctl enable forgejo.service
systemctl start forgejo.service
Jetzt können wir forgejo über den Webbrowser aufrufen.
Neben MySQL/MariaDB wird auch Postgres und SQLite3 unterstützt. Je nach Anforderung kann die Datenbank entsprechend gewählt/geändert werden.
Bei „Registrierung deaktivieren“ muss bei der Installation das Häckchen entfernt werden. Der erste Benutzer, der registriert wird ist auch Administrator. Die Einstellung kann man in der app.ini in /etc/forgejo anschließend ändern, in dem man den Wert DISABLE_REGISTRATION auf true setzt.
Benutzer können aber aus anderen Authentifizierungsquellen kommen. So unterstützt forgejo LDAP OAUTH2 und andere.
Ein erstes Projekt ist rasch erstellt und wer github oder gitlab verwendet findet sich sehr schnell auch in der GUI von forgejo zurecht.
Reverse-Proxy und andere Features
Wer forgejo auch via Internet zugänglich machen will, kann dazu einen Reverse-Proxy verwenden. Das ist hilfreich, wenn Nginx/Apache,HAProxy… schon vorhanden sind.
Darüber hinaus bietet forgejo Features wie Actions für Continous Integration (CI) und Runners um Workflows abbilden zu können.
Forgejo arbeitet an der Möglichkeit, an einer Föderation von Forges teilzunehmen. Dies könnte in Zukunft die Zusammenarbeit zwischen verschiedenen Instanzen erleichtern. Auf alle Fälle eine interessante Geschichte.
GitOps
Der aus DevOps stammende Begriff GitOps bezeichnet den Betrieb einer Infrastruktur mit Hilfe der Versionskontrolle Git. Die „Single Source of Truth“ für den Betrieb der Infrastruktur, die Einrichtung von Servern, die Anpassung von Softwarepaketen und automatisierte Prozesse mit Ihren Skripten ist transparent und nachvollziehbar. Mit einer lokalen forgejo Instanz, ist dieses Szenario umsetzbar, auch unter dem Gesichtspunkt der wenigen personellen Ressourcen, die Schulen zur Verfügung stehen.
Links
https://forgejo.org
https://forgejo.org/docs/latest/
https://forgejo.org/releases
https://codeberg.org/forgejo/forgejo
0 Kommentare