Wie man Gogs Go Git Service auf Ubuntu installiert 16.04

Gogs ist ein kostenloser und quelloffener Git-Dienst, der in der Sprache Go geschrieben wurde. Gogs ist ein unkomplizierter, selbst gehosteter Git-Dienst, mit dem Sie Ihren eigenen Git-Server auf einem minimalen Hardware-Server erstellen und betreiben können. Gogs web-UI ist sehr ähnlich zu GitHub und bietet Unterstützung für MySQL, PostgreSQL und SQLite-Datenbanken.

In diesem Tutorial zeigen wir Ihnen Schritt für Schritt, wie Sie Ihren eigenen Git-Dienst mit Gogs auf Ubuntu 16.04 installieren und konfigurieren. Dieses Tutorial behandelt Details, einschließlich der Installation von Go on Ubuntu-System, der Installation von PostgreSQL und der Installation und Konfiguration des Nginx-Webservers als Reverse-Proxy für Go-Anwendungen.

Voraussetzungen

  • Ubuntu 16.04.
  • Root-Rechte

Was wir tun werden

  1. Update- und Upgrade-System
  2. Installation und Konfiguration von PostgreSQL
  3. Installieren Sie Go and Git
  4. Gogs installieren
  5. Gogs konfigurieren
  6. Gogs als Dienst ausführen
  7. Nginx als Reverse Proxy installieren und konfigurieren
  8. Prüfung

Schritt 1 – Update- und Upgrade-System

Bevor Sie weitermachen, aktualisieren Sie alle Ubuntu-Repositorys und aktualisieren Sie alle Pakete.

Führen Sie die folgenden apt-Befehle aus.

sudo apt update
sudo apt upgrade

Schritt 2 – Installation und Konfiguration von PostgreSQL

Gogs bietet Unterstützung für MySQL, PostgreSQL, SQLite3, MSSQL und TiDB Datenbanksysteme.

In diesem Leitfaden werden wir PostgreSQL als Datenbank für unsere Gogs-Installationen verwenden.

Installieren Sie PostgreSQL mit dem folgenden apt-Befehl.

sudo apt install -y postgresql postgresql-client libpq-dev

Nachdem die Installation abgeschlossen ist, starten Sie den PostgreSQL-Dienst und aktivieren Sie ihn, damit er jedes Mal beim Systemstart gestartet werden kann.

systemctl start postgresql
systemctl enable postgresql

Die PostgreSQL-Datenbank wurde auf einem Ubuntu-System installiert.

Als nächstes müssen wir eine neue Datenbank und einen neuen Benutzer für Gogs erstellen.

Melden Sie sich als Benutzer „postgres“ an und führen Sie den Befehl „psql“ aus, um die PostgreSQL-Shell zu erhalten.

su - postgres
psql

Erstellen Sie einen neuen Benutzer namens’git‘ und vergeben Sie dem Benutzer die Berechtigungen für’CREATEDB‘.

CREATE USER git CREATEDB;
\password git

Erstellen Sie eine Datenbank mit dem Namen’gogs_production‘ und setzen Sie den Benutzer’git‘ als Eigentümer der Datenbank.

CREATE DATABASE gogs_production OWNER git;

Erstellen der Gogs-Datenbank

Neue PostgreSQL-Datenbank ‚gogs_production‘ und Benutzer ‚git‘ für die Gogs-Installation wurde erstellt.

Schritt 3 – Installieren Sie Go and Git.

Installieren Sie Git aus dem Repository mit dem Befehl apt unten.

sudo apt install git

Füge nun dem System einen neuen Benutzer’git‘ hinzu.

sudo adduser --disabled-login --gecos 'Gogs' git

Melden Sie sich als ‚git‘ Benutzer an und erstellen Sie ein neues ‚lokales‘ Verzeichnis.

su - git
mkdir -p /home/git/local

Gehen Sie in das Verzeichnis „local“ und laden Sie „Go“ (die neueste Version) mit dem Befehl wget herunter, wie unten gezeigt.

cd ~/local
wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz

Installieren Sie Go and Git

Extrahieren Sie die komprimierte Go-Datei und entfernen Sie sie dann.

