So richten Sie Gogs unter Ubuntu ein 14.04

Ein Artikel von http://gogs.io [Gogs]

Einführung

http://gogs.io [Gogs] ist ein in Go geschriebener, selbst gehosteter Git-Dienst, der sehr einfach zum Laufen zu bringen ist und auch eine geringe Systemnutzung aufweist. Es ist die einfachste, schnellste und schmerzloseste Möglichkeit, einen selbst gehosteten Git-Service einzurichten.

Am Ende dieses Tutorials wird eine Instanz von Gogs ausgeführt, die eine Weboberfläche, ein Administrations-Dashboard und den Zugriff auf Vorgänge wie Git-Pull und -Push enthält.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

  • Ein Ubuntu 14.04-Tröpfchen beliebiger Größe.

  • A sudo non-root user. In diesem Tutorial wird aus Sicherheitsgründen ein separater sudo-Benutzer ohne Rootberechtigung nur für Gogs verwendet. In diesem Lernprogramm wird davon ausgegangen, dass dieser dedizierte Benutzer gemäß der Konvention des Git-Dienstes * git * heißt. Dieses Tutorial sollte als * git * Benutzer befolgt werden.

Schritt 1 - Installieren Sie die Datenbank

In diesem Schritt erstellen wir die Back-End-Gogs-Datenbank.

Stellen Sie nach der Anmeldung sicher, dass Ihre Systempakete auf dem neuesten Stand sind.

sudo apt-get update

Wir werden MySQL als Back-End-Server verwenden, also installieren Sie es als Nächstes. Das "+ -y +" - Flag setzt hier ein "Ja" für alle Eingabeaufforderungen voraus.

sudo apt-get -y install mysql-server

Während der Installation werden Sie aufgefordert, das Passwort des Datenbankbenutzers * root * einzugeben. Stellen Sie sicher, dass Sie eine sichere verwenden, und merken Sie sich diese, da Sie sie später in diesem Lernprogramm benötigen.

Erstellen und öffnen Sie nun eine Datei mit dem Namen "+ gogs.sql ". Hier verwenden wir " nano +", aber Sie können Ihren bevorzugten Texteditor verwenden.

nano gogs.sql

Fügen Sie den folgenden Inhalt in die Datei ein und speichern und schließen Sie sie.

DROP DATABASE IF EXISTS gogs;
CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8 COLLATE utf8_general_ci;

Führen Sie abschließend "+ gogs.sql " mit MySQL aus, um die Gogs-Datenbank zu erstellen. Ersetzen Sie `+` durch das Root-Passwort, das Sie zuvor in diesem Schritt gewählt haben.

  • Hinweis *: In diesem Befehl steht kein Leerzeichen zwischen dem "+ -p +" - Flag und Ihrem Kennwort.

mysql -u root -p < gogs.sql

_ _

Um Gogs aus dem Quellcode zu installieren, werden Tools zur Versionskontrolle wie Git und Mercurial benötigt. Installieren Sie sie daher als Nächstes.

sudo apt-get -y install mercurial git

Wenn Sie vorhaben, ein Repository über SSH zu klonen, ist ein funktionsfähiger SSH-Server erforderlich. Glücklicherweise wird Ubuntu 14.04 mit einem ausgelieferten Server ausgeliefert.

Schritt 2 - Installieren Sie Go

Da Gogs in Go geschrieben ist, müssen wir es vor dem Kompilieren von Gogs installieren.

Erstens gibt es einige Umgebungsvariablen, die wir für Go festlegen müssen. Öffnen Sie dazu die Datei + ~ / .bashrc + zur Bearbeitung.

nano ~/.bashrc

Fügen Sie die folgenden Zeilen am Ende der Datei hinzu, schließen Sie sie und speichern Sie sie.

export GOPATH=/home/git/go
export GOROOT=/usr/local/src/go
export PATH=${PATH}:$GOROOT/bin

Übernehmen Sie als Nächstes Ihre Änderungen.

