Gitea ist ein quelloffenes und selbst gehostetes Versionskontrollsystem, das in Go geschrieben wurde. Es ist einfach, leicht und kann auf Systemen mit geringem Stromverbrauch installiert werden. Es ist ein Fork von Gogs und eine Alternative zu GitHub und GitLab. Es verfügt über viele Funktionen, darunter einen Repository-Dateieditor, Projektproblemverfolgung, Benutzerverwaltung, Benachrichtigungen, integriertes Wiki und vieles mehr. Es kann auf allen modernen Betriebssystemen installiert werden, einschließlich Linux, macOS, Windows, ARM und PowerPC-Architekturen.
In diesem Tutorial zeigen wir Ihnen, wie Sie den Gitea Git-Dienst mit Nginx und Let’s Encrypt SSL unter Ubuntu 20.04 installieren.
Voraussetzungen
- Ein Server mit Ubuntu 20.04.
- Ein gültiger Domainname verweist auf Ihren Server.
- Auf Ihrem Server ist ein Root-Passwort konfiguriert.
Git installieren
Zuerst müssen Sie das Git-Paket auf Ihrem Server installieren. Sie können es installieren, indem Sie den folgenden Befehl ausführen:
apt-get install git -y
Sobald das Git-Paket installiert ist, können Sie mit dem nächsten Schritt fortfahren.
MariaDB installieren und konfigurieren
Standardmäßig ist MariaDB nicht gesichert. Sie müssen es also zuerst sichern. Sie können es sichern, indem Sie das Skript mysql_secure_installation ausführen:
mysql_secure_installation
Dieses Skript setzt das Root-Passwort, entfernt anonyme Benutzer, verbietet Root-Login aus der Ferne und entfernt die Testdatenbank wie unten gezeigt:
Aktuelles Passwort für Root eingeben (Eingabe für keins):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
Sobald die MariaDB gesichert ist, melden Sie sich mit dem folgenden Befehl bei der MariaDB-Shell an:
mysql -u root -p
Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden. Ändern Sie dann GLOBAL innodeb_file_per_table auf On:
MariaDB [(keine)]>SET GLOBAL innodb_file_per_table =ON;
Erstellen Sie als Nächstes eine Datenbank und einen Benutzer für Gitea mit dem folgenden Befehl:
MariaDB [(keine)]>DATENBANK giteadb ERSTELLEN;
MariaDB [(keine)]>BENUTZER ERSTELLEN 'gitea'@'localhost' IDENTIFIZIERT DURCH 'passwort';
Als nächstes erteilen Sie der giteadb-Datenbank alle Berechtigungen:
MariaDB [(none)]>Grant ALL ON giteadb.* TO 'gitea'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Aktualisieren Sie als Nächstes den Zeichensatz der Datenbank mit dem folgenden Befehl:
MariaDB [(none)]>ALTER DATABASE giteadb CHARACTER SET =utf8mb4 COLLATE utf8mb4_unicode_ci;
Leeren Sie abschließend die Berechtigungen und beenden Sie die MariaDB-Shell mit dem folgenden Befehl:
MariaDB [(keine)]>FLUSH-RECHTE;
MariaDB [(keine)]>EXIT;
Als nächstes müssen Sie die MariaDB-Standardkonfigurationsdatei bearbeiten und innodb-Parameter hinzufügen:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Fügen Sie die folgenden Zeilen im Abschnitt [mysqld] hinzu:
innodb_file_format =Barracudainnodb_large_prefix =1innodb_default_row_format =dynamisch
Speichern und schließen Sie die Datei. Starten Sie dann den MariaDB-Dienst neu, um die Änderungen zu übernehmen:
systemctl startet mariadb neu
An dieser Stelle ist Ihre MariaDB-Datenbank konfiguriert. Sie können jetzt mit dem nächsten Schritt fortfahren.
Gitea installieren und konfigurieren
Zuerst müssen Sie die neueste Version der Gitea-Binärdatei aus dem Git-Repository herunterladen. Sie können es mit dem folgenden Befehl herunterladen:
wget https://dl.gitea.io/gitea/1.12.1/gitea-1.12.1-linux-amd64
Kopieren Sie als Nächstes die heruntergeladene Datei in das Verzeichnis /usr/bin/ und geben Sie Ausführungsberechtigungen:
cp gitea-1.12.1-linux-amd64 /usr/bin/gitea
chmod 755 /usr/bin/gitea
Erstellen Sie als Nächstes einen Systembenutzer für Gitea mit dem folgenden Befehl:
adduser --system --shell /bin/bash --group --disabled-password --home /home/git git
Erstellen Sie als Nächstes eine Verzeichnisstruktur für Gitea mit dem folgenden Befehl:
mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
chown git:git /etc/gitea /var/lib/gitea/{custom, data,indexers,public,log}
chmod 750 /var/lib/gitea/{data,indexers,log}
chmod 770 /etc/gitea
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Gitea-Systemd-Dienstdatei erstellen
Als Nächstes müssen Sie eine systemd-Dienstdatei erstellen, um den Gitea-Dienst zu verwalten. Sie können es mit dem folgenden Befehl erstellen:
nano /etc/systemd/system/gitea.service
Fügen Sie die folgenden Zeilen hinzu:
[Unit]Description=GiteaAfter=syslog.targetAfter=network.targetAfter=mysql.service[Service]RestartSec=2sType=simpleUser=gitGroup=gitWorkingDirectory=/var/lib/gitea/ExecStart=/usr/bin/gitea web -c /etc/gitea/app.iniRestart=alwaysEnvironment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea[Install]WantedBy=multi-user.target
Speichern und schließen Sie die Datei. Laden Sie dann den systemd-Daemon neu und starten Sie den Gitea-Dienst mit dem folgenden Befehl:
systemctl daemon-reload
systemctl start gitea
Sie können jetzt den Status des Gitea-Dienstes mit dem folgenden Befehl überprüfen:
Systemctl-Status-Gitea
Sie sollten die folgende Ausgabe sehen:
Aktivieren Sie als Nächstes den Gitea-Dienst so, dass er beim Systemneustart mit dem folgenden Befehl gestartet wird:
systemctl aktiviert gitea
An diesem Punkt wird Gitea gestartet und lauscht auf Port 3000. Sie können jetzt mit dem nächsten Schritt fortfahren.
Nginx für Gitea konfigurieren
Standardmäßig überwacht Gitea Port 3000. Daher müssen Sie Nginx als Reverse-Proxy konfigurieren, um auf Gitea zuzugreifen, ohne den Port anzugeben.
Installieren Sie zuerst den Nginx-Webserver, indem Sie den folgenden Befehl ausführen:
apt-get install nginx -y
Erstellen Sie nach der Installation eine neue virtuelle Nginx-Host-Konfigurationsdatei für Gitea:
nano /etc/nginx/sites-available/gitea
Fügen Sie die folgenden Zeilen hinzu:
Upstream-gitea { server 127.0.0.1:3000;}server { listen 80; Servername gitea.linuxbuz.com; root /var/lib/gitea/public; access_log off; error_log off; location / { try_files Maintain.html $uri $uri/index.html @node; } location @node { client_max_body_size 0; Proxy_Pass http://localhost:3000; Proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; Proxy_Set_Header X-Real-IP $remote_addr; Proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $schema; Proxy_max_temp_file_size 0; Proxy-Weiterleitung aus; Proxy_read_timeout 120; }}
Speichern und schließen Sie die Datei. Aktivieren Sie dann die Konfigurationsdatei des virtuellen Nginx-Hosts mit dem folgenden Befehl:
ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/
Starten Sie schließlich den Nginx-Dienst mit dem folgenden Befehl neu:
systemctl startet nginx neu
Sie können den Status des Nginx-Dienstes auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Sie sollten die folgende Ausgabe erhalten:
An diesem Punkt ist Nginx so konfiguriert, dass es Gitea bedient. Sie können jetzt mit dem nächsten Schritt fortfahren.
Sichern Sie Gitea mit Let's Encrypt SSL
Zuerst müssen Sie den Certbot-Client installieren, um Let's Encrypt SSL in Ihrem System zu installieren und zu verwalten. Sie können es installieren, indem Sie den folgenden Befehl ausführen:
apt-get install certbot python3-certbot-nginx -y
Führen Sie nach der Installation von Certbot den folgenden Befehl aus, um die Let's Encrypt SSL for Gitea-Website herunterzuladen und zu installieren.
certbot --nginx -d gitea.linuxbuz.com
Geben Sie Ihre E-Mail-Adresse ein und akzeptieren Sie die Nutzungsbedingungen wie unten gezeigt:
Speichern des Debug-Protokolls in /var/log/letsencrypt/letsencrypt.logAusgewählte Plugins:Authenticator nginx, Installer nginxE-Mail-Adresse eingeben (wird für dringende Verlängerungs- und Sicherheitshinweise verwendet) (Geben Sie „c“ zum Abbrechen ein):[email protected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bitte lesen Sie die Nutzungsbedingungen unter https://letsencrypt.org /documents/LE-SA-v1.2-November-15-2017.pdf. Sie müssen zustimmen, um sich beim ACME-Server unter https://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - zu registrieren - - - - - - - - - - - - - - -(A)gree/(C)cancel:A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wären Sie bereit, Ihre E-Mail-Adresse mit der Electronic Frontier Foundation, einem Gründungspartner des Let's Encrypt-Projekts und der gemeinnützigen Organisation, die Certbot entwickelt, zu teilen? Wir möchten Ihnen E-Mails über unsere Arbeit zur Verschlüsselung des Internets, EFF-Nachrichten, Kampagnen und Möglichkeiten zur Unterstützung der digitalen Freiheit senden.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(Y)es/(N)o:YErhalten eines neuen ZertifikatsAusführen der folgenden Herausforderungen:http-01-Herausforderung für gitea.linuxbuz.comWarten auf Überprüfung...Reinigung upherausforderungenBereitstellen des Zertifikats auf VirtualHost /etc/nginx/sites-enabled/gitea
Wählen Sie als Nächstes aus, ob der HTTP-Datenverkehr wie unten gezeigt an HTTPS umgeleitet werden soll:
Bitte wählen Sie aus, ob der HTTP-Datenverkehr auf HTTPS umgeleitet werden soll oder nicht, und den HTTP-Zugriff entfernen.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1:Keine Umleitung – Nehmen Sie keine weiteren Änderungen an der Webserver-Konfiguration vor.2:Umleitung – Alle Anfragen werden auf sicheren HTTPS-Zugriff umgeleitet. Wählen Sie dies für neue Websites oder wenn Sie sicher sind, dass Ihre Website auf HTTPS funktioniert. Sie können diese Änderung rückgängig machen, indem Sie die Konfiguration Ihres Webservers bearbeiten. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Wählen Sie die entsprechende Nummer [1-2] und dann [enter] (drücken Sie 'c' zum Abbrechen):2
Geben Sie 2 ein und drücken Sie die Eingabetaste, um das Zertifikat wie unten gezeigt zu installieren:
Umleitung des gesamten Datenverkehrs auf Port 80 zu SSL in /etc/nginx/sites-enabled/gitea- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Herzliche Glückwünsche! Sie haben https://gitea.linuxbuz.com erfolgreich aktiviert. Sie sollten Ihre Konfiguration testen unter:https://www.ssllabs.com/ssltest/analyze.html?d=gitea.linuxbuz.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -WICHTIGE HINWEISE:- Herzlichen Glückwunsch! Ihr Zertifikat und Ihre Kette wurden gespeichert unter:/etc/letsencrypt/live/gitea.linuxbuz.com/fullchain.pem Ihre Schlüsseldatei wurde gespeichert unter:/etc/letsencrypt/live/gitea.linuxbuz.com/privkey.pem Ihre Das Zertifikat läuft am 23.09.2020 ab. Um in Zukunft eine neue oder optimierte Version dieses Zertifikats zu erhalten, führen Sie einfach certbot erneut mit der Option „certonly“ aus. Um *all* Ihre Zertifikate nicht interaktiv zu erneuern, führen Sie „certbot renew“ aus. Wenn Sie Certbot mögen, ziehen Sie bitte in Betracht, unsere Arbeit zu unterstützen, indem Sie:Spende an ISRG / Let’s Encrypt:https://letsencrypt.org/donate Spende an EFF:https://eff.org/donate-le
Jetzt ist Ihre Gitea-Website mit Let’s Encrypt SSL gesichert. Sie können jetzt mit dem nächsten Schritt fortfahren.
Zugriff auf die Gitea-Weboberfläche
Öffnen Sie nun Ihren Webbrowser und geben Sie die URL https://gitea.linuxbuz.com/install ein. Sie werden auf die folgende Seite weitergeleitet:
Geben Sie Ihren Gitea-Datenbanknamen, Benutzernamen, Passwort, Repository-Pfad, Ausführen als Benutzernamen, Listening-Port, Gitea-Basis-URL, Protokollpfad, Gitea-Admin-Benutzernamen, Passwort ein und klicken Sie auf Installieren Gitea Taste. Sobald die Installation abgeschlossen ist, sollten Sie das Gitea-Dashboard auf dem folgenden Bildschirm sehen:
Schlussfolgerung
Herzliche Glückwünsche! Sie haben Gitea mit Nginx und Let’s Encrypt SSL erfolgreich auf dem Ubuntu 20.04-Server installiert. Sie können jetzt Gitea erkunden und Ihr erstes Repository mit Gitea erstellen. Weitere Informationen finden Sie in der Gitea-Dokumentation.