Schlagwort-Archive: Tutorials

Synology Diskstation als Git-Server

Meine Synology Diskstation nutze ich hauptsächlich als Fileserver und für Backups. Es ist also naheliegend für meine Entwicklungen auch ein Git-Repository auf der NAS aufzusetzen. Die Installation und Konfiguration ist an sich ganz einfach. Die Suche nach der Dokumentation ist allerdings mühselig, da die notwendigen Informationen auf mehrere Quelle verteilt sind.  Genau das ändert sich mit folgendem Post.

Ziel ist es auf der Diskstation ein Git-Repository zu installieren, auf dem sich die Benutzer via ssh verbinden können. Die Authentifizierung geschieht über Key-Files.

Git Installation über die Synology Diskstation Admin-Oberfläche

Git lässt sich einfach über die Administrationsoberfläche der Diskstation installieren. Dazu muss man nur den Dienst Git im Paketmanager auswählen und auf installieren klicken. Nach dem Download steht Git auf der Konsole zur Verfügung.

Git Dienst im Synology Diskstation Pakeketzentrum

Git User Anlegen

Als nächstes lege ich einen neuen Benutzer „git“ an. Hierzu verwende ich auch die Administrationsoberfäche: Systemsteuerung > Benutzer > erstellen.

Der Benutzer benötigt Zugriff auf die Konsole via ssh. Leider kann ich das nicht über die Administrationsoberfläche zuweisen. Dazu logge ich mich als root via ssh auf die Synology Diskstation ein. Über die Konsole bearbeite ich die Datei /etc/passwd (z.B. mit dem vi):

Diskstation> vi /etc/passwd

und ändere die Zeile:

git:x:1028:100::/var/services/homes/git:/sbin/nologin

in:

git:x:1028:100::/var/services/homes/git:/bin/ash

Nach dem Speichern kann sich der git Benutzer via ssh auf der Diskstation anmelden.

Git Repository anlegen

Genau das tue ich  jetzt um das Git Repository anzulegen.

strolzm@localhost:~$ ssh git@[IpDIskstation]

Ich befinde mich im Home-Verzeichnis des Git Users auf der Diskstation. Hier erstelle ich ein neues Verzeichnis, in dem wir ein leeres Git-Repository anlegen:

Diskstation> mkdir repos 
Diskstation> cd repos
Diskstation> mkdir firstRepo
Diskstation> cd firstRepo
Diskstation> git init --bare

Authorisierung über SSH-Keys

Jetzt bin ich schon ziemlich weit. Ich könnte schon einen lokalen Klon des Repositorys erzeugen, müsste mich aber mit dem Passwort des git-Benutzers authentifizieren. Das möchte ich natürlich nicht bei jedem Zugriff machen und lege deshalb ssh-Keys an. Unter Linux geschieht das über:

strolzm@localhost:~$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/strolzm/.ssh/id_rsa):

Ich speichere die Schlüssel wie vorgeschlagen im [home]/.ssh-Verzeichnis. Den öffentlichen Schlüssel erzeuge ich im Anschluss:

strolzm@localhost:~$ ssh-keygen -p
Enter file in which the key is (/home/strolzm/.ssh/id_rsa):

Den öffentlichen Schlüssel kopiere  ich auf die Diskstation. Falls es noch nicht existiert, lege ich dort das Verzeichnis [home]/.ssh an

Diskstation> mkdir .ssh

Mit folgendem Befehl kopiere ich den öffentlichen Schlüssel in die Datei .ssh/authorized_keys auf der Diskstation. Wenn diese Datei schon existiert und Schlüssel enthält, muss der neue Schlüssel natürlich angehängt werden. In dem Fall verwendet man am einfachsten einen Texteditor

strolzm@localhost:~$ scp .ssh/id_rsa.pub git@[IpDiskstation]:/volume1/homes/git/.ssh/authorized_keys

Git Repository Klonen

