Eine eigene Webseite auf shared hosten

shared ist der gemeinsame Host für Web- und weitere Anwendungen im Hackerspace.

Nutzen

Es ist nicht notwendig, eine eigene virtuelle Maschine als Host für jedes Softwareprojekt oder jede Webseite einzurichten. In den meisten Fällen ist es ausreichend, einen gemeinsamen Host für verschiedene Webseiten zu verwenden, so dass sich nicht jedes Projekt selbst um die Administration eines Servers kümmern muss. Als gemeinsamer Host für Webseiten und einfache Anwendungen steht daher der Server shared zur Verfügung.

Erreichbarkeit

Der Host shared ist unter shared.local.hacksaar.de erreichbar, allerdings nur aus dem WLAN-Netz HACKSAAR-24. Die Erreichbarkeit aus dem WLAN-Netz HACKSAAR-50 wird bald eingerichtet. Eine Erreichbarkeit aus dem Internet ist zur Zeit nicht möglich.

Scope

Shared ist für einfache Webseiten und andere einfache Anwendungen ausgelegt. Komplexe Projekte, deren Anforderungen das Angebot von shared übersteigen, können natürlich immer noch auf einer eigenen virtuellen Maschine gehostet werden. Eine Anleitung dazu findest du hier.

Veröffentlichen der aktuellen Version deiner Webseite

Idealerweise musst du dich so wenig wie möglich mit dem Hosting auf shared auseinandersetzen. Ziel ist es, dass du die aktuelle Version deiner Webseite oder deines Projekts mit nur einem Befehl veröffentlichen kannst:

git push sharedhost master

und alles ist erledigt.

Einrichtung eines neuen Projekts auf shared

Das Veröffentlichen einer bestimmten Softwareversion nennt man auch deployment. Eine einmalige Konfiguration ist notwendig, damit das deployment deiner Software auf shared in einem Befehl funktionieren kann. Damit klar ist, welche Aufgaben dir abgenommen werden, und damit die Konfiguration für Interessierte nachvollziehbar wird, sind alle Schritte zur Einrichtung hier dokumentiert.

Voraussetzungen

Voraussetzung für ein Deployment auf shared ist, dass dein Projekt git zur Verwaltung des Quellcodes verwendet. Wir empfehlen natürlich git.hacksaar.de als gemeinsames Repository. Eine Alternative dazu stellt u.a. github oder auch ein eigener git-Server dar. Als gute Dokumentation für den Einsteiger zur Verwendung von git empfiehlt sich Pro Git von Scott Chacon und Ben Straub.

Clonen des Repositories auf shared

cd /var/repo
git clone --bare https://git.hacksaar.de/hacksaar/spacepoints.git

Einrichten des Post-Receive-Hook

Im Verzeichnis hooks wird die Datei post-receive angelegt.

cd /var/repo/spacepoints.git/hooks
cat > post-receive

In diese neue Datei wird der Befehl zum checkout nach /var/www/Projektname eingetragen, so dass nach dem checkout in das Repository die Dateien unter /var/www liegen.

#!/bin/sh
git --work-tree=/var/www/SpacePoints --git-dir=/var/repo/SpacePoints.git checkout -f

Damit dieser post-receive-hook ausgeführt werden kann muss noch das Recht zur Ausführung vergeben werden.

chmod +x post-receive

Berechtigung zum Zugriff auf shared einrichten

Einmalig: hinzufügen des public keys zu authorized_keys des git-benutzers auf shared.hacksaar public key einem admin aushändigen kopieren des public key auf den server hinzufügen zu git/.ssh/authorized_key

cat id_rsa.pub >> authorized_keys

shared-Remote dem eigenen Client hinzufügen

Hinzufügen des eben eingerichteten Repos zum Client-Repo

cd /repo/SpacePoints
git remote add sharedhost ssh://git@shared.local.hacksaar.de/var/repo/spacepoints.git

Aktualisieren des auf shared.hacksaar laufenden Projekts

git push sharedhost master

Fertig!