Commit 042f660c authored by Kim Meiser's avatar Kim Meiser

HACKS44R-Gast-Einschränkung hinzugefügt & spelling gefixt

parent 6ea039c1
<!DOCTYPE html>
<html>
<head>
<title>Getting Started</title>
<title>shared :: Getting Started</title>
<link rel="stylesheet" media="all" href="style.css" />
</head>
<body>
<h1>Eine eigene Webseite auf shared hosten</h1>
<p>shared ist der gemeinsame Host für Web- und weitere Anwendungen im Hackerspace.</p>
<p>
<em>shared</em> ist der gemeinsame Host für Web- und weitere Anwendungen im Hackerspace.
</p>
<h2>Veröffentlichen der aktuellen Version deiner Webseite oder Anwendung</h2>
<p>
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:
</p>
<pre>git push sharedhost master</pre>
<p>
und alles ist erledigt. Die aktuelle Version deines Projektes ist unter <code>projektname.shared.local.hacksaar.de</code> erreichbar.
</p>
<h3>Voraussetzungen</h3>
<p>
Voraussetzung für ein Deployment auf shared ist, dass dein Projekt <em>git</em> zur Verwaltung des Quellcodes verwendet.
Wir empfehlen natürlich <a href="https://git.hacksaar.de">git.hacksaar.de</a> als gemeinsames Repository. Eine Alternative dazu stellt u.a. <a href="https://www.github.com">github</a> oder auch
ein eigener git-Server dar. Als gute Dokumentation für den Einsteiger zur Verwendung von git empfiehlt sich <a href="http://git-scm.com/book/en/v2/">Pro Git</a> von Scott Chacon und Ben Straub.
</p>
<h2>Nutzen</h2>
<p>
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, <em>einen</em> 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 <em>shared</em> zur Verfügung.
</p>
steht der Server shared zur Verfügung.
</p>
<h3>Erreichbarkeit</h3>
<p>Der Host shared ist unter <em>shared.local.hacksaar.de</em> 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.</p>
<p>
Der Host shared ist aus dem WLAN-Netz HACKSAAR-24 unter <em>shared.local.hacksaar.de</em> erreichbar.
Ralf arbeitet noch an der Erreichbarkeit aus dem WLAN-Netz HACKSAAR-50 bzw. an der Erreichbarkeit aus dem Internet. Aus diesem Grund
ist auch eine Erreichbarkeit aus dem WLAN-Netz HACKS44R-Gast nicht gegeben.
</p>
<h3>Scope</h3>
<p>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 <a href="https://wiki.hacksaar.de/Rudi">hier</a>.</p>
<h2>Veröffentlichen der aktuellen Version deiner Webseite</h2>
<p>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:</p>
<pre>git push sharedhost master</pre>
<p>und alles ist erledigt.</p>
<p>
shared ist für einfache Webseiten und andere einfache Anwendungen ausgelegt. Komplexe Projekte, deren Anforderungen das Angebot von shared
übersteigen, können auf einer eigenen virtuellen Maschine gehostet werden. Alternativ dazu kannst du gemeinsam mit den shared-Administratoren das existierende Angebot erweitern.
shared bietet bisher eine Umgebung für folgende Technologien an:
<ul>
<li><em>Einfache HTML-Seiten</em> wie zum Beispiel <a href="http://getting-started.shared.local.hacksaar.de">die Anleitung, die du gerade liest</a> (<a href="https://git.hacksaar.de/hacksaar/shared-getting-started/">Quellcode</a>)</li>
<li><em>HTML-Seiten mit Javascript</em> wie zum Beispiel <a href="http://tellnext.shared.local.hacksaar.de">tell.next</a> (<a href="https://git.hacksaar.de/hacksaar/Schmierblatt/">Quellcode</a>)</li>
<li><em>Ruby on Rails</em>-Anwendungen wie zum Beispiel <a href="http://SpacePoints.shared.local.hacksaar.de">SpacePoints</a> (<a href="https://git.hacksaar.de/hacksaar/SpacePoints/">Quellcode</a>)</li>
</ul>
</p>
<p class="note">
Fehlt etwas in dieser Liste, was du für dein Projekt benötigst? Dann sprich mit den shared-Administratoren <a href="https://wiki.hacksaar.de/Benutzer:Kimcm">Kim</a> oder <a href="https://wiki.hacksaar.de/Benutzer:mafolz">Matthias</a>.
</p>
<h2>Einrichtung eines neuen Projekts auf shared</h2>
<p class="note">
Die in diesem Kapitel beschriebene Konfiguration wird durch einen shared-Administrator durchgeführt.
</p>
<p>
Das Veröffentlichen einer bestimmten Softwareversion nennt man auch deployment. Eine einmalige Konfiguration ist notwendig, damit das deployment deiner Software
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.
</p>
<h3>Voraussetzungen</h3>
<h3 class="admin">Clonen des Repositories auf shared</h3>
<p>
Voraussetzung für ein Deployment auf shared ist, dass dein Projekt <em>git</em> zur Verwaltung des Quellcodes verwendet.
Wir empfehlen natürlich <a href="https://git.hacksaar.de">git.hacksaar.de</a> als gemeinsames Repository. Eine Alternative dazu stellt u.a. <a href="https://www.github.com">github</a> oder auch
ein eigener git-Server dar. Als gute Dokumentation für den Einsteiger zur Verwendung von git empfiehlt sich <a href="http://git-scm.com/book/en/v2/">Pro Git</a> von Scott Chacon und Ben Straub.
Das Code-Repository muss auf shared einmalig eingerichtet werden:
</p>
<h3>Clonen des Repositories auf shared</h3>
<p></p>
<pre>cd /var/repo
git clone --bare https://git.hacksaar.de/hacksaar/spacepoints.git</pre>
git clone --bare https://git.hacksaar.de/hacksaar/projektname.git</pre>
<p>
Durch die Anlage eines Repositories mit der Option <code>--bare</code> werden nur die Informationen zur Verwaltung der Dateien im Repository
unter /var/repo abgelegt, der Sourcecode wird nicht an dieser Stelle verwaltet.
</p>
<h3>Einrichten des Post-Receive-Hook</h3>
<p>Im Verzeichnis hooks wird die Datei post-receive angelegt.</p>
<pre>cd /var/repo/spacepoints.git/hooks
cat > post-receive</pre>
<p>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.</p>
<h3 class="admin">Einrichten des Post-Receive-Hook</h3>
<p>
Um den Sourcecode nach einem push in das eben angelegte Repository unter /var/www/projektname zu veröffentlichen,
wird im Verzeichnis /var/repo/projektname/hooks die ausführbare Datei post-receive erzeugt:
</p>
<pre>cd /var/repo/projektname.git/hooks
touch post-receive
chmod +x post-receive</pre>
<p>
In die so erzeugte Datei post-receive wird der Befehl zum checkout nach /var/www/projektname eingetragen.
</p>
<pre>#!/bin/sh
git --work-tree=/var/www/SpacePoints --git-dir=/var/repo/SpacePoints.git checkout -f</pre>
<p>Damit dieser post-receive-hook ausgeführt werden kann muss noch das Recht zur Ausführung vergeben werden.</p>
<pre>chmod +x post-receive</pre>
<h3>Berechtigung zum Zugriff auf shared einrichten</h3>
git --work-tree=/var/www/Projektname --git-dir=/var/repo/projektname.git checkout -f</pre>
<p>
Damit der post-receive-hook die Dateien auch wirklich unter /var/www/Projektname bereitstellen kann, sind die Rechte im Filesystem
zu beachten. Der Benutzer <em>git</em> erhält normalerweise Schreibrechte in diesem Verzeichnis:
</p>
<pre>mkdir /var/www/Projektname
chown git /var/www/Projektname</pre>
<p>
Ausnahmen von dieser Regel können individuell vereinbart werden. So ist es z.B. denkbar, dass nach dem ersten Deployment
das Schreibrecht auf die lokale Datenbank in diesem Verzeichnis entfernt wird, um ein versehentliches Deployment bzw. das Überschreiben dieser Datei zu verhindern.
</p>
<h3 class="admin">Einrichten des virtuellen Hosts</h3>
<pre>vi /etc/apache2/sites-available/projektname</pre>
<pre>&lt;virtualhost *:80&gt;
ServerAdmin webmaster@localhost
ServerName projektname.shared.local.hacksaar.de
ServerAlias projektname
DocumentRoot /var/www/projektname
&lt;Directory var/www/projektname&gt;
Options -MultiViews
AllowOverride all
&lt;/Directory&gt;
&lt;/virtualhost&gt;
</pre>
<pre>a2ensite projektname
service apache2 reload</pre>
<h3 class="admin">Einmal pro Benutzer: Berechtigung zum Zugriff auf shared einrichten</h3>
<p>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
<p class="tip">
Die Zugriffsberechtigung muss nur einmal pro Benutzer eingerichtet werden. Falls dein public key bereits auf shared hinterlegt ist, kanns dieser Schritt übersprungen werden.
</p>
<p>
Das Deployment läuft auf shared im Kontext des Benutzers <em>git</em>. Damit du Code auf shared als git-user pushen kannst,
muss einmalig der public key zu authorized_keys des git-Benutzers auf shared hinzugefügt werden. Dazu
händigst du deinen public key einem shared-admin aus. Dieser fügt deinen public key der Datei /home/git/.ssh/authorized_keys hinzu:
</p>
<pre>cat id_rsa.pub >> authorized_keys</pre>
<h3>shared-Remote dem eigenen Client hinzufügen</h3>
<p>Hinzufügen des eben eingerichteten Repos zum Client-Repo</p>
<pre>cd /repo/SpacePoints
git remote add sharedhost ssh://git@shared.local.hacksaar.de/var/repo/spacepoints.git</pre>
<p> Aktualisieren des auf shared.hacksaar laufenden Projekts</p>
<h2 class="user">shared-Remote dem lokalen Repository auf dem eigenen Computer hinzufügen</h2>
<p class="note">
Diese Konfiguration führst du selbst auf deinem Computer durch.
</p>
<p>
Dem Projekt in deinem lokalen git-Repository wird unter dem Namen <em>sharedhost</em> ein git-Remote
eingerichtet, um das Deployment von deinem Computer aus zukünftig bequem durchführen zu können. Öffne dazu auf deinem Computer
eine Shell, wechsle in das Projektverzeichnis und füge mit git remote den Server shared zum Projekt hinzu:
</p>
<pre>cd /repo/projektname
git remote add sharedhost ssh://git@shared.local.hacksaar.de/var/repo/projektname.git</pre>
<p>
Dies war der letzte notwendige Schritt. Das Ziel ist erreicht, die Aktualisierung des Projekts auf shared kann nun jederzeit mit dem folgenden Befehl durchgeführt werden:
</p>
<pre>git push sharedhost master</pre>
<p>Fertig!</p>
</body>
</html>
\ No newline at end of file
......@@ -6,12 +6,22 @@ body {
p {
font-size: 16px;
line-height: 28px;
margin: 0 0 22px;
margin: 11px 0;
}
p h1, h2, h3, h4, h5, ul, li {
font-weight: 400;
padding: 0;
display: inherit;
}
ul {
padding-left: 24px;
list-style-type: square;
}
li {
line-height: 28px;
}
h2 {
......@@ -34,4 +44,39 @@ pre {
padding: 13px 17px;
white-space: pre !important;
word-wrap: normal !important;
}
.tip {
padding-left: 56px;
padding-bottom: 12px;
height: 48px;
font-size: 1.1em;
background: url(image/icon/tip.png) 0 0;
background-repeat: no-repeat;
display: table-cell;
color: gray;
vertical-align: middle;
}
.note {
padding-left: 56px;
padding-bottom: 12px;
height: 48px;
font-size: 1.1em;
background: url(image/icon/note.png) 0 0;
background-repeat: no-repeat;
display: table-cell;
color: gray;
vertical-align: middle;
}
.warning {
padding-left: 56px;
padding-bottom: 12px;
height: 48px;
font-size: 1.1em;
background: url(image/icon/warning.png) 0 0;
background-repeat: no-repeat;
display: table-cell;
color: gray;
vertical-align: middle;
}
\ No newline at end of file
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