vermischte Anleitungen

Hier finden sich sämtliche Informationen, Anregungen und Umsetzungsbeschreibungen von verschiedenen Dingen, die noch in keine andere Kategorie passen. Auch hier gilt: es kommt hin, was mich zu längeren Nachforschungen trieb, die ich fortan anderen ersparen möchte :)


Git-Repositories auf Apache ohne Virtualhosts

Git ist ein verteiltes Versionsverwaltungssystem, welches einige Vorteile gegenüber beispielsweise SVN vorweist, die mancher braucht und andere nicht - darum geht's hier aber nicht :-)
Das Problem, welches hier behandelt werden soll ist dass, ein Repository für andere Nutzer über http zugänglich zu machen, ohne dabei virtuelle Hosts von Apache nutzen zu müssen, für welche man üblicherweise eine Subdomain braucht. Denn wer es noch nicht mitbekommen hat: bei DynDNS sind Subdomains ohne weiteres nicht mehr einzurichten (auch die Hostnamenauswahl wurde für die Free-Nutzer stark eingeschränkt).
Diese Anleitung bezieht sich auf Debian Squeeze, ist aber sicher auch leicht auf andere Systeme anwendbar.

Zunächst braucht es einen Rechner mit Debian und Apache drauf:

apt-get install apache2

Anschließend müssen die WebDAV-Module geladen werden:

a2enmod dav_fs
a2enmod dav

und der apache neu gestartet werden:

/etc/init.d/apache2 restart

Nun muss ein Ordner für die git-repos angelegt werden:

mkdir /data1/git

In diesem Ordner wird nun ein git-repository angelegt (dieses wird "bare", was soviel heißt, wie "als server-repo und nicht als ein normal nutzbares git-repository", angelegt):

cd /data1/git
git init --bare git-test
cd git-test/
git update-server-info

Die eben angelegten Ordner müssen für den Apache-Prozess les- und schreibbar sein:

cd /data1/
chown -R www-data:www-data git/

... Soweit so gut - jetzt kommt der spannende Teil, wo git mit Apache zusammen gebracht wird...
Um die Repos von allen clonebar, aber nur von angemeldeten Benutzern push-bar (also mit neuen Versionen beschreibbar) zu machen, wird HTTP Basic Auth genutzt, wofür eine Nutzerdatei angelegt werden muss, die wir sinnigerweise auch gleich mit einem Nutzer versehen:

mkdir -p /usr/verwaltung/git
cd /usr/verwaltung/git/
htpasswd -c .htusers <username>

Unter /etc/apache2/sites-available/ wird nun eine Konfigurationsdatei (ich nenne sie einfach nur "git") für die Git-Repositories angelegt (natürlich ist es an dieser Stelle auch möglich, für jedes Git-Repository eine eigene Nutzergruppe zu definieren - dafür einfach für die Unterverzeichnisse von /git - z.B. für /git/test - ein weiteres Location-Tag hinzufügen, in dem nur die Authentifizierungssachen stehen) und mit folgendem Inhalt gefüllt:

Alias /git /data1/git
<Location /git>
    DAV On
    AuthType Basic
    AuthName "My Gitrepos"
    AuthUserFile /usr/verwaltung/git/.htusers
    <Limitexcept GET HEAD PROPFIND OPTIONS REPORT>
        Require valid-user
    </Limitexcept>
</Location>

Hier wird zunächst ein Alias auf /git angelegt, welcher umleitet in den Ordner, wo die Repositories liegen. Anschließend wird für diesen Ordner WebDAV aktiviert und der AuthType auf Basic gesetzt. Die AuthUserFile liegt, wie oben angegeben unter /usr/verwaltung/git/.htusers und nur diese Nutzer dürfen die HTTP-Methode PUT ausführen, welche für ein git push notwendig ist.
Nun ist diese Konfiguration noch zu aktivieren und Apache neu zu laden:

a2ensite git
/etc/init.d/apache reload

und schon sollten sämtliche Repositories von jedem beliebigen Rechner mit Internetverbindung clonebar sein:

git clone http://<username>@servername.net/git/git-test/ .

Beim pushen von Änderungen wird man bei dieser Methode immer nach dem Passwort gefragt, was meines Erachtens sicherer ist, als es im Klartext in einer lokalen Datei zu speichern (würde über eine Datei .netrc im home-Ordner eines unix-artigen Systems aber funktionieren).
Dieses Repository ist für jeden Nutzer clonebar (kann auch über entsprechende Änderungen in der Apache-Konfiguration von oben auch unterbunden werden), aber nur für Nutzer aus der .htusers pushbar.

News - Sidebar
Ubuntu Touch Backup und Restore
Ubuntu Touch ist nun seit mehr als zwei Jahren mein Betriebssystem der Wahl auf meinem Nexus 4. Leider habe ich mir irgendwie den Update-Mechanismus zerschossen und so kurzerhand beschlossen, das System neu aufzusetzen. Den Prozess habe ich in der ubuntu touch section dokumentiert.
Ableton MIDI CC Automation
In der Audio-Sektion wird nun kurz erläutert, mit welchem Hilfsmittel man im Arrangement View von Ableton Live MIDI CC Parameter eines externen Instruments automatisieren kann.
x0xb0x und Reason 7
In der Audio-Sektion habe ich kurz niedergeschrieben, wie der Sound einer x0xb0x in Reason 7 per MIDI-Clock synchron geroutet werden kann.
LaTeX-Workshop
In der LaTeX-Sektion werden inzwischen Folien und weiteres zu einem LaTeX-Workshop verlinkt.
ClusterGL
Unter Projekte->ClusterGL habe ich ein paar Schritte zur Nutzung von ClusterGL online gestellt.
NFC MobiDoc
Unter Projekte->NFC MobiDoc habe ich eine in einer Gruppe von 5 Stundenten inklusive mir umgesetzte NFC-basierte Krankenhausanwendung dokumentiert.
VotingTool
Unter Projekte->VotingTool habe ich ein Grailsbasiertes VotingTool online gestellt.
neues Design
Heute habe ich ein Geschenk von Max bekommen - ein neues schönes Design. Vielen Dank an dieser Stelle!
ROBERTA
Heute habe ich neben der Übersetzung ins Englische auch eine Featurelist für den Server aus dem ROBERTA-Projekt erstellt.
Git + Apache
Wer sein Git-Repository über HTTP mit Apache und aber ohne VirtualHosts (also ohne Subdomain) verfügbar machen will, findet unter Anleitungen -> Vermischtes nun eine entsprechende Anleitung.
ARM-Toolchain
Wie man einen gcc Toolchain für ARM aufsetzt, findet sich ab sofort unter Anleitungen -> ARM. Diesen nutze ich beispielsweise für die Programmierung von OpenBeacon USB 2-RFID-Tags.
SD-Karte kaputt
Nach dem Netzteil nun auch die SD-Karte: Unter Anleitungen -> Sheevaplug mein Rettungsweg.
Netzteil kaputt
Wem das gleiche Glück mit dem Sheevaplug beschieden, der findet unter Sheevaplug meinen Lösungsweg.
ATMEGA verfust
Wer einen seiner AVR Mikrocontroller verfust hat, findet unter Anleitungen -> AVR nun einen rettenden Beitrag.
Abschlussarbeit
Unter Anleitungen -> LaTeX habe ich eine Vorlage für eine Abschlussarbeit verlinkt.
Etherpad
unter Anleitungen -> Vermischtes findet sich ein Tutorial zur Installation von Etherpad auf Debian Lenny

Valid XHTML 1.0 Strict CSS ist valide!