Gitea ist ein kostenloser, quelloffener, selbst gehosteter und bekannter Git-Server, der in der Programmiersprache Go geschrieben ist. Es ist eine Versionskontrollplattform ähnlich wie Github. Es ist robust, skalierbar und bietet viele Funktionen, einschließlich Problem- und Zeitverfolgung, Repository-Verzweigung, Dateisperrung und Tagging, Zusammenführung und viele andere. Wenn Sie nach einem selbst gehosteten Git-Dienst suchen, ist Gitea wahrscheinlich die beste Option, die Sie verwenden können.
In diesem Tutorial zeige ich Ihnen, wie Sie Gitea unter Debian 11 installieren.
Voraussetzungen
- Ein Server mit Debian 11.
- Auf dem Server ist ein Root-Passwort konfiguriert.
MariaDB-Datenbank installieren und konfigurieren
Gitea verwendet MariaDB/MySQL als Datenbank-Backend. Der Datenbankserver muss also auf Ihrem Server installiert sein. Wenn es nicht installiert ist, können Sie es installieren, indem Sie den folgenden Befehl ausführen:
apt-get install mariadb-server -y
Sobald die MariaDB installiert ist, müssen Sie ein MariaDB-Passwort festlegen und die Installation sichern. Sie können dies tun, indem Sie das Skript mysql_secure_installation ausführen:
mysql_secure_installation
Beantworten Sie alle Fragen wie unten gezeigt:
Aktuelles Passwort für root eingeben (Eingabe für keins):OK, Passwort erfolgreich verwendet, weiter geht's... Root-Passwort setzen? [Y/n] YAnonyme Benutzer entfernen? [J/n] YRoot-Anmeldung aus der Ferne verbieten? [J/n] YTestdatenbank und Zugriff darauf entfernen? [J/n] YBerechtigungstabellen jetzt neu laden? [J/n] Ja
Verbinden Sie sich als Nächstes mit dem folgenden Befehl mit der MariaDB-Schnittstelle:
mysql -u root -p
Sobald Sie verbunden sind, erstellen Sie mit dem folgenden Befehl eine Datenbank und einen Benutzer für Gitea:
MariaDB [(keine)]> CREATE DATABASE gitea;
MariaDB [(keine)]> GEWÄHREN SIE ALLE PRIVILEGIEN AUF gitea.* AN 'gitea'@'localhost' IDENTIFIED BY 'password';
Leeren Sie als Nächstes die Berechtigungen und beenden Sie die MariaDB mit dem folgenden Befehl:
MariaDB [(keine)]> FLUSH PRIVILEGES;
MariaDB [(keine)]> QUIT;
Gitea installieren
Zuerst müssen Sie einen dedizierten Benutzer erstellen, um Gitea auszuführen. Sie können es mit dem folgenden Befehl erstellen:
adduser --system --shell /bin/bash --gecos 'Git-Versionskontrolle' --group --disabled-password --home /opt/git git
Sie sollten die folgende Ausgabe sehen:
Systembenutzer `git' hinzufügen (UID 109) ...Neue Gruppe `git' hinzufügen (GID 115) ...Neuen Benutzer `git' (UID 109) mit Gruppe `git' hinzufügen ...Home-Verzeichnis erstellen `/opt/git' ...
Laden Sie als Nächstes die neueste Version von Gitea mit dem folgenden Befehl herunter:
curl -s https://api.github.com/repos/go-gitea/gitea/releases/latest |grep browser_download_url | cut -d '"' -f 4 | grep '\linux-amd64$' | wget -i -
Verschieben Sie als Nächstes die Gitea-Binärdatei mit dem folgenden Befehl in den Systempfad:
mv gitea-*-linux-amd64 /usr/local/bin/gitea
Legen Sie als Nächstes die ausführbare Berechtigung für die Gitea-Binärdatei fest:
chmod +x /usr/local/bin/gitea
Überprüfen Sie als Nächstes die Gitea-Version mit dem folgenden Befehl:
gitea --version
Sie sollten die folgende Ausgabe sehen:
Gitea Version 1.15.3 erstellt mit GNU Make 4.1, go1.16.8 :bindata, sqlite, sqlite_unlock_notify
Als nächstes müssen Sie eine Verzeichnisstruktur für Gitea erstellen. Sie können es mit dem folgenden Befehl erstellen:
mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
Legen Sie als Nächstes die richtige Berechtigung und den Besitz mit dem folgenden Befehl fest:
chown git:git /var/lib/gitea/{data,indexers,log}
chmod 750 /var/lib/gitea/{data,indexers,log}
chown root:git / etc/gitea
chmod 770 /etc/gitea
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Erstellen Sie eine Systemd-Dienstdatei für Gitea
Als nächstes müssen Sie eine systemd-Dienstdatei für Gitea erstellen. Sie können es mit dem folgenden Befehl erstellen:
nano /etc/systemd/system/gitea.service
Fügen Sie die folgenden Zeilen hinzu:
[Unit]Description=Gitea (Git mit einer Tasse Tee)After=syslog.targetAfter=network.targetAfter=mysql.service[Service]LimitMEMLOCK=infinityLimitNOFILE=65535RestartSec=2sType=simpleUser=gitGroup=gitWorkingDirectory=/var/ lib/gitea/ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.iniRestart=alwaysEnvironment=USER=git HOME=/opt/git GITEA_WORK_DIR=/var/lib/gitea[Install]WantedBy=multi-user.target
Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reload
Als nächstes starten und aktivieren Sie den Gitea-Dienst mit dem folgenden Befehl:
systemctl start gitea
systemctl aktiviert gitea
Führen Sie den folgenden Befehl aus, um den Gitea-Dienst zu überprüfen:
Systemctl-Status-Gitea
Sie sollten die folgende Ausgabe sehen:
An diesem Punkt wird Gitea gestartet und lauscht auf Port 3000. Sie können dies mit dem folgenden Befehl überprüfen:
ss -antpl | grep 3000
Sie sollten die folgende Ausgabe sehen:
LISTEN 0 4096 *:3000 *:* Benutzer:(("gitea",pid=19179,fd=6))
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Nginx für Gitea konfigurieren
Als nächstes müssen Sie Nginx als Reverse-Proxy für Gitea installieren und konfigurieren. Installieren Sie zuerst Nginx mit dem folgenden Befehl:
apt-get install nginx -y
Erstellen Sie als Nächstes mit dem folgenden Befehl eine Konfigurationsdatei für den virtuellen Nginx-Host:
nano /etc/nginx/conf.d/gitea.conf
Fügen Sie die folgenden Zeilen hinzu:
server {listen 80; server_name gitea.example.com; access_log /var/log/nginx/gitea_access.log; error_log /var/log/nginx/gitea_error.log; Standort / { Proxy_Pass http://localhost:3000; }}
Speichern und schließen Sie die Datei und überprüfen Sie dann Nginx auf Syntaxfehler:
nginx -t
Sie sollten die folgende Ausgabe sehen:
nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich
Starten Sie als Nächstes den Nginx-Dienst mit dem folgenden Befehl neu:
systemctl startet nginx neu
Führen Sie den folgenden Befehl aus, um den Nginx-Status zu überprüfen:
systemctl status nginx
Sie sollten die folgende Ausgabe sehen:
Als Nächstes müssen Sie die Gitea-Datei app.ini bearbeiten und Ihre Domäneninformationen definieren:
nano /etc/gitea/app.ini
Ändern Sie die folgenden Zeilen:
DOMAIN =gitea.example.comROOT_URL =http://gitea.example.com/
Speichern und schließen Sie die Datei und starten Sie dann den Gitea-Dienst neu, um die Änderungen zu übernehmen:
systemctl startet Gitea neu
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Zugriff auf die Gitea-Weboberfläche
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL http://gitea.example.com auf die Gitea-Weboberfläche zu . Sie werden auf die folgende Seite weitergeleitet:
Geben Sie Ihre Gitea-Datenbankinformationen, URL, Admin-Benutzernamen, Passwort und Port an und klicken Sie auf Installieren Gitea Taste. Sie sollten das Gitea-Dashboard auf der folgenden Seite sehen:
Schlussfolgerung
Herzliche Glückwünsche! Sie haben Gitea erfolgreich mit Nginx als Reverse-Proxy auf Debian 11 installiert. Sie können Gitea in Ihrer Entwicklungsumgebung implementieren, um Ihr Projekt zu verfolgen und zu verwalten.