New node form for Freifunk
Find a file
2016-07-23 22:09:13 +02:00
admin Filtering of nodes in admin panel. 2016-07-23 11:30:41 +02:00
app Fix: Footer text breaks on small screens 2016-07-19 11:44:27 +02:00
assets First shot on a favicon. 2014-06-06 13:58:48 +02:00
doc First shot for the README 2016-07-19 14:07:35 +02:00
server Less verbose logging. 2016-07-23 22:09:13 +02:00
shared/validation Filtering of nodes in admin panel. 2016-07-23 11:30:41 +02:00
.bowerrc Initial commit. 2014-05-12 20:08:19 +02:00
.editorconfig Fixed editor config. 2014-05-30 19:28:58 +02:00
.gitattributes Initial commit. 2014-05-12 20:08:19 +02:00
.gitignore First shot for the README 2016-07-19 14:07:35 +02:00
.jshintrc Initial commit. 2014-05-12 20:08:19 +02:00
bower.json Unneccessary tracking of seperate version for frontend removed. 2016-06-11 18:25:28 +02:00
client Open node in form and map. 2016-06-07 14:18:28 +02:00
config.json.example Config option for tile layers. 2016-07-14 16:28:17 +02:00
Gruntfile.js Config option for tile layers. 2016-07-14 16:28:17 +02:00
LICENSE Updated year in LICENSE 2016-06-11 16:18:55 +02:00
package.json Version bump => 0.9.0-beta20 2016-07-23 11:35:17 +02:00
publish.sh No tagging during publishing for now. 2016-06-20 22:49:25 +02:00
README.md README: Features / Anti-Features 2016-07-19 14:34:40 +02:00

ffffng Freifunk Knotenverwaltung

Motivation / Disclaimer

TODO

Features

  • Anlegen, Bearbeiten und Löschen von Knoten.
  • Auswahl der Koordinaten über eingebettete Karte.
  • Automatische Benachrichtigung, wenn ein Knoten zu lange offline ist.
  • Admin-Panel mit Statistiken, Suchfunktion, ...

Anti-Features

  • Zentrale Ablage der Daten auf einem Server statt auf den Knoten selber.
  • Migration der Daten zurück auf die Knoten oder in andere Systeme bisher nicht möglich. D. h. sobald einmal diese Knotenverwaltung verwendet wird, ist es nicht einfach möglich, diese wieder loszuwerden.
  • Angepasste Version des Karten-Backends für die Knotenkarte (meshviewer o.ä.) nötig.

Screenshots

Startseite der Knotenverwaltung

Formular zur Erfassung der Knotendaten

Option zum automatischen Versand von Monitoring-E-Mails

Bestätigungsseite nach dem Speichern

Statistiken im Admin-Panel

Knotenübersicht im Admin-Panel

Installation / Konfiguration

TODO

Administration

Das Admin-Panel ist dann entsprechend erreichbar unter: https://formular.musterstadt.freifunk.net/internal/admin. (Die Domain muss natürlich angepasst werden.)

Das Admin-Panel besteht aus folgenden Bereichen:

  • Dashboard / Statistics: Übersichtsseite.
  • Nodes: Liste aller in der Knotenverwaltung registrierten Knoten.
  • Monitoring: Liste aller aus der Karte bekannten Knoten inkl. Online- und Monitoring-Status.
  • Mail-Queue: Liste der als nächste zu versendenden E-Mails. E-Mails werden bis zu 5 mal versucht zu versenden. Sollte der Versand dann immer noch nicht geklappt haben, können sie hier gelöscht oder resettet werden (werden dann erneut versendet).
  • Background-Jobs: Übersicht über alle in der Knotenverwaltung laufenden Background-Jobs. Diese können dort bei Bedarf auch manuell gestartet, aktiviert und deaktiviert werden. ACHTUNG, das Deaktivieren von Jobs kann dazu führen, dass die Knotenverwaltung nicht mehr korrekt arbeitet. Die Jobs bleiben nur bis zum nächsten Neustart des Servers deaktiviert.
  • Logs: Verlinkung auf eine Übersicht der Knotenverwaltungs-Logs. Diese ist nicht wirklich stabil und kann bei großen Log-Dateien schnell den Browser überfordern.

gluon Config-Mode

Soll das Formular zum Anlegen neuer Knoten im gluon Config-Mode verlinkt werden, so bietet es sich an, die Übersetzungsdateien der Firmware unter i18n/ so ähnlich wie hier unten anzupassen:

msgid "gluon-config-mode:pubkey"
msgstr ""
...
"<a href=\"https://formular.musterstadt.freifunk.net/#/new?hostname=<%=hostname%>&key=<%=pubkey%>&mac=<%= sysconfig.primary_mac %>\" target=\"_blank\">https://formular.musterstadt.freifunk.net/</a> ein.</p>"
"<div class=\"the-key\">"
" # <%= hostname %>"
" <br/>"
"<%= pubkey %>"
...
"</div>"

Auf diese Weise landet der Nutzer direkt im teilweise vorausgefüllten Formular und muss nicht mehr den Knotennamen, fastd-Key und die MAC-Adresse angeben.

Entwicklung

Abhängigkeiten

  • node.js + NPM
  • compass (Installation z. B. via Ruby's gem)
  • grunt (Installation z. B. via npm install grunt-cli)
  • ggf. bower (Installation z. B. via npm install bower)

Build

grunt clean build

Der Output landet dann unter dist/.

Server starten

  1. Zunächst eine config.json anlegen wie oben unter "Installation / Konfiguration" beschrieben.
  2. node server/main.js -c config.json

Der Server ist dann erreichbar unter http://localhost:8080.

Life-Reload vom Client

grunt serve

Der Client ist dann erreichbar via http://localhost:9000, erwartet aber, dass der Server für die REST-API auch läuft (s. o.) und auf Port 8080 erreichbar ist.

Publishen auf npmjs.com

Geht nur, wenn man die Berechtigungen für das Package auf npmjs.com hat.

Zunächst sicherstellen, dass in der package.json die korrekte neue Versionsnummer eingetragen und committed ist, dann einfach ./publish.sh aufrufen.