Gitea ist eine einfache, selbst gehostete Lösung für die Versionskontrolle mit Git. Es bietet eine benutzerfreundliche Oberfläche, die für kleine bis mittelgrosse Teams ideal ist. Dieses Tutorial zeigt Ihnen, wie Sie Gitea auf einem Ubuntu Server installieren und konfigurieren.


Voraussetzungen

  • Ein Ubuntu Server (20.04 oder neuer wird empfohlen).
  • Root- oder sudo-Berechtigungen.
  • Ein Domainname (optional, aber empfohlen).
  • Git auf Ihrem lokalen Rechner installiert.

Schritt 1: System vorbereiten

1.1 System aktualisieren

Aktualisieren Sie Ihr System:

sudo apt update && sudo apt upgrade -y

1.2 Benötigte Pakete installieren

Installieren Sie die notwendigen Abhängigkeiten:

sudo apt install git wget unzip -y

Schritt 2: Gitea installieren

2.1 Gitea-Binärdatei herunterladen

Laden Sie die neueste stabile Version von Gitea herunter:

wget -O gitea https://dl.gitea.io/gitea/1.20.0/gitea-1.20.0-linux-amd64

(Ersetzen Sie die Version entsprechend.)

2.2 Gitea ausführbar machen

Setzen Sie die Berechtigungen für die heruntergeladene Datei:

chmod +x gitea

2.3 Gitea verschieben

Verschieben Sie die Datei in ein Systemverzeichnis:

sudo mv gitea /usr/local/bin/

Schritt 3: Benutzer und Verzeichnisse einrichten

3.1 Benutzer erstellen

Erstellen Sie einen eigenen Benutzer für Gitea:

sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /var/lib/gitea gitea

3.2 Verzeichnisse einrichten

Erstellen Sie die notwendigen Verzeichnisse:

sudo mkdir -p /var/lib/gitea/{custom,data,log}

Setzen Sie die richtigen Berechtigungen:

sudo chown -R gitea:gitea /var/lib/gitea
sudo chmod -R 750 /var/lib/gitea

Schritt 4: Systemdienst einrichten

4.1 Systemd-Service-Datei erstellen

Erstellen Sie eine neue Service-Datei für Gitea:

sudo nano /etc/systemd/system/gitea.service

Fügen Sie den folgenden Inhalt ein:

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target

[Service]
RestartSec=2s
Type=simple
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

[Install]
WantedBy=multi-user.target

4.2 Dienst aktivieren und starten

Laden Sie die Systemd-Konfiguration neu und starten Sie Gitea:

sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea

Schritt 5: Gitea einrichten

5.1 Webinterface aufrufen

Öffnen Sie einen Browser und rufen Sie die IP-Adresse Ihres Servers sowie den Port 3000 auf:

http://<Server-IP>:3000

5.2 Einrichtungsassistent folgen

  1. Datenbank auswählen: Wählen Sie SQLite für eine einfache Einrichtung (oder MySQL/PostgreSQL für grössere Installationen).
  2. Benutzerverzeichnis: Standardmässig /var/lib/gitea belassen.
  3. Administrator erstellen: Geben Sie Benutzernamen, E-Mail und Passwort für das Admin-Konto ein.

Schritt 6: Projekte und Repositories verwalten

6.1 Neues Repository erstellen

  1. Melden Sie sich im Webinterface an.
  2. Klicken Sie auf New Repository.
  3. Geben Sie den Namen und die Beschreibung des Repositories ein.

6.2 Repository klonen

Klonen Sie das Repository auf Ihren lokalen Rechner:

git clone http://<Server-IP>:3000/<Benutzer>/<Repository>.git

6.3 Änderungen hochladen

  1. Dateien hinzufügen:
   git add .
  1. Änderungen committen:
   git commit -m "Initial commit"
  1. Änderungen pushen:
   git push origin main

Schritt 7: Sicherheit erhöhen (optional)

7.1 HTTPS einrichten

Verwenden Sie Let’s Encrypt für ein SSL-Zertifikat:

sudo apt install certbot
sudo certbot certonly --standalone -d <Ihre-Domain>

Bearbeiten Sie die Gitea-Konfigurationsdatei (/var/lib/gitea/custom/conf/app.ini) und aktivieren Sie HTTPS.

7.2 Firewall anpassen

Öffnen Sie den Gitea-Port:

sudo ufw allow 3000
sudo ufw reload

Fazit

Mit Gitea haben Sie erfolgreich einen eigenen Git-Server eingerichtet. Diese Lösung ist ideal für kleine bis mittelgrosse Entwicklerteams, die eine einfache und flexible Versionskontrolle benötigen. Passen Sie die Konfiguration an Ihre Bedürfnisse an und experimentieren Sie mit Plugins, um die Funktionalität zu erweitern.