Gogs unter Linux betreiben

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

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.

[–] in Manpages

Manpages sind eine der praktischen Dinge auf einem Linux und Mac OS X System. Mit Hilfe des Kommandos man ist es möglich für ein Shellkommando sich die entsprechende Handbuchseite anzuzeigen. In einer solchen Manpage werden unter anderem die Parameter für ein Kommando erklärt. Dies kann dann z.B. so aussehen:

git submodule [--quiet] status [--cached] [--recursive] [--] [<path>…]

Eine Kleinigkeit irritierte mich bis vor kurzem immer an der Syntax zur Beschreibung der Parameter. Es taucht immer der Parameter:

[--]

auf. Wenn man sich in einem entsprechenden Dokument der IEEE zu dieser Syntax umschaut, so wird diese Unklarheit beseitigt. Dort wird unter Guideline 10 erklärt:

The argument — should be accepted as a delimiter indicating the end of options. Any following arguments should be treated as operands, even if they begin with the ‚-‚ character. The — argument should not be used as an option or as an operand.

Damit wird klar das die Syntax zur Trennung der Option von den folgenden Operanden dient. Sie findet bei der Nutzung eines Kommandos keine Anwendung, sondern ist nur für den Leser der Beschreibung gedacht.

Das „leave“-Kommando

Durch einen Zufall entdeckte ich heute das Kommando leave unter Mac OS X. Dabei handelt es um ein BSD-Kommando welches unter anderem unter Linux, Mac OS X und natürlich unter BSD zur Verfügung steht. Witzig wird es beim Zweck des Kommandos – es dient dazu dem Terminal-Nutzer rechtzeitig Bescheid zu geben, wann er die Sitzung verlassen (und den Feierabend genießen) soll. Gibt man:

leave 1835

ein so wird eine Erinnerung für 18:35 Uhr erstellt – was durch die Meldung:

Alarm set for Mo 28 Sep 2015 18:35:00 CEST. (pid 700)

angezeigt wird. Eine Minute vor der Zeit fängt leave dann an zu arbeiten:

Just one more minute!

Danach erinnert leave regelmäßig das es nun Zeit ist zu gehen:

Time to leave!

Nach ein paar Erinnerungen kommt abschließend die Meldung:

That was the last time I'll tell you.  Bye.

Damit stellt leave seine Arbeit für die eingestelete Zeit ein und der Nutzer von leave genießt hoffentlich seinen Feierabend.

Wayback Machine Downloader

Das Internet Archive betreibt mit der Wayback Machine ein Archiv des Web. In diesem Archiv kann man sich frühere Version einer Webseite ansehen. Problematisch wird es, wenn man einen Snapshot einer bestimmten Version einer Webseite benötigt. Bei größeren Webseiten ist der manuelle Download zeitaufwendig. Mit dem Wayback Machine Downloader – einem in Ruby geschriebenen Tool – ist es möglich einen solchen Snapshot automatisiert herunterzuladen. Dazu muss das Tool im ersten Schritt über das Terminal installiert werden:

gem install wayback_machine_downloader

Lauffähig ist der Downloader dabei unter Linux, Mac OS X und Windows. Nach der Installation kann ein Snapshot mittels:

wayback_machine_downloader http://example.com -t 20060716231334

heruntergeladen werden. Je nach Größe der Webseite kann der Vorgang dabei einige Stunden dauern. Der Quelltext ist auf GitHub zu finden. Lizenziert ist der Wayback Machine Downloader unter der MIT-Lizenz und damit freie Software.

ownCloud Client in Version 2

Vor einigen Tagen wurde die zweite Version des ownCloud-Clients veröffentlicht. Der Client wird benötigt um die Dateien welche in der ownCloud liegen auf den eigenen Rechner zu sychronisieren. Das Killerfeature der zweiten Version ist dabei die Unterstützung für mehrere Konten (bzw. Server).

Die Einstellungen des neuen ownCloud-Clients

Die Einstellungen des neuen ownCloud-Clients

Früher war dies nur über Umwege möglich, so musste der ownCloud-Client an einen anderen Ort kopiert werden und konnte dann gestartet werden. Mit der neuen Version entfällt dieser umständliche Weg. Bezogen werden kann der Client über die offizielle Seite des Projektes.