Effizienter Gitlab-Server

Zur Verwaltung von Unidaten, geschäftlichen Daten und bestimmten privaten Daten verwende ich das Versionskontrollsystem git mit der komfortablen Weboberfläche gitlab, die Funktionen wie eine übersichtliche Darstellung der einzelnen Commits und einen Issue-Tracker bereitstellt.

Der Server muss nicht ständig in Betrieb sein, sondern nur, wenn ich an bestimmten Projekten arbeite und die Änderungen auf einen zentralen Server übertragen möchte. Somit kommen pro Monat meist  unter 100 Betriebsstunden zusammen – ein ständig betriebener Server lohnt sich also nicht. Trotzdem möchte ich nicht auf den Komfort und die Möglichkeiten der gitlab-Oberfläche sowie die zentralen Sicherung von Daten verzichten.

Bisher habe ich gitlab auf einem Server in der IaaS-Cloud jiffyBox von domainfactory gehostet. IaaS steht für Infrastructure as a Service – also Infrastruktur, die als Dienstleistung flexibel angemietet werden kann. JiffyBox ist ein toller Dienst, mit dem sich virtuelle Server leistungsmäßig skalieren lassen, ohne Daten zu verlieren. Durch die Möglichkeit, den Server einzufrieren, ist eine günstige Datenablage möglich, wenn der Serverbetrieb nicht ständig erforderlich ist. Je nach Nutzung hatte ich dafür monatliche Kosten von 4-6 Euro – also eine sehr günstige Lösung.

Da ich bei mir noch ungenutzte Hardware stehen hatte, habe ich mich trotzdem dazu entschieden, den Server in Zukunft selbst zu betreiben.

Die funktionalen Anforderungen sind:

  • Betrieb einer Gitlab-Instanz für einen Benutzer mit derzeit insgesamt 5 GB an Repositories, Platzbedarf steigend
  • Eine zusätzliche Standleitung ins Internet soll nicht erforderlich sein.
  • Der Server muss aus der Ferne startbar und wartbar sein.
  • Der Betrieb muss auch bei  Abwesenheit am Standort sicher sein.
  • Der Betrieb soll möglichst energieeffizient erfolgen.

Internetanbindung

Der Server wird an einem normalen Telekom-DSL-Anschluss für Geschäftskunden (DeutschlandLAN Connect S) betrieben. Als Router kommt eine Fritz!Box 7360 von AVM zum Einsatz. Die Datenraten sind:

  • Upload: ca. 2,5 MBit/s
  • Download: ca. 17 MBit/s

Für die von mir benötigen Anwendungsfälle sollte dies ausreichend sein, zumal ich derzeit der einzige Nutzer des Servers sein werde.

Starten aus der Ferne

Die Fritz!Box unterstützt über die Weboberfläche das Starten eines per LAN angebundenen Rechners per Wake-on-LAN. Da die Weboberfläche passwortgeschützt über das Internet erreichbar ist, lässt sich der Server weltweit starten.

Fernüberwachung

Um eine bestmögliche Kontrolle über den Server zu haben, hängt er an einer FRITZ!DECT 200-Steckdose. Dabei handelt es sich um eine schaltbare Steckdose, die sich an die Fritz!Box anbinden lässt. Als Funkstandard wird dabei verschlüsseltes DECT verwendet.

Über die Weboberfläche lässt sich die Steckdose einerseits ein- und ausschalten, andererseits lässt sich damit aber auch der Stromverbrauch überwachen. Es kann sowohl die aktuelle Leistung angezeigt und grafisch dargestellt werden, als auch der Energieverbrauch über verschiedene Zeiträume (Tag, Woche, Monat, Jahr) aufgezeichnet und dargestellt werden.

Mittels der Schaltfunktion lässt sich der Server sicher vom Strom trennen, wenn er nicht benötigt wird. Zudem besteht die Möglichkeit, den Server bei Softwareproblemen (z.B. „aufgehängt“) aus der Ferne physikalisch vom Stromnetz zu trennen, wenn beispielsweise ein Zugriff über ssh nicht mehr möglich ist.

Durch die Überwachung der aktuellen Leistung lassen sich zudem Schlüsse über den aktuellen Betriebszustand des Servers ziehen, welche die Handhabung aus der Ferne deutlich erleichtern:

  • Wurde der Server nach dem Versenden des Wake-on-LAN-Paketes gestartet?
  • Wurde der Server nach dem Absenden des shutdown-Befehls erfolgreich heruntergefahren?

Erreichbarkeit unter eigener Domain trotz dynamischer IP-Adresse

Der verwendete DSL-Anschluss beinhaltet leider keine feste IP-Adresse. Diese wechselt täglich, da alle 24 Stunden eine Zwangstrennung erfolgt. Die Fritz!Box bringt allerdings einen Dienst mit, der dem Gerät einen festen Domainnamen der Form xxxxxxxxxxxx.myfritz.net zuweist. Die aktuelle IP-Adresse wird automatisch mit diesem Domainnamen verknüpft.

Der Server soll aber auch unter einer eigenen Subdomain erreichbar sein. Meine Domains habe ich über domainfactory gebucht. Dieser Anbieter unterstützt das manuelle Editieren der Nameserver-Einstellungen.

Durch das Hinzufügen eines Eintrags vom Typ CNAME lässt sich ein Alias für die xxxxx.myfritz.net-Adresse anlegen. Die eigene Domain löst so immer korrekt auf die aktuelle IP-Adresse der Fritz!Box auf.

Portweiterleitungen

Damit Anfragen an diese Domain auch beim gitlab-Server und nicht bei der Fritz!Box landen, müssen noch die benötigten Ports an den Server weitergeleitet werden. Dies lässt sich sehr einfach über die Weboberfläche der Fritz!Box einstellen.

Folgende Ports müssen weitergeleitet werden:

  • Port 22 (SSH – für Fernwartung)
  • Port 80 (HTTP – für unverschlüsselten Zugriff)
  • Port 443 (HTTPS – für SSL-verschlüsselten Zugriff)

Der Port für die Fritz!Box-Weboberfläche muss noch auf einen anderen Port umgestellt, da sonst der SSL-Port (443) belegt ist.

Wie stabil der Betrieb auf die Dauer läuft, muss sich zeigen. In der Übergangszeit bleibt die JiffyBox-Instanz erhalten – falls unerwartete Probleme auftreten sollten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.