Ich habe es geschafft und kann das angelegte Git Repository auf meiner lokalen Maschine klonen:

strolzm@localhost:~$ git clone ssh://git@[IpDiskstation]:/volume1/homes/git/repos/firstRepo

Quellen

Die Suche nach der Doku für die einzelnen Schritte hat eigentlich am längsten gedauert. Ich habe mich an folgenden Seiten durchgehangelt. Falls ich etwas vergessen habe, kann es sicher auf einer der Seiten gefunden werden. Noch schöner wäre ein Hinweis an mich, sodass ich die Beschreibung ergänzen kann.

Ein Diplom an der Codecademy

Nachdem ich mich über Oliver Zeigermanns Buch „JavaScript für Java-Entwickler“ technologisch dem Browser angenährt hatte, wollte ich das erlernte natürlich vertiefen. Neben den theoretischen Grundlagen fehlt mir vor allem die Praxis. Bei der Suche nach einigen Tutorials bin ich auf die Codecademy gestoßen.

Codecademy_logo

Auf der Plattform kann man die Kurse:

  • HTML & CSS
  • jQuery
  • JavaScript
  • PHP
  • Python
  • und Ruby

besuchen. Learning by Doing lautet hier die Devise. Pro Technologie gibt es einen Satz aufeinanderfolgender Übungen. Je nach Vorkenntnissen kann der Einstieg selbst gewählt werden. Ich entscheide mich bei Null anzufangen und starte mit der ersten Übung aus dem Kurs JavaScript. Der Aufbau der Turorials besteht aus einer sehr einfachen Aufgabenstellung, die in einem Online Editor gelöst werden will. Erlerntes wird in mehren Schritten vertieft und muss immer wieder angewendet werden.

codecadamyCourse

Der Einstieg ist simpel: Variable, Kommentare, Schleifen Verzweigungen, Arrays…  Alles in allem müssen keine großen Hürden übersprungen werden. Langweilig wird es aber trotzdem nicht, weil es vom Verständnis bis zur Lösung nur weniger Minuten und einiger Zeilen Code bedarf. Darüber hinaus wird man mit unzähligen Badges belohnt: Für die erste Übung, den ersten abgeschlossenen Kurs, 10 Übungen pro Tag und so weiter. Ich muss gestehen, dass ich durchaus auf das Belohnungsschema anspringe.

Bald betrete ich mit den Übungen so etwas wie Neuland und übe die JavaScript Objektnotation, anonyme Funktionen, Prototypen und die Varianten der Objekterzeugung und Manipulation. Für den Abschluss mein JavaScript Codecademy Zertifikat benötige ich einen Tag. Ich bin zufrieden und schließe auch noch die HTML & CSS und die jQuery Klasse ab. Nachdem ich die Grundlagen erarbeitet und geübt habe, widme ich mich den Web-Project angeboten. Dort werden in einigen etwas komplexeren Aufgaben JavaScript und HTML zusammengeführt.

codeCademyBadges

Meine Badges füllen inzwischen den ganzen Monitor und so langsam habe ich den Eindruck dass ich für tieferes Wissen und kniffligere Aufgaben bereit bin. Wenn ich möchte kann ich meine Eigenen Tutorials auf der Plattform anbieten oder mich in einer der vielen Gruppen mit anderen Entwicklern zu fortgeschrittenen Themen austauschen.

Ich habe den Eindruck, dass ich mich mit meinen Kenntnisse gerne ich der echten virtuellen Welt austoben möchte. Anregungen kann man sich auch hier bei der Codecademy holen. So gibt es weitere Turorials für APIs von Diensten wie z.B. Youtube oder Soundcloud.

Die Codecademy war für mich ein super Einstieg in die Praxis von JavaScript und JQuery. Ich habe den Eindruck mir die Grundlagen beider Technologien praktisch angeeignet zu haben. Vor allem aber hat es Spaß gemacht, so dass ich den Besuch der Kurse zur Nachahmung empfehlen kann.