source ~/.bashrc

Verwenden Sie dann "+ wget ", um die neueste kompatible Version von Go von der http://golang.org/dl/[website] herunterzuladen. Zum Zeitpunkt des Schreibens ist die neueste Datei ` go1.4.2.linux-amd64.tar.gz +`.

wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz

Verwenden Sie "+ tar +", um die Archivierung aufzuheben.

tar zxf go1.4.2.linux-amd64.tar.gz

Wechseln Sie in das Verzeichnis + $ GOROOT, das wir in` + ~ / .bashrc` definiert haben.

sudo mv go $GOROOT

Wenn Sie nun in Ihrem Terminal "+ go +" eingeben:

go

Sie sollten so etwas sehen:

Go is a tool for managing Go source code.

Usage:

   go command [arguments]

...

Use "go help [topic]" for more information about that topic.

Schritt 3 - Installieren und Starten von Gogs als Dienst

Go verfügt über den eingebauten Befehl "+ get +", mit dem der Quellcode eines Go-Projekts mit all seinen Abhängigkeiten einfach heruntergeladen werden kann. Mit diesem Befehl laden wir Gogs herunter.

go get -d github.com/gogits/gogs

Der Quellcode von Gogs befindet sich nun in "+ $ GOPATH / src / github.com / gogits / gogs +". Bewegen Sie sich also dorthin.

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

Als nächstes erstellen und generieren Sie die Binärdatei. Es kann einen Moment dauern, bis dieser Befehl ausgeführt wird.

go build

Wir werden Supervisor verwenden, um den Gogs-Dienst zu verwalten.

Lassen Sie es uns zuerst installieren.

sudo apt-get -y install supervisor

Erstellen Sie einen Gogs-Daemon, indem Sie einen Abschnitt für die Supervisor-Konfiguration erstellen. Erstellen Sie zunächst ein Verzeichnis, in dem die Protokolldateien gespeichert werden sollen.

sudo mkdir -p /var/log/gogs

Als Nächstes öffnen wir die Supervisor-Konfigurationsdatei zur Bearbeitung.

sudo nano /etc/supervisor/supervisord.conf

Hängen Sie den folgenden Inhalt an die Datei an, um den Abschnitt "Gogs" zu erstellen.

[program:gogs]
directory=/home/git/go/src/github.com/gogits/gogs/
command=/home/git/go/src/github.com/gogits/gogs/gogs web
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/var/log/gogs/stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/gogs/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
environment = HOME="/home/git", USER="git"
user = git

Dieser Abschnitt definiert den Befehl, den wir ausführen möchten, um Gogs zu starten, startet ihn automatisch mit Supervisor und gibt den Speicherort der Protokolldateien und der entsprechenden Umgebungsvariablen an. Weitere Informationen zur Supervisor-Konfiguration finden Sie in diesem tutorial.

Starten Sie jetzt Supervisor neu.

sudo service supervisor restart

Mit dem folgenden Befehl können wir überprüfen, ob Gogs ausgeführt wird.

ps -ef | grep gogs

Sie sollten so etwas als Ausgabe sehen.

root      1344  1343  0 08:55 ?        00:00:00 /home/git/go/src/github.com/gogits/gogs/gogs web

Sie können überprüfen, ob der Server ausgeführt wird, indem Sie sich auch die Datei "+ stdout.log +" ansehen.

tail /var/log/gogs/stdout.log

Sie sollten eine Zeile wie diese sehen:

2015/03/09 14:24:42 [I] Gogs: Go Git Service 0.5.16.0301 Beta

Sie sollten auch in der Lage sein, die Webseite mit der URL "+ http: //: 3000 / +" zu besuchen. Dies leitet Sie zur Installationsseite weiter, füllt diese jedoch noch nicht aus.

Schritt 4 - Richten Sie Nginx als Reverse Proxy ein

Fahren wir mit der Konfiguration von * Nginx * als Reverse-Proxy fort, damit Sie einen Domain-Namen einfach an Gogs binden können.