tar -xf go1.9.2.linux-amd64.tar.gz
rm -f go1.9.2.linux-amd64.tar.gz

Die Binärdatei’Go‘ wurde im Verzeichnis’~/local/go‘ heruntergeladen. Jetzt müssen wir die Umgebung einrichten – wir müssen die Verzeichnisse ‚GOROOT‘ und ‚GOPATH definieren, damit wir einen ‚go‘-Befehl auf dem System unter dem Benutzer ‚git‘ ausführen können.

Führen Sie alle folgenden Befehle aus.

cd ~/
echo 'export GOROOT=$HOME/local/go' >> $HOME/.bashrc
echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $HOME/.bashrc

Und laden Sie Bash neu, indem Sie den Befehl’source ~/.bashrc‘ ausführen, wie unten gezeigt.

source ~/.bashrc

Stellen Sie sicher, dass Sie Bash als Standard-Shell verwenden.

Go-Programmiersprache installieren

Führen Sie nun den Befehl ‚go‘ aus, um die Version zu überprüfen.

go version

Und stellen Sie sicher, dass Sie das Ergebnis erhalten, wie im folgenden Screenshot gezeigt.

Überprüfen Sie die Go-Version

Go ist nun auf dem System unter dem Benutzer’git‘ installiert.

Schritt 4 – Installieren Sie Gogs Go Git Service

Melden Sie sich als ‚git‘ Benutzer an und laden Sie ‚Gogs‘ mit dem Befehl ‚go‘ von GitHub herunter.

su - git
go get -u github.com/gogits/gogs

Der Befehl lädt den gesamten Gogs-Quellcode in das Verzeichnis’GOPATH/src‘ herunter.

Gehen Sie in das Verzeichnis’$GOPATH/src/github.com/gogits/gogs‘ und erstellen Sie gogs mit den untenstehenden Befehlen.

cd $GOPATH/src/github.com/gogits/gogs
go build

Und stellen Sie sicher, dass Sie keine Fehler erhalten.

Führen Sie nun Gogs Go Git Service mit dem folgenden Befehl aus.

./gogs web

Der Befehl führt Gogs auf dem Standardport 3000 aus.

Installieren Sie Gogs Go Git Service

Öffnen Sie Ihren Webbrowser und geben Sie Ihre Server-IP-Adresse mit Port 3000 ein, meine ist http://192.168.33.10:3000/

Und Sie sollten das Ergebnis wie unten gezeigt erhalten.

Gogs Web-Installer

Gogs ist auf dem Ubuntu-System installiert. Kehren Sie nun zu Ihrem Terminal zurück und drücken Sie’Strg + c‘, um das Menü zu verlassen.

Schritt 5 – Gogs Go Git Service konfigurieren

In diesem Schritt erstellen wir eine benutzerdefinierte Konfiguration für Gogs.

Gehen Sie zum Gogs-Installationsverzeichnis und erstellen Sie ein neues Verzeichnis’custom/conf‘.

cd $GOPATH/src/github.com/gogits/gogs
mkdir -p custom/conf/

Kopieren Sie die Standardkonfiguration in das benutzerdefinierte Verzeichnis und bearbeiten Sie sie mit vim.

cp conf/app.ini custom/conf/app.ini
vim custom/conf/app.ini

Ändern Sie im Abschnitt ‚[server]‚ den Server ‚HOST_ADDR‘ mit ‚127.0.0.0.0.1‘.

[server]
 PROTOCOL = http
 DOMAIN = localhost
 ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
 HTTP_ADDR = 127.0.0.1
 HTTP_PORT = 3000

Ändern Sie im Abschnitt ‚[Datenbank]‚ alles mit Ihren eigenen Datenbankinformationen.

[database]
 DB_TYPE = postgres
 HOST = 127.0.0.1:5432
 NAME = gogs_production
 USER = git
 PASSWD = [email protected]#

Speichern und beenden.

Überprüfen Sie nun die Konfiguration, indem Sie den Befehl wie unten gezeigt ausführen.

./gogs web

Und stellen Sie sicher, dass Sie das Ergebnis wie folgt erhalten.

Konfigurieren Sie den Dienst

Gogs läuft nun mit unserer benutzerdefinierten Konfiguration, unter’localhost‘ mit Port 3000.

