Commit 879e7ce1 authored by Christoph Kepler's avatar Christoph Kepler

+ i18n for README

parent a94a2dbe
Einrichtung der git-hooks
=========================
Diese README enthält eine kurze Anleitung wie die git hooks zum deployen einzurichten sind.
Vorbereitungen
--------------
Als Erstes muss ein neuer Endpunkt auf dem Server, welcher bespielt werden soll, angelegt werden. Das wird durch Anlegen eines "nackten" (bare) Repository auf dem Server erreicht.
Am Besten legt man den Ordner ('mkdir' ENDPUNKT) irgendwo an, wo der Nutzer des Servers Zugriff hat. Zum Beispiel kann man dazu den eigenen Ordner des Nutzers benutzen. (Sagen wir es ist /home/knechtrootrecht/project.git)
Danach wechselst ('cd') man in den Ordner und initialisiert das "nackte" Repository ('git init --bare'). Es sollte ein Ausgabe wie Leeres Git Repsository inititalisiert erscheinen.
Jetzt muss man noch sicherstellen, dass der korrekte Git Zweig genutzt wird. (stable für live/master für test ...) Dies kann man mit 'git symbolic-ref HEAD refs/heads/stable' tun. Mit 'git branch' kann man herausfinden, welcher Zweig ausgewählt ist.
Nutze die Hooks
---------------
Es müssen beide Dateien in den hooks Ordner im Repository. Danach müssen sie noch ausführbar (chmod +x HOOK) gemacht werden und die nötigen Änderungen in den Dateien vorgenommen werden.
### pre-receive
Hier muss nur der Zweig und Remotename in den Fehlermeldungen angepasst werden. Das ist optional aber nützlich für Entwickler die den Server bespielen. Der Rest passt soweit.
### post-receive
GIT_WORK_TREE muss der korrekte Pfad zugewiesen werden. Das ist der Ordner in den der Webserver hineinwechseln und die Dateien ausliefern kann.
### Hinweis/Ratschlag
Stelle sicher das kein .git Ordner im Webhauptverzeichnis liegt und die richtigen Berechtigungen gesetzt sind.
Der Nutzer mit dem gepusht wird, sollte als Primärgruppe www-data (o.Ä.) inne haben oder es wird setgid für den kompletten /var/www Ordner gesetzt.
Lokale Einstellungen
--------------------
Die Entwickler benötigen nun entweder das Passwort für den Server Benutzer oder ihren SSH Public Key in der Datei authorized_keys des Nutzers. (kann mit 'ssh-copy-id' o.Ä. geschehen)
Im Repository der lokalen Entwicklungsmaschinen müssen jetzt neue Remotes passend zum Server angelegt werden.
'git remote add live user@server:pfad/zum/Ordner'
Es können sowohl relative Pfade vom privaten Ordner des Nutzers oder Absolute beginnend mit / benutzt werden.
Die Namen der Remotes sollten mit den Namen im pre-receive Hook übereinstimmen. (live, test, testserver ...)
Beispiel
--------
Angenommen der Server Nutzer heißt knechtrootrecht und das Webhauptverzeichnis ist eingerichtet.
> cd ~
> mkdir stable-project.git
> cd stable-project.git
> git init --bare
> cd hooks
> Kopiere die Hooks hierher
> vi pre-receive und nehme die nötigen Änderungen vor
> vi post-receive und nehme die nötigen Änderungen vor
> chmod +x \*-receive
> cd ..
> git symbolic-ref HEAD refs/heads/stable
Die Hooks sollten nun für die Bespielung bereit sein.
Es befindet sich jetzt ein leeres Repository unter /home/knechtrootrecht/stable-project.git
Nun müssen die Remotes auf den lokalen Entwicklungsmaschinen hinzugefügt werden.
> cd PROJEKT/GIT/ORDNER
> git remote add live knechtrootrecht@server:/home/knechtrootrecht/stable-project.git
> git checkout stable
> git push live
Nun sollte einen Nachricht zu sehen sein, die bestätigt das korrekt bespielt wurde.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment