Möchte man Git-Repositories auf einem Ubuntu-Server hosten, so ist das schnell erledigt. Wenn etwas mehr Komfort aller GitHub gewünscht ist, so sollte man sich Gogs anschauen. Gogs steht dabei für Go Git Service. Wie der Name andeutet handelt es sich um einen komplett in Go geschriebenden Git-Service. Im ersten Schritt muss Git auf dem Server installiert werden:
apt-get install git
Nachdem Git installiert ist, muss der für Gogs verwendete Nutzer angelegt und in diesen gewechselt werden:
useradd -m gogs
su gogs
cd
Danach kann das Gogs Binary heruntergeladen:
wget https://github.com/gogits/gogs/releases/download/v0.6.15/linux_amd64.zip
linux_amd64.zip
unzip linux_amd64.zip
und anschließend entpackt werden. Nachdem man mittels cd in den Ordner gogs gewechselt ist, kann gogs gestartet werden:
./gogs web
Damit wird ein Webserver auf Port 3000 gestartet. Mit dem Aufruf der passenden URL im Browser (z.B. http://example.org:3000) öffnet sich die Installationsroutine von Gogs.
Die Installationsroutine von Gogs
In der Routine wird die gewünschte Datenbank eingestellt und einige weitere Punkte konfiguriert. Die Installationsroutine erstellt eine app.ini im Verzeichnis custom/conf/. Dort können die Optionen später geändert werden. Damit Gogs automatisch startet – wird der Nutzer verlassen und ein Initscript angelegt, an die Konfiguration angepasst und zu den automatisch startenden Prozessen hinzugefügt:
cp /home/gogs/scripts/init/debian/gogs /etc/init.d/gogs
nano /etc/init.d/gogs
chmod +x /etc/init.d/gogs
update-rc.d gogs defaults
Damit sollte sich der Service über:
service gogs start
starten lassen. Bei mir führt das allerdings zu dem Problem das der Service angeblich gestartet wird, aber trotzdem nicht läuft. Wird der Service manuell per:
sh -x /etc/init.d/gogs start
gestartet funktioniert er ohne Probleme – hier ist noch der entsprechende Fehler zu finden.