Schritt 6 – Gogs als Dienst ausführen

In diesem Schritt werden wir Gogs als Dienst auf dem Ubuntu-System konfigurieren. Wir werden eine neue Servicedateikonfiguration ‚gogs.service‘ unter dem Verzeichnis’/etc/systemd/system‘ erstellen.

Gehen Sie in das Verzeichnis’/etc/systemd/system‘ und erstellen Sie mit dem vim-Editor eine neue Servicedatei’gogs.service‘.

cd /etc/systemd/system
vim gogs.service

Fügen Sie dort die folgende gogs-Service-Konfiguration ein.

[Unit]
 Description=Gogs
 After=syslog.target
 After=network.target
 After=mariadb.service mysqld.service postgresql.service memcached.service redis.service
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/go/src/github.com/gogits/gogs
ExecStart=/home/git/go/src/github.com/gogits/gogs/gogs web
Restart=always
Environment=USER=git HOME=/home/git

[Install]
WantedBy=multi-user.target

Speichern und beenden.

Laden Sie nun die Systemdienste neu.

systemctl daemon-reload

Starten Sie den gogs-Dienst und aktivieren Sie ihn, damit er jederzeit beim Systemstart mit dem Befehl systemctl gestartet werden kann.

systemctl start gogs
systemctl enable gogs

Ausführen von gogs als Dienst

Gogs läuft nun als Dienst auf dem Ubuntu-System.

Überprüfen Sie dies mit den folgenden Befehlen.

netstat -plntu
systemctl status gogs

Und Sie sollten das Ergebnis wie unten gezeigt erhalten.

Gogs hört auf die Netzwerkschnittstelle.

Schritt 7 – Nginx als Reverse Proxy für Gogs konfigurieren

In diesem Schritt werden wir Nginx als Reverse-Proxy für Gogs konfigurieren. Wir werden Nginx-Pakete aus unserem eigenen Repository verwenden.

Fügen Sie das Nginx-Repository mit dem Befehl add-apt hinzu.

sudo add-apt-repository -y ppa:nginx/stable

Aktualisieren Sie nun alle Ubuntu-Repositorys und installieren Sie Nginx mit dem Befehl apt unten.

sudo apt update
sudo apt install nginx -y

Als nächstes gehen Sie in das Verzeichnis’/etc/nginx/sites-available‘ und erstellen eine neue virtuelle Hostdatei’gogs‘.

cd /etc/nginx/sites-available
vim gogs

Fügen Sie dort die folgende Konfiguration ein.

server {
     listen 80;
     server_name git.hakase-labs.co;
location / {
proxy_pass http://localhost:3000;
}
}

Speichern und beenden.

Hinweis:

Ändere die Zeile’server_name‘ mit deinem eigenen Domainnamen.

Aktivieren Sie nun einen neuen virtuellen Host und testen Sie die nginx-Konfiguration.

ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/
nginx -t

Stellen Sie sicher, dass kein Fehler vorliegt, und starten Sie dann den Nginx-Dienst neu.

systemctl restart nginx

Nginx Reverse-Proxy für Gogs

Schritt 8 – Prüfung

Öffnen Sie Ihren Webbrowser und geben Sie Ihre gogs URL ein, meine ist http://git.hakase-labs.co

Jetzt erhalten Sie die Installationsseite. Geben Sie oben auf der Seite alle Ihre PostgreSQL-Datenbankinformationen ein.

Gogs Installateur

Scrollen Sie nun nach unten und klicken Sie auf die Dropdown-Liste „Admin-Kontoeinstellungen“.

Geben Sie Ihren Admin-Benutzer, Ihr Passwort und Ihre E-Mail-Adresse ein.

Geben Sie die Gogs-Installationseinstellungen ein.

Klicken Sie dann auf die Schaltfläche „Gogs installieren“.

Und du wirst wie unten gezeigt zum Gogs User Dashboard weitergeleitet.

Gogs dashboard

Unten ist Gogs’Admin Dashboard‘.

Das Gogs Dashboard durchsuchen

Gogs ist jetzt mit PostgreSQL-Datenbank und Nginx-Webserver auf Ubuntu 16.04-Server installiert.

Referenz

Das könnte dich auch interessieren …