Gogs ist ein schmerzloser, selbst gehosteter Git-Dienst.
Dieses Handbuch verwendet PostgreSQL für die Datenbank und Nginx als Reverse-Proxy. Nach dem Anschluss an diese Anleitung werden Sie in der Lage sein , die Gogs Webinterface durch den Zugriff auf HTTPund die gehosteten git Repositories durch HTTPund SSH. HTTPSDer Zugriff kann durch Erweitern der Nginx-Konfiguration hinzugefügt werden.
Sie sollten über ein aktuelles System und einen Nicht-Root-Sudo-Benutzer verfügen .
Richten Sie die Datenbank ein
Dieses Handbuch verwendet PostgreSQL. Sie können alternativ MySQL / MariaDB, SQLite3, MSSQL oder TiDB verwenden.
Installieren Sie PostgreSQL.
sudo apt-get install -y postgresql
Erstellen Sie den Benutzer, in dem Gogs eine Verbindung zur Datenbank herstellen soll. Dadurch werden Sie aufgefordert, ein Kennwort für diesen Benutzer zu erstellen. Dieses Passwort wird später in die Konfiguration von Gog eingegeben.
sudo -u postgres createuser gogs -P
Erstellen Sie die Gogs-Datenbank.
sudo -u postgres createdb gogs -O gogs -E UTF8
Richten Sie den Reverse Proxy ein
In diesem Handbuch wird Nginx als Reverse-Proxy verwendet. Sie können alternativ einen anderen HTTPServer verwenden, der als Reverse-Proxy fungieren kann, z. B. Apache oder Caddy.
Installieren Sie Nginx.
sudo apt-get install -y nginx
Bearbeiten /etc/nginx/sites-enabled/default.
sudo nano /etc/nginx/sites-enabled/default
Suchen Sie die folgenden Zeilen.
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
Ändern Sie sie in diese.
location / {
proxy_pass http://127.0.0.1:3000;
}
Laden Sie Nginx neu, um die neue Konfiguration zu verwenden.
sudo systemctl reload nginx
Installieren Sie Gogs
Stellen Sie zunächst sicher, dass gitinstalliert ist.
sudo apt-get install -y git
Erstellen Sie dann den Benutzer Gogs wird ausgeführt und wird für den SSH-Git-Zugriff verwendet.
sudo useradd -m git
Laden Sie anschließend die Gogs-Version für Ihre Architektur herunter und entpacken Sie sie.
Für 64-Bit-Systeme.
sudo -u git sh -c "curl https://dl.gogs.io/0.11.29/linux_amd64.tar.gz | tar -xz -C /home/git/"
Für 32-Bit-Systeme.
sudo -u git sh -c "curl https://dl.gogs.io/0.11.29/linux_386.tar.gz | tar -xz -C /home/git/"
Richten Sie Gogs so ein, dass sie beim Booten ausgeführt werden.
sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system
sudo systemctl enable gogs
Starten Sie Gogs.
sudo systemctl start gogs
Dies ist das einzige Mal, dass Sie Gogs auf diese Weise starten müssen.
Anfangskonfiguration
Gehen Sie http://example.comin Ihrem Webbrowser zu. Du wirst sehen:Install Steps For First-time Run
Ändern Sie die folgenden Einstellungen.
Database Type: PostgreSQL
User: gogs
Password: (password you created earlier)
Domain: example.com
Application URL: http://example.com/
Möglicherweise möchten Sie die Application Name, die Email Service Settingsund festlegen Server and Other Services Settings. Alle Einstellungen können später durch Bearbeiten geändert werden /home/git/gogs/custom/conf/app.ini.
Klicken Sie auf Install Gogs.
Sie werden zu einer Anmeldeseite weitergeleitet. Sign upein neuer Benutzer jetzt.
Nur HTTP (S) -Zugriff über Nginx zulassen
Dies ist vor allem dann nützlich, wenn Sie Nginx zum Beenden von HTTPS verwenden.
HTTP_ADDR = 127.0.0.1Zum [server]Abschnitt von hinzufügen /home/git/gogs/custom/conf/app.ini.
sudo -u git nano /home/git/gogs/custom/conf/app.ini
Nach dieser Änderung [server]sieht der Abschnitt wie folgt aus.
[server]
DOMAIN = example.com
HTTP_ADDR = 127.0.0.1
HTTP_PORT = 3000
ROOT_URL = http://example.com/
DISABLE_SSH = false
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = false
Starten Sie Gogs neu, um die aktualisierte Konfiguration zu verwenden.
sudo systemctl restart gogs