Die Entscheidung, ein Git-Repository-Management-Tool auf einem eigenen Server zu betreiben, bringt viele Vorteile: volle Kontrolle, Datensicherheit und Unabhängigkeit von Drittanbietern. Während GitLab oft als die Allzwecklösung erscheint, bietet Gitea eine minimalistische und effiziente Alternative – besonders für kleinere Teams oder spezialisierte Anwendungsfälle.
In diesem Artikel zeigen wir Ihnen:
- Warum Gitea eine sinnvolle Wahl ist, insbesondere im Vergleich zu GitLab.
- Wie Sie Gitea auf einem eigenen Server installieren und konfigurieren, ohne Docker zu nutzen.
- Detaillierte Schritte zur Integration von PostgreSQL, SMTP und HTTPS.
- Praxisnahe Tipps zur Fehlerbehebung und Optimierung, basierend auf unseren Erfahrungen.
Warum Gitea und nicht GitLab?
Es richtet sich an Nutzer, die ein leistungsstarkes Git-Management-Tool benötigen, aber ohne den Overhead großer Plattformen wie GitLab auskommen möchten.
Vorteile von Gitea:
- Leichtgewicht und effizient: Gitea benötigt deutlich weniger Speicherplatz und CPU-Leistung als GitLab. Besonders geeignet für Server mit begrenzten Ressourcen.
- Volle Kontrolle ohne Container: Gitea kann nativ auf Ihrem Server installiert werden, ohne Docker oder andere Containerisierungen. Dies minimiert Sicherheitsrisiken.
- Offen und kostenlos: Gitea ist vollständig Open Source und kostenlos, ohne Premium-Features hinter einer Bezahlschranke.
- Einfachheit und Flexibilität: Die Konfiguration ist klar und direkt, ohne komplexe Anforderungen wie Kubernetes.
Warum nicht GitLab?
- Ressourcenintensiv: GitLab benötigt umfangreiche Serverressourcen und ist oft für kleine bis mittlere Projekte überdimensioniert.
- Komplexität: Die Installation und Wartung von GitLab ist aufwändiger und erfordert oft Docker oder Kubernetes.
- Kosten: Die kostenlose GitLab-Edition ist funktional eingeschränkt. Erweiterte Features erfordern kostenpflichtige Lizenzen.
Vorbereitung
Um Gitea sicher und performant auf Ihrem Server zu installieren, sind einige Vorbereitungen notwendig. Hier erklären wir die wesentlichen Schritte, um die Grundlage für eine problemlose Installation zu schaffen.
Server-Betriebssystem
- Wir verwenden Ubuntu LTS 22.04.5, da diese Version eine langfristige Unterstützung bietet und stabil für Serveranwendungen ist.
Server-Details
- Hostname: Der Server ist unter
example.com
erreichbar. - Firewall: Stellen Sie sicher, dass die notwendigen Ports (z. B. 22, 80, 443, 587) geöffnet sind.
Datenbank
- Wir verwenden PostgreSQL als Datenbank für Gitea. PostgreSQL bietet Skalierbarkeit und ist ideal für die Verwendung auf Servern mit mehreren Anwendungen.
Schritt-für-Schritt-Anleitung
In diesem Abschnitt führen wir Sie durch die einzelnen Schritte, um Gitea auf Ihrem Server einzurichten. Die Anleitung ist modular aufgebaut, sodass Sie jeden Schritt nachvollziehen und anpassen können.
1. System vorbereiten
- System aktualisieren: Stellen Sie sicher, dass Ihr Server auf dem neuesten Stand ist:
sudo apt update && sudo apt upgrade -y
- Benutzer für Gitea erstellen: Erstellen Sie einen separaten Benutzer für Gitea, um die Sicherheit zu erhöhen:
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /var/lib/gitea gitea
- Verzeichnisstruktur für Gitea anlegen: Erstellen Sie die notwendigen Verzeichnisse und setzen Sie die Berechtigungen:
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R gitea:gitea /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
2. Installation von Gitea
- Gitea-Binary herunterladen: Laden Sie die aktuelle Version von Gitea herunter:
wget -O gitea https://dl.gitea.io/gitea/latest/gitea-latest-linux-amd64
- Binary verschieben und Berechtigungen setzen: Verschieben Sie die Datei in das Verzeichnis für ausführbare Dateien und setzen Sie die Berechtigungen:
sudo mv gitea /usr/local/bin/
sudo chmod +x /usr/local/bin/gitea
- Systemd-Service konfigurieren: Erstellen Sie eine neue Service-Datei für Gitea:
sudo vim /etc/systemd/system/gitea.service
Fügen Sie den folgenden Inhalt ein:
[Unit] Description=Gitea - Git with a cup of tea After=network.target Requires=network.target [Service] User=gitea Group=gitea WorkingDirectory=/var/lib/gitea ExecStart=/usr/local/bin/gitea web Restart=always Environment=USER=gitea HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea NoNewPrivileges=true PrivateTmp=true [Install] WantedBy=multi-user.target
- Service starten und aktivieren: Starten Sie den Gitea-Service und aktivieren Sie ihn für den automatischen Start:
sudo systemctl enable gitea
sudo systemctl start gitea
Installation und Konfiguration von Apache2
Apache2 ist ein leistungsstarker und flexibler Webserver, der Gitea sicher und effizient bereitstellen kann. In diesem Abschnitt zeigen wir, wie Sie Apache2 installieren und konfigurieren, um Gitea mit HTTPS auszuliefern.
Warum Apache2 und nicht Nginx?
- Flexibilität: Apache2 unterstützt eine Vielzahl an Modulen, die dynamisch geladen und angepasst werden können, was eine größere Flexibilität bei der Konfiguration bietet.
- Dynamische Konfiguration: Virtuelle Hosts und andere Konfigurationsänderungen können oft ohne Neustart des Servers vorgenommen werden, was den Betrieb erleichtert.
- Kompatibilität: Apache2 ist mit einer Vielzahl von Anwendungen und Konfigurationen kompatibel, was es ideal für vielseitige Serverumgebungen macht.
- Skalierbarkeit: Apache2 eignet sich gut für Server, die mehrere Dienste und Anwendungen gleichzeitig hosten, wie z. B. Gitea und andere webbasierte Tools.
1. Apache2 installieren
- Installation: Installieren Sie Apache2 auf Ihrem Server:
sudo apt install apache2 -y
- Module aktivieren: Aktivieren Sie die notwendigen Module:
sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests ssl headers
sudo systemctl restart apache2
2. Virtuellen Host für Gitea erstellen
- Datei erstellen: Erstellen Sie eine neue Konfigurationsdatei für den virtuellen Host:
sudo vim /etc/apache2/sites-available/gitea.conf
- Konfiguration hinzufügen: Fügen Sie den folgenden Inhalt ein:
<VirtualHost *:80> ServerName example.com ProxyPreserveHost On ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/ ErrorLog ${APACHE_LOG_DIR}/gitea_error.log CustomLog ${APACHE_LOG_DIR}/gitea_access.log combined </VirtualHost>
- Virtuellen Host aktivieren: Aktivieren Sie die neue Konfiguration und starten Sie Apache2 neu:
sudo a2ensite gitea.conf
sudo systemctl restart apache2
3. HTTPS mit Let’s Encrypt einrichten
- Certbot installieren: Installieren Sie Certbot, um ein kostenloses SSL-Zertifikat zu erhalten:
sudo apt install certbot python3-certbot-apache -y
- SSL-Zertifikat einrichten: Führen Sie Certbot aus, um ein Zertifikat zu erstellen und Apache2 automatisch zu konfigurieren:
sudo certbot --apache -d example.com
- Zertifikat testen: Überprüfen Sie die SSL-Konfiguration:
sudo apache2ctl configtest
sudo systemctl reload apache2
4. Automatische Zertifikatserneuerung
- Certbot erneuern: Stellen Sie sicher, dass das Zertifikat automatisch erneuert wird:
sudo certbot renew --dry-run
Fazit
Mit Apache2 und HTTPS haben Sie Gitea sicher und performant eingerichtet. Dank der Flexibilität und Skalierbarkeit von Apache2 ist Ihre Infrastruktur bestens für zukünftige Anforderungen gerüstet.
Erstkonfiguration und Integration von PostgreSQL
In diesem Abschnitt richten wir die Datenbank PostgreSQL ein und integrieren sie in Gitea. Dieser Schritt ist notwendig, um eine stabile und performante Grundlage für das Git-Management zu schaffen.
1. PostgreSQL installieren
- PostgreSQL-Installation: Installieren Sie PostgreSQL mit dem folgenden Befehl:
sudo apt install postgresql postgresql-contrib -y
- PostgreSQL-Dienst aktivieren: Stellen Sie sicher, dass der PostgreSQL-Dienst aktiv und beim Systemstart verfügbar ist:
sudo systemctl enable postgresql
sudo systemctl start postgresql
2. Datenbank und Benutzer erstellen
- Als PostgreSQL-Benutzer wechseln: Wechseln Sie zum PostgreSQL-Benutzer, um die folgenden Befehle auszuführen:
sudo -i -u postgres
- Datenbank erstellen: Erstellen Sie die Gitea-Datenbank:
createdb gitea
- Benutzer erstellen: Erstellen Sie einen Benutzer mit Passwort für den Zugriff auf die Gitea-Datenbank:
createuser gitea_user
psql
ALTER USER gitea_user WITH ENCRYPTED PASSWORD 'starkes-passwort';
GRANT ALL PRIVILEGES ON DATABASE gitea TO gitea_user;
\q
- Abmelden: Verlassen Sie den PostgreSQL-Benutzer:
exit
3. Integration in Gitea
- Gitea-Erstkonfiguration: Öffnen Sie Ihren Browser und navigieren Sie zur Gitea-Setup-Seite (z. B.
http://example.com:3000
). - Datenbank-Informationen: Geben Sie die folgenden Details ein:
- Datenbanktyp: PostgreSQL
- Host: localhost
- Port: 5432
- Datenbankname: gitea
- Benutzername: gitea_user
- Passwort: Das zuvor festgelegte Passwort
4. Test der Verbindung
- Verbindung testen: Klicken Sie auf „Test Connection“, um sicherzustellen, dass Gitea erfolgreich auf die PostgreSQL-Datenbank zugreifen kann.
- Probleme lösen: Sollten Fehler auftreten, überprüfen Sie:
- Die Firewall-Einstellungen Ihres Servers
- Die PostgreSQL-Berechtigungen
- Die korrekten Anmeldedaten
Vorteile der Gitea-PostgreSQL-Integration
Die Integration von PostgreSQL als Datenbank für Gitea bietet zahlreiche Vorteile, insbesondere für skalierbare und leistungsstarke Server-Umgebungen. Im Folgenden werden die wichtigsten Vorteile erläutert.
1. Hohe Leistung
- Effiziente Verarbeitung: PostgreSQL ist bekannt für seine schnelle und effiziente Abfrageverarbeitung, was gerade bei großen Repositorien oder vielen gleichzeitigen Nutzern einen Unterschied macht.
- Indizes und Optimierung: Die umfangreiche Unterstützung von Indizes verbessert die Abfragegeschwindigkeit und die Gesamtleistung von Gitea.
2. Skalierbarkeit
- Mehrere Anwendungen: PostgreSQL kann für mehrere Anwendungen gleichzeitig verwendet werden, was es ideal für Server-Umgebungen macht, in denen verschiedene Dienste laufen.
- Verarbeitung großer Datenmengen: PostgreSQL kann große Datenmengen und komplexe Abfragen effizient verarbeiten, was es zukunftssicher macht.
3. Erweiterte Funktionen
- Unterstützung für JSON: PostgreSQL bietet native Unterstützung für JSON, was die Arbeit mit modernen Anwendungen erleichtert.
- Gespeicherte Prozeduren und Trigger: Erweiterte Funktionen wie gespeicherte Prozeduren oder Trigger ermöglichen komplexe Automatisierungen direkt in der Datenbank.
4. Sicherheit
- Verschlüsselung: PostgreSQL unterstützt Verschlüsselung für die Verbindung und auf Datenbankebene, um sensible Informationen zu schützen.
- Feingranulare Berechtigungen: Benutzerrechte können präzise gesteuert werden, um den Zugriff auf sensible Daten zu beschränken.
5. Open Source und Kostenfreiheit
- Kostenfrei: PostgreSQL ist eine vollständig Open-Source-Datenbank ohne versteckte Kosten oder Lizenzgebühren.
- Aktive Community: Die große und aktive Community sorgt für regelmäßige Updates, neue Funktionen und umfangreiche Unterstützung.
Fazit
PostgreSQL ist die ideale Wahl für Gitea-Installationen, da es eine zuverlässige, skalierbare und sichere Grundlage bietet. Durch die Integration profitieren Sie von einer performanten und zukunftssicheren Lösung.
SMTP-Konfiguration für E-Mail-Benachrichtigungen
E-Mail-Benachrichtigungen sind ein wichtiges Feature, um über Änderungen, Pull Requests oder andere Ereignisse in Gitea informiert zu bleiben. In diesem Abschnitt erklären wir, wie Sie SMTP einrichten und testen können.
1. Vorbereitung
- SMTP-Server-Details: Stellen Sie sicher, dass Sie die Zugangsdaten Ihres SMTP-Servers haben:
- SMTP-Adresse: Die URL oder IP-Adresse des Servers (z. B.
mail.example.com
). - Port: 587 (für TLS) oder 465 (für SSL).
- Benutzername: Ihre E-Mail-Adresse (z. B.
admin@example.com
). - Passwort: Das zugehörige Passwort für die Authentifizierung.
- SMTP-Adresse: Die URL oder IP-Adresse des Servers (z. B.
2. SMTP-Konfiguration in der app.ini
-Datei
- Datei bearbeiten: Öffnen Sie die
app.ini
-Datei mit einem Texteditor:sudo vim /var/lib/gitea/custom/conf/app.ini
- Abschnitt [mailer] anpassen: Fügen Sie die folgenden Einstellungen ein oder passen Sie diese an:
[mailer] ENABLED = true SMTP_ADDR = mail.example.com SMTP_PORT = 587 FROM = "User" <user@example.com> USER = user@example.com PASSWD = IhrPasswort PROTOCOL = starttls
3. Test der Konfiguration
- Gitea neu starten: Starten Sie Gitea neu, um die Änderungen zu übernehmen:
sudo systemctl restart gitea
- Testmail senden: Gehen Sie in Gitea auf „Site Administration > Configuration > Test Mail“, um eine Testmail zu senden.
- Fehlerbehebung: Sollten Probleme auftreten:
- Überprüfen Sie die SMTP-Einstellungen in der
app.ini
-Datei. - Stellen Sie sicher, dass die Firewall den Port (z. B. 587) erlaubt.
- Überprüfen Sie die Gitea-Logs auf Fehlerhinweise.
- Überprüfen Sie die SMTP-Einstellungen in der
4. Wichtige Hinweise
- SPF, DKIM und DMARC: Stellen Sie sicher, dass Ihre DNS-Einträge korrekt konfiguriert sind, um E-Mails erfolgreich zuzustellen.
- Test mit OpenSSL: Überprüfen Sie die SMTP-Verbindung manuell:
openssl s_client -starttls smtp -connect mail.example.com:587
Abschluss und Empfehlungen
Mit der erfolgreichen Installation und Konfiguration von Gitea haben Sie ein leichtgewichtiges, leistungsstarkes Git-Management-Tool, das flexibel und sicher ist. Durch die Wahl von PostgreSQL als Datenbank haben Sie außerdem eine skalierbare und zukunftssichere Lösung geschaffen.
1. Vorteile im Überblick
- Leichte Wartbarkeit: Gitea ist einfach zu verwalten und benötigt im Vergleich zu anderen Plattformen weniger Ressourcen.
- Sicherheit: Mit rollenbasiertem Zugriff und der Möglichkeit zur Integration von Sicherheits-Tools ist Gitea bestens für professionelle Anforderungen geeignet.
- Kosteneffizienz: Gitea und PostgreSQL sind vollständig Open Source und verursachen keine Lizenzkosten.
2. Empfehlungen
- Regelmäßige Updates: Halten Sie Gitea und PostgreSQL stets aktuell, um von neuen Funktionen und Sicherheitsupdates zu profitieren.
- Backup-Strategie: Richten Sie regelmäßige Backups ein, um Datenverluste zu vermeiden. PostgreSQL bietet dafür zahlreiche Tools.
- Weitere Optimierungen:
- Gitea Actions (CI/CD): Nutzen Sie die integrierte CI/CD-Funktionalität, um Workflows für Builds, Tests und Deployments direkt in Gitea zu automatisieren.
- Webhooks: Verwenden Sie Webhooks, um Gitea mit anderen Tools oder Diensten zu integrieren, beispielsweise zur Triggerung von Benachrichtigungen oder externen Prozessen.
Falls Sie Unterstützung bei der Installation oder Optimierung von Gitea benötigen, zögern Sie nicht, uns zu kontaktieren. Unser Team hilft Ihnen gerne, die beste Lösung für Ihre Anforderungen zu finden.
Besuchen Sie unsere Webseite für weitere Informationen oder buchen Sie direkt einen Workshop, um Ihre Infrastruktur auf das nächste Level zu bringen!
Weiterführende Links
Hier finden Sie eine Auswahl hilfreicher Links, um mehr über Gitea, PostgreSQL und verwandte Themen zu erfahren.
- Gitea-Dokumentation: Offizielle Dokumentation
- Gitea-Community: Community-Forum
- PostgreSQL-Dokumentation: Offizielle PostgreSQL-Dokumentation
- SPF, DKIM und DMARC: Leitfaden zur E-Mail-Sicherheit
- OpenSSL-Anleitung: OpenSSL-Dokumentation