Installieren Sie zunächst Nginx.

sudo apt-get -y install nginx

Als nächstes erstellen Sie eine Nginx-Konfigurationsdatei für Gogs.

sudo nano /etc/nginx/sites-available/gogs

Fügen Sie den folgenden Inhalt hinzu und ersetzen Sie "++" durch die IP-Adresse Ihres Droplets. Wenn Sie einen Domainnamen für Ihr Droplet verwenden, können Sie stattdessen hier Ihren Domainnamen verwenden.

server {
   listen 80;
   server_name ;

   proxy_set_header X-Real-IP  $remote_addr; # pass on real client IP

   location / {
       proxy_pass http://localhost:3000;
   }
}

Und symlinke es, damit Nginx es benutzen kann.

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

Weitere Informationen zu Konfigurationsdateien für virtuelle Nginx-Hosts finden Sie unter https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04 -lts [Tutorial].

Starten Sie Nginx abschließend neu, um die Konfiguration des virtuellen Hosts zu aktivieren.

sudo service nginx restart

Sie sollten nun in der Lage sein, die Webseite mit der URL "+ http: /// +" zu besuchen, ohne den Port anzugeben.

Schritt 5 - Gogs initialisieren

Es gibt noch einen einfachen Schritt, um Gogs für seinen ersten Lauf zu initialisieren.

Besuchen Sie + http: /// install + und geben Sie die folgenden Optionen ein. Viele von ihnen werden bereits für Sie ausgefüllt, aber stellen Sie sicher, dass Sie die roten Variablen durch die Werte für Ihren Server ersetzen.

Im ersten Abschnitt, * Gogs erfordert MySQL, PostgreSQL oder SQLite3 *, füllen Sie Folgendes aus:

  • Datenbanktyp: + MySQL

  • Host: +127.0.0.1: 3306

  • Benutzer: + root

  • Passwort: ++

  • Datenbankname: + gogs +

Füllen Sie im zweiten Abschnitt * Allgemeine Einstellungen für Gogs * Folgendes aus:

  • Repository-Stammpfad: + / home / git / gogs-repositories +

  • Run User: + git +

  • Domain: ++

  • HTTP-Port: + 3000 +

  • Anwendungs-URL: + http: /// +

Überspringen Sie die optionalen E-Mail- und Benachrichtigungseinstellungen und wählen Sie dann unter * Einstellungen für Administratorkonto * einen Administrator-Benutzernamen und ein Kennwort sowie Ihre E-Mail-Adresse aus. Im nächsten Schritt bezeichnen wir den Admin-Benutzernamen als "++".

Klicken Sie abschließend auf "Gogs installieren" und melden Sie sich an.

Schritt 6 - Test Gogs

Sie sind fertig! Machen wir einen einfachen Pull / Push-Test, um sicherzustellen, dass Gogs richtig funktioniert.

Gehen Sie zunächst zu + http: /// repo / create + und erstellen Sie ein Repository mit dem Namen * my-test-repo *. Klicken Sie dann auf die Option * Initialize this repository with a README.md *.

Jetzt sollten Sie es klonen können. Wechseln Sie zunächst in Ihr Home-Verzeichnis.

cd

Als nächstes klonen Sie das Repository.

git clone http:////my-test-repo.git

Wechseln Sie in das Repository-Verzeichnis.

cd my-test-repo

Aktualisieren Sie die Datei "+ README.md".

echo 'I love Gogs!' >> README.md

Übernehmen Sie Ihre Änderungen und drücken Sie sie. Dieser Befehl fragt Sie nach Ihrem Gogs-Benutzernamen und -Passwort.

git add --all && git commit -m "init commit" && git push origin master

Fazit

Wenn Sie jetzt zu "+ http: //// my-test-repo +" zurückkehren, sehen Sie die Zeile "Ich liebe Gogs!", Die an die README angehängt ist. So einfach ist das!