In dieser Anleitung richten wir Gitea, eine schlanke Git-Plattform, auf einem Raspberry Pi ein. Gitea ist ideal für Projekte, die keine Ressourcen-intensive Lösung wie GitLab erfordern. Als Teil einer Heimnetz-Automatisierung wird Gitea später mit Ansible und OpenTofu kombiniert, um Infrastruktur und Anwendungen effizient zu verwalten. Mit Gitea können Versionskontrolle und Konfigurationsmanagement zentralisiert werden. Später wird SemaphoreUI hinzukommen, um die Verwaltung von CI/CD-Prozessen zu erleichtern. Diese Anleitung umfasst die Installation von Gitea mit Nginx als Reverse Proxy und MariaDB als Datenbank, wodurch eine stabile Grundlage geschaffen wird.


Schritt 1: System vorbereiten

  1. System aktualisieren:
    Aktualisieren Sie die Paketquellen und installieren Sie die neuesten Sicherheitsupdates:

     
    sudo apt update && sudo apt upgrade -y
    • apt update: Aktualisiert die Liste der verfügbaren Pakete und deren Versionen.
    • apt upgrade: Führt die Installation der aktualisierten Pakete durch.
  2. Benötigte Pakete installieren:
    Installieren Sie essentielle Pakete für Webserver, Git und Datenbankmanagement:

     
    sudo apt install wget git unzip curl nginx mariadb-server mariadb-client -y
    • wget und curl: Werkzeuge, um Dateien aus dem Internet herunterzuladen.
    • git: Versionskontrollsystem.
    • nginx: Leichter und effizienter Webserver.
    • mariadb-server: Relationale Datenbank für Gitea.
    • -y: Automatische Zustimmung zu den Installationsaufforderungen.

Schritt 2: MariaDB einrichten

MariaDB wird als Datenbank für Gitea verwendet. Es speichert Benutzer, Projekte und Repository-Daten.

  1. MariaDB starten und aktivieren:
    Damit MariaDB nach einem Neustart automatisch gestartet wird:

     
    sudo systemctl start mariadb sudo systemctl enable mariadb
    • start: Startet den Dienst.
    • enable: Aktiviert den Dienst beim Booten.
  2. Sicherheit der Datenbank verbessern:
    Führen Sie das Sicherheitskonfigurationsskript aus:

     
    sudo mysql_secure_installation
    • Das Skript hilft, MariaDB abzusichern:
      • Root-Passwort setzen: Schützen Sie den Administratorzugang.
      • Anonyme Benutzer entfernen: Unnötige Benutzerkonten löschen.
      • Testdatenbank löschen: Standard-Datenbank entfernen.
      • Remote-Root-Zugriff verbieten: Schutz vor Angriffen über das Netzwerk.
  3. MariaDB-Datenbank für Gitea erstellen:
    Verbinden Sie sich mit MariaDB:

     
    sudo mysql -u root -p
     

    Führen Sie folgende Befehle aus:

     
    CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'starkespasswort';
    GRANT ALL PRIVILEGES ON gitea.* TO 'giteauser'@'localhost';
    FLUSH PRIVILEGES;
    • utf8mb4: Unterstützt Emoji und komplexe Schriftzeichen.
    • GRANT: Erteilt dem Benutzer Rechte auf die Gitea-Datenbank.

Schritt 3: Gitea installieren

  1. Gitea herunterladen und installieren:

     
    wget -O gitea https://dl.gitea.io/gitea/1.20.4/gitea-1.20.4-linux-arm64 chmod +x gitea sudo mv gitea /usr/local/bin/
    • wget: Lädt die Gitea-Binärdatei herunter.
    • chmod +x: Macht die Datei ausführbar.
    • mv: Verschiebt Gitea in ein systemweites Verzeichnis.
  2. Gitea-Nutzer und Verzeichnisse erstellen:

     
    sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /var/lib/gitea gitea sudo
    mkdir -p /var/lib/gitea/{custom,data,log}
    sudo chown -R gitea:gitea /var/lib/gitea/
    sudo chmod -R 750 /var/lib/gitea/
    sudo mkdir -p /etc/gitea
    sudo chown root:gitea /etc/gitea
    sudo chmod 770 /etc/gitea
    • adduser: Erstellt den Gitea-Benutzer mit eingeschränkten Rechten.
    • Verzeichnisse: Speicherung von Gitea-Daten, Logs und Konfiguration.
  3. Gitea als Systemdienst einrichten: Erstellen Sie die Datei /etc/systemd/system/gitea.service mit folgendem Inhalt:

     
    [Unit]
    Description=Gitea (Git with a cup of tea)
    After=network.target
    [Service]
    User=gitea
    Group=gitea
    ExecStart=/usr/local/bin/gitea web
    Restart=always
    Environment=USER=gitea HOME=/var/lib/gitea
    WorkingDirectory=/var/lib/gitea
    [Install] WantedBy=multi-user.target

     

  4. Starten und aktivieren Sie den Dienst:

    sudo systemctl enable gitea sudo systemctl start gitea

Schritt 4: Nginx als Reverse Proxy konfigurieren

  1. Nginx-Konfiguration erstellen: Erstellen Sie die Datei /etc/nginx/sites-available/gitea:
    nginx
     
    server {
        listen 80;
        server_name gitea.example.com;
        location / {
            proxy_pass http://localhost:3000;
            proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header X-Forwarded-Proto $scheme;
        }
     }
  2. Aktivieren Sie die Konfiguration:
     
    sudo ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/
    sudo rm /etc/nginx/sites-enabled/default
    sudo systemctl restart nginx
     
     
Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.