So installierst du Gitea mit PostgreSQL unter Debian 11
Gitea ist eine kostenlose, quelloffene und selbstgehostete Lösung für Git-Server. Gitea wurde in der Programmiersprache Go geschrieben und ist eine leichtgewichtige Anwendung, die als Binärpaket verfügbar ist und auf den meisten Plattformen installiert werden kann, darunter Windows, Linux und macOS. Es ist eine der robusten, skalierbaren, schnellen und einfach zu bedienenden Alternativen zu GitLab.
Gitea bietet viele Funktionen, darunter einen Editor für Repository-Dateien, Fehler- und Zeitverfolgung, Repository-Branching, Dateisperren, ein eingebautes Wiki, Merging, Unterstützung für mehrere Datenbanken, einen einfachen Upgrade-Prozess, eine eingebaute Container-Registry und vieles mehr.
In diesem Tutorial zeige ich dir, wie du Gitea als Binärpaket mit PostgreSQL auf Debian 11 installierst.
Voraussetzungen
- Ein Server, auf dem Debian 11 läuft.
- Ein Root-Passwort ist auf dem Server eingerichtet.
Schritt 1 – Betriebssystem aktualisieren
Bevor du mit der Installation von Gitea beginnst, führe den folgenden Befehl aus, um dein System mit der neuesten Version zu aktualisieren.
sudo apt-get update -y
sudo apt-get upgrade -y
Schritt 2 – PostgreSQL installieren und konfigurieren
Gitea unterstützt alle gängigen Datenbanken wie MySQL, MariaDB, SQLite, MySQL und PostgreSQL. In dieser Anleitung wird jedoch PostgreSQL als Gitea-Datenbank verwendet.
Erstelle zunächst das PostgreSQL-Repository mit dem folgenden Befehl:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Als Nächstes musst du den Signierschlüssel des Repositorys importieren:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Installiere nun PostgreSQL mit den folgenden Befehlen:
sudo apt-get update
sudo apt-get -y install postgresql
Starte als Nächstes den PostgreSQL-Dienst, aktiviere ihn beim Systemstart und überprüfe den PostgreSQL-Dienststatus mit folgendem Befehl:
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo systemctl status postgresql
Als Nächstes musst du das md5-Verschlüsselungsverfahren durch das SCRAM-SHA-256-Verschlüsselungsverfahren ersetzen, um die Sicherheit zu erhöhen. Wenn du dich aus der Ferne mit PostgreSQL verbinden willst, musst du deine IP-Adresse in der PostgreSQL-Konfigurationsdatei zulassen. Öffne die Konfigurationsdatei und nimm die Änderungen mit dem folgenden Befehl vor:
sudo vim /etc/postgresql/14/main/postgresql.conf
Wenn du eine andere PostgreSQL-Version installiert hast, ändere den obigen Befehlspfad entsprechend ab.
Als Nächstes änderst du die folgenden Variablen entsprechend deinen Anforderungen:
listen_addresses = 'localhost, 134.122.38.45' password_encryption = scram-sha-256
Speichere und beende die Datei und starte den PostgreSQL-Dienst neu, um die Änderungen zu übernehmen.
sudo systemctl restart postgresql
Melde dich mit folgendem Befehl in der PostgreSQL-Shell an:
sudo -u postgres psql
Erstelle dann eine Benutzerrolle und eine Datenbank für Gitea, indem du den folgenden Befehl ausführst:
postgres=# CREATE ROLE gitea WITH LOGIN PASSWORD 'secure@123';
postgres=# CREATE DATABASE giteadb;
postgres=# GRANT ALL PRIVILEGES ON DATABASE giteadb TO gitea;
postgres=# exit
Hier musst du den Benutzernamen, den Datenbanknamen und dein Passwort für Gitea festlegen.
Jetzt ist PostgreSQL eingerichtet und bereit für Gitea. Überprüfe die Authentifizierungseinstellungen in der Datei /etc/postgresql/14/main/pg_hba.conf.
PostgreSQL akzeptiert standardmäßig alle lokalen Verbindungen.
host all all 127.0.0.1/32 scram-sha-256
Wenn du Giteadb aus der Ferne nutzen willst, füge die folgende Zeile mit deiner IP-Adresse in /etc/postgresql/14/main/pg_hba.conf ein
host giteadb gitea 134.122.38.0/32 scram-sha-256
Schritt 3 – Git installieren und konfigurieren
Als Nächstes installierst du Git mit dem folgenden Befehl:
sudo apt install git
Überprüfe die Git-Installation, indem du die Git-Version überprüfst:
git --version
Ausgabe:-
git version 2.30.2
Als nächstes musst du deinen Namen und deine E-Mail-Adresse für Git festlegen.
git config --global user.name "Your Name"
git config –global user.email „youremail@domain.com”
Du kannst deine Git-Konfiguration mit dem folgenden Befehl überprüfen.
git config --list
Ausgabe:-
user.name=Your Name user.email=youremail@domain.com
Schritt 4 – Erstelle einen Git-Benutzer für Gitea
Jetzt musst du einen Gitea-Benutzer anlegen. Das kannst du mit dem folgenden Befehl tun:
sudo adduser \ --system \ --shell /bin/bash \ --gecos 'Git Version Control' \ --group \ --disabled-password \ --home /home/git \ git
Damit wird ein neuer Benutzer git erstellt.
Schritt 5 – Gitea installieren und konfigurieren
Gehe auf die Gitea Download Seite und lade die neueste Version des Gitea Binary herunter. Zum Zeitpunkt der Erstellung dieses Tutorials ist die neueste Version von Gitea 1.15.7. Du kannst die Variable VERSION im folgenden Befehl ändern, um eine andere Version zu installieren.
cd /tmp
GITEAVERSION=1.15.7 wget -O gitea https://dl.gitea.io/gitea/${GITEAVERSION}/gitea-${GITEAVERSION}-linux-amd64
Als Nächstes verschiebst du das Gitea-Binary mit dem folgenden Befehl in den Systempfad:
sudo mv /tmp/gitea /usr/local/bin
Lege die Ausführungsberechtigung für die Gitea-Binärdatei fest, indem du den folgenden Befehl im Terminal ausführst:
chmod +x /usr/local/bin/gitea
Als Nächstes musst du eine Verzeichnisstruktur für Gitea erstellen; führe dazu die folgenden Befehle aus:
sudo mkdir -p /etc/gitea
sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
Als Nächstes gibst du mit den folgenden Befehlen die erforderlichen Berechtigungen für Gitea ein, damit es richtig funktioniert:
sudo chown -R git:git /var/lib/gitea/
sudo chown root:git /etc/gitea
sudo chmod -R 750 /var/lib/gitea/
sudo chmod 770 /etc/gitea
Als Nächstes erstellst du eine systemd-Dienstdatei für Gitea mit dem folgenden Befehl:
vim /etc/systemd/system/gitea.service
Füge den folgenden Code in die Datei ein.
[Unit] Description=Gitea After=syslog.target After=network.target After=postgresql.service
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
Speichere und beende die Datei. Lade dann den systemd-Daemon neu und starte den Gitea-Dienst mit dem folgenden Befehl:
sudo systemctl daemon-reload
sudo systemctl start gitea
Als nächstes musst du den Gitea-Dienst beim Neustart des Systems aktivieren:
sudo systemctl enable gitea
Als Nächstes überprüfst du den Status von Gitea mit dem folgenden Befehl:
sudo systemctl status gitea
Du solltest die folgende Ausgabe sehen:
Wie du siehst, ist Gitea gestartet und läuft standardmäßig auf Port 3000. Du kannst den Gitea-Port mit dem folgenden Befehl überprüfen:
netstat -tulpan | grep 3000
Du solltest eine Ausgabe wie die folgende sehen:
tcp6 0 0 :::3000 :::* LISTEN 43778/gitea
Schritt 6 – Zugriff auf das Gitea-Webinterface
Gitea ist nun gestartet und wird standardmäßig auf Port 3000 überwacht. Öffne deinen Browser und gib https://YOURIPADDRESS:3000 ein.
Als Nächstes gibst du die erforderlichen Parameter wie folgt ein:
Datenbankeinstellungen
Datenbanktyp: PostgreSQL
Host: 127.0.0.1:5432
Benutzername: gitea
Passwort: Gib das Passwort ein, das du bei der Erstellung der Postgres-Rolle gewählt hast.
Datenbankname: giteadb
SSL: Deaktivieren
Allgemeine Einstellungen
Website-Titel: Ein Titel deiner Wahl.
Repository Root Path: /var/lib/gitea/data/repositories
Git LFS Root Path: /var/lib/gitea/data/lfs
Run As Username: git
SSH Server Domain: your_domain/IP
SSH Server Port: 22
Gitea HTTP Listen Post: 3000
Gitea Base URL: http://YOURIPADDRESS:3000
Log Path: /var/lib/gitea/log
In diesem Stadium kannst du deine E-Mail- und Server- und Drittanbieter-Einstellungen konfigurieren, oder du kannst dies später tun. Du solltest jedoch den Administratorkonfigurieren
Benutzernamen , um dich bei Gitea anzumelden. Gehe also zu Optionale Einstellung und gib die Details der Administrator-Kontoeinstellung ein und erstelle ‚Administrator-Benutzer‘ für Gitea.
Als nächstes klickst du auf die Schaltfläche „Gitea installieren“. Sobald die Installation erfolgreich abgeschlossen ist, wirst du zum Gitea Dashboard weitergeleitet, das auf der folgenden Seite zu sehen ist:
Jetzt kannst du Gitea erkunden und über die Option „Website-Verwaltung“ deines Administratorkontos andere Dienste von Drittanbietern einrichten, z. B. die Integration des Active Directory von Windows mit Gitea.
Schritt 7 – E-Mail-Benachrichtigungen einrichten
Du kannst E-Mail-Benachrichtigungen in Gitea mit Sendmail oder über einen E-Mail-Dienst eines Drittanbieters wie Amazon SES oder Sendgrid aktivieren.
Um E-Mail-Benachrichtigungen zu aktivieren, öffne die Gitea-Konfigurationsdatei mit dem folgenden Befehl:
vim /etc/gitea/app.in
Als Nächstes bearbeitest du den folgenden Abschnitt in der Datei und fügst den folgenden Code entsprechend deiner E-Mail-Einstellungen hinzu.
[mailer] ENABLED = true FROM = gitea@example.com MAILER_TYPE = smtp HOST = mail.example.com:587 IS_TLS_ENABLED = true USER = gitea@example.com PASSWD = password
Speichere und beende die Datei und starte den Gitea-Dienst neu, um die Änderungen zu übernehmen:
sudo systemctl restart gitea
Schritt 10 – Gitea aktualisieren
Die Aktualisierung von Gitea ist ein müheloser Prozess, bei dem du nur die Gitea-Binärdatei herunterladen und ersetzen musst.
Beende zunächst den Gitea-Dienst:
sudo systemctl stop gitea
Lade die Gitea-Binärdatei herunter und installiere sie mit dem folgenden Befehl:
cd /tmp GITEAVERSION=LATESTVERSION wget -O gitea https://dl.gitea.io/gitea/${GITEAVERSION}/gitea-${GITEAVERSION}-linux-amd64 sudo mv gitea /usr/local/bin sudo chmod +x /usr/local/bin/gitea
Starte dann den Gitea-Dienst mit dem folgenden Befehl:
sudo systemctl start gitea
Jetzt ist dein Gitea auf dem neuesten Stand, ohne dass es zu Ausfallzeiten kommt.
Fazit
Herzlichen Glückwunsch! Du hast den Gitea-Git-Dienst erfolgreich auf Debian 11 installiert. Jetzt kannst du Gitea ganz einfach über einen Webbrowser aktualisieren und dein Git-Repository verwalten. Außerdem kannst du dich gerne an mich wenden, wenn du Fragen hast.