Hamburg/FreifunkFastdForm

Aus wiki.freifunk.net
Zur Navigation springenZur Suche springen

Freifunk Hamburg



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



Freifunk Hamburg