GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Gitea mit Nginx und kostenlosem Lets Encrypt SSL unter Ubuntu 20.04

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:

? gitea.service - Gitea Geladen:geladen (/etc/systemd/system/gitea.service; deaktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Do 2020-06-25 08:23:01 UTC; Vor 6s Haupt-PID:24046 (gitea) Aufgaben:9 (Grenze:2353) Speicher:134,3 MB CGroup:/system.slice/gitea.service ??24046 /usr/bin/gitea web -c /etc/gitea/app. iniJun 25 08:23:02 ubuntu20 gitea[24046]:2020/06/25 08:23:02 routers/init.go:127:GlobalInit() [I] Alle Repository-Archive löschenJun 25 08:23:02 ubuntu20 gitea[ 24046]:2020/06/25 08:23:02 ...dules/setting/log.go:233:newLogService() [I] Gitea v1.12.1 gebaut mit GNU Make 4>Jun 25 08:23:02 ubuntu20 gitea[24046]:2020/06/25 08:23:02 ...dules/setting/log.go:279:newLogService() [I] Gitea Log Mode:Console(Console:inf>Jun 25 08:23:02 ubuntu20 gitea[24046]:2020/06/25 08:23:02 ...les/setting/cache.go:70:newCacheService() [I] Cache Service EnabledJun 25 08:23:02 ubuntu20 gitea[24046] :2020/06/25 08:23:02 ...les/setting/cache.go:81:newCacheService() [I] Last Commit Cache Service EnabledJun 25 08:23:02 ubuntu20 gitea[24046]:2020/06 /25 08:23:02 ...s/setting/session.go:63:newSessionService() [I] Session Service EnabledJun 2 5 08:23:02 ubuntu20 gitea[24046]:2020/06/25 08:23:02 routers/init.go:165:GlobalInit() [I] SQLite3 SupportedJun 25 08:23:02 ubuntu20 gitea[24046]:2020/06/25 08:23:02 routers/init.go:51:checkRunMode() [I] Run Mode:DevelopmentJun 25 08:23:03 ubuntu20 gitea[24046]:2020/06/25 08:23:03 cmd/web.go:161:runWeb() [I] Listen:http://0.0.0.0:3000Jun 25 08:23:03 ubuntu20 gitea[24046]:2020/06/25 08:23:03 ... s/graceful/server.go:55:NewServer() [I] Neuen Server starten:tcp:0.0.0.0:3000 on>lines 1-19/19 (END)

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:

? nginx.service - Ein Hochleistungs-Webserver und ein Reverse-Proxy-Server Geladen:geladen (/lib/systemd/system/nginx.service; aktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Do 25.06.08 :26:00 UTC; vor 1min 24s Dokumentation:man:nginx(8) Prozess:24866 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process an; (code=beendet, status=0/SUCCESS) Prozess:24877 ExecStart=/usr/sbin/nginx -g daemon on; master_process an; (code=exited, status=0/SUCCESS) Main PID:24879 (nginx) Tasks:3 (limit:2353) Memory:3.6M CGroup:/system.slice/nginx.service ??24879 nginx:master process /usr/ sbin/nginx -g Daemon an; master_process an; 24880 Nginx:Arbeitsprozess 1]:Gestartet Ein Hochleistungs-Webserver und ein Reverse-Proxy-Server.

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.


Ubuntu
  1. So installieren Sie Nextcloud mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  2. So installieren Sie Magento 2 mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  3. So installieren Sie Drupal 8 mit Nginx, PHP-FPM und SSL unter Ubuntu 15.10

  4. So installieren Sie OpenCart 2 mit Nginx und SSL unter Ubuntu 15.10

  5. So installieren Sie Gitea mit NGINX und Free Let’s Encrypt SSL unter Ubuntu 20.04

So installieren Sie das NodeBB-Forum mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

So installieren Sie Concrete5 CMS mit Apache und kostenlosem Lets Encrypt SSL unter Ubuntu 20.04

So installieren Sie ProjectSend mit Apache und Lets Encrypt SSL unter Ubuntu 20.04

So installieren Sie SuiteCRM mit Apache und kostenlosem Lets Encrypt SSL unter Debian 11

So installieren Sie Moodle mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04

So installieren Sie MediaWiki mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04