Gitea - Schnelle und kompakte DevOps Plattform

Einführung in Gitea

Gitea ist ein selbst gehosteter All-in-One-Software-Entwicklungsdienst, einschließlich Git-Hosting, Code-Review, Team-Zusammenarbeit, Paketregistrierung und CI/CD. Gitea ist Open Source und steht unter der MIT-Lizenz.

Durch benutzerfreundliche Bedienung und einem hohen Grad an Anpassungsmöglichkeiten ist es eine ideale Wahl für kleine Teams.

Auch für große Organisationen ist Gitea eine gute Wahl. Gitea Enterprise ist so konzipiert, dass eine Skalierung so einfach wie möglich ist. Weiterhin können zusätzliche Funktionen bzgl. Sicherheit und Features hinzugefügt werden. In der Enterprise-Version werden auch ein umfangreicher Support, Trainings und Hosting angeboten. [1]

Warum Gitea?

Die Wahl zwischen diversen Git-Services (bspw. GitLab) und Gitea als selbst gehosteten Git-Diensten hängt oft von den spezifischen Anforderungen und Ressourcenbeschränkungen ab. GitLab empfiehlt für ein normales Nutzerverhalten 8 GB RAM und 8 (virtuelle) CPU-Kerne, was für persönliche Projekte oder kleinere Teams möglicherweise überdimensioniert ist. Gitea hingegen bietet eine saubere Benutzeroberfläche, die stark an GitHub erinnert, und benötigt minimale Ressourcen, um zu laufen. Ein Raspberry Pi 3 soll für die Minimalanforderungen für eine handvoll Repositories genügen. Für kleine Teams sind 2 CPU-Kerne und 1 GB RAM empfohlen. [3]

Des Weiteren kann Gitea auf verschiedene Betriebssystemen, wie Linux, macOS und Windows, auf Basis verschiedener Architekturen zum Laufen gebracht werden.

Gitea im Vergleich zu anderen Git-Hosting-Diensten

Einen detaillierten Vergleich zu anderen Git-Services (Gogs, GitHub, GitLab, BitBucket und RhodeCode) findet man in der Dokumentation von Gitea:

https://docs.gitea.com/installation/comparison#general-features

Auffällig ist, dass sehr viele Funktionen von Gitea unterstützt werden, welche auch von GitLab bereitgestellt werden. Nur in einigen wenigen Punkten hat GitLab einen größeren Funktionsumfang.

Benutzerfreundlichkeit und Einrichtung

Gitea bietet eine intuitive und benutzerfreundliche Oberfläche, welches das Verwalten und Arbeiten mit Repositories sehr angenehm macht. Auf komplexe Menüs oder verschachtelte Navigationen wird verzichtet.

Die Dokumentation ist detailliert, sodass der gesamte Einrichtungsprozess darin beschrieben ist. Diverse Installationsoptionen werden angeboten, bspw. über Docker oder sogar auf Kubernetes.

Die Benutzeroberfläche ist sehr sauber gehalten

"Gitea Action" bilden CI/CD Pipelines ab

Sicherheit und Zugriffskontrolle

Gitea stellt eine Vielzahl an Möglichkeiten bereit, die Instanz abzusichern und unberechtigten Zugriff zu unterbinden.

Authentifizierungsmöglichkeiten, wie eine LDAP-Anbindung, PAM (Pluggable Authentication Module) oder SSO (Single Sign-On Authentication) und weitere werden von Haus aus unterstützt. Weiterhin kann eine MFA (Multi-Factor Authentication) über TOTP Tokens oder FIDO-Hardwarekeys genutzt werden. [5]

Wird selbst ein Gitea-Server betrieben, kann fail2ban genutzt werden, um zu viele fehlgeschlagene Login-Versuche zu unterbinden. [6]

Integration und Erweiterbarkeit

Gitea unterstützt eine sehr hohe Anzahl an Integrationen. Eine Übersicht liefert ein Gitea-
Repository: https://gitea.com/gitea/awesome-gitea

Beispielsweise gibt es Migrationstools von GitLab zu Gitea, Gogs zu Gitea und sogar GitHub zu Gitea. Diese Migrationstools unterstützen den Transfer ganzer Repositories zu Gitea.
Mehr als 20 DevOps-Tools unterstützen bei CI/CD Pipelines. Auch kleinere Tools, wie eine Gitea-Kommandozeile oder ein Tool zur Erstellung eines Changelogs sind einfach zu integrieren.

Wie nutzen wir Gitea?

Primär wird Gitea genutzt, um Passwörter mittels Pass zu verwalten und unsere Dokumentation zu pflegen. Diverse Skripte oder Konfigurationsdateien verwalten wir auch über unsere Gitea-Instanz.

Sicherheit und Datenschutz

Als Open-Source-Software hat Gitea beste Voraussetzungen für ein hohes Maß an Transparenz und Datenschutz. Außerdem ermöglicht es Gitea eine eigene Instanz zu hosten, um maximale Kontrolle über die eigenen Daten zu haben.

Durch regelmäßige Updates und neue Versionen werden mögliche sicherheitsrelevante Bugs schnell gefixed.

Die Zukunft von Gitea

Durch die sehr aktive Entwicklercommunity von Gitea ist die Pflege der Software in naher Zukunft sichergestellt.

Weiterhin möchte sich Gitea auf Performance-Verbesserungen und höhere Verlässlichkeit konzentrieren.

Außerdem soll die Skalierbarkeit verbessert werden und ein High-Availability Konzept erarbeitet werden. CI/CD Verbesserungen sollen auch weiterhin verbessert werden. [7]

Zusammenfassung

Insgesamt stellt Gitea eine sehr attraktive Alternative zu anderen Git-Lösungen wie GitLab dar. Gitea wird stetig weiter entwickelt, wodurch zukünftig mehr Features hinzukommen.

Für kleine Teams kann eine selbst gehostete Gitea-Instanz eine gute Lösung sein, um Quellcode effizient, kostengünstig und unabhängig zu verwalten.


Quellen:

1: https://about.gitea.com/products/gitea-enterprise/

2: https://docs.gitlab.com/ee/install/requirements.html

3: https://docs.gitea.com/#system-requirements

4: https://docs.gitea.com/next/usage/authentication

5: https://docs.gitea.com/next/usage/multi-factor-authentication

6: https://docs.gitea.com/administration/fail2ban-setup

7: https://github.com/go-gitea/gitea/wiki/roadmap

Bilder: https://about.gitea.com