Hamburg/FreifunkFastdForm
Installation
User & Group
Gruppe fastdkeys angelegt:
$ sudo groupadd fastdkeys
Nutzer fastdform angelegt:
$ sudo useradd -G fastdkeys -m -U fastdform
node.js
Nutzer gewechselt:
$ sudo su - fastdform
Es gibt noch kein node.js Package für Debian (außer in Sid), daher habe ich das ähnlich der Anleitung gebaut (bei configure habe ich noch den Prefix auf /home/fastdform/opt/ gesetzt):
$ sudo apt-get install python g++ make $ mkdir ~/src && cd $_ $ wget -N http://nodejs.org/dist/node-latest.tar.gz $ tar xzvf node-latest.tar.gz && cd node-v* $ ./configure --prefix=/home/fastdform/opt/ $ make $ make install
Original Anleitung gibts hier: https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
Formular (ffff)
Immernoch als User fastdform:
Klonen:
$ cd $HOME $ git clone git://github.com/baldo/ffff.git
Konfiguration:
$ cd ffff $ vim server.js
Darin die Konfiguration am Anfang des Files anpassen. Der Pfad für die Peers ist:
/home/fastdform/fastdkeys
Um sicherzustellen, dass bei einem Pull via GIT die Konfiguration nicht überschrieben wird, sondern stattdessen zum Mergen aufgefordert wird, habe ich die Änderungen lokal committed (sollten aber bitte nicht gepusht werden).
Dazu einmalig initial User-Daten für GIT konfigurieren:
$ git config user.email "kontakt@hamburg.freifunk.net" $ git config user.name "fastdform (lokal auf dem Server, bitte nicht pushen)"
Danach dann comitten:
$ git commit -m "Local configuration. Don't push." server.js
Installation der nötigen node.js-Module:
$ /home/fastdform/opt/bin/npm install
Berechtigungen
Als root:
$ cd /etc/fastd/ffhh-mesh-vpn
Gruppe für peers Verzeichnis + Key-Files setzen:
$ chown -R root:fastdkeys peers
Lese und Schreibrechte für Gruppe setzen:
$ chmod -R g+rw peers $ chmod g+x peers
Init-Skript / Daemon
Ich habe das folgende Init-Skript genommen und im oberen Teil die Konfiguration angepasst:
https://gist.github.com/raw/715255/6e2bf21365ff888d388d6fdacb9d86cadbe85e2e/node_debian_init.sh
Die Konfiguration des Skriptes sieht wie folgt aus:
# hab ich so gelassen PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
# das ist das Main-Skript DAEMON_ARGS="/home/fastdform/ffff/server.js"
# Beschreibung DESC="Form for registering nodes and their fastd keys."
# Nutzer + Gruppe, als die der Prozess laufen soll NODEUSER=fastdform:fastdform
# dort wird das PID-File abgelegt LOCAL_VAR_RUN=/usr/local/var/run
# Name des node.js Binaries NAME=node
# Pfad zu node.js DAEMON=/home/fastdform/opt/bin/$NAME
Anschließend noch die Shebang im File ergänzt:
#!/bin/bash
Das Skript liegt jetzt unter:
/etc/init.d/fastdform
Dann das ganze noch ausführbar machen:
$ chmod +x /etc/init.d/fastdform
Damit kann der Formular-Server ganz normal über das Init-Skript gestartet und gestoppt werden.
Zum automatischen Starten eingetragen:
$ update-rc.d fastdform defaults default
Output war:
update-rc.d: using dependency based boot sequencing insserv: warning: script 'fastdform' missing LSB tags and overrides
OFFEN: Wie Warning beseitigen?
fastd neue Keys laden lassen
Dazu einen Cron-Job anlegen, der alle 5 Minuten das Update triggert:
$ sudo crontab -e
Vim öffnet sich. Darin am Ende folgende Zeile hinzufügen:
*/5 * * * * kill -HUP `cat /var/run/fastd-ffhh-mesh-vpn.pid`
ffffng
Für Freifunk Nord weiterentwickelt: https://github.com/ffnord/nord-ffffng/tree/readme