Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7. - [Release notes](https://github.com/jbgutierrez/path-parse/releases) - [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7) --- updated-dependencies: - dependency-name: path-parse dependency-type: indirect ... Signed-off-by: dependabot[bot] <firstname.lastname@example.org> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|2 months ago|
|.ci||2 years ago|
|data||2 years ago|
|runtime||2 years ago|
|ssh||2 years ago|
|tools||2 years ago|
|webroot||2 months ago|
|websocket||2 years ago|
|.gitignore||3 years ago|
|.gitlab-ci.yml||2 years ago|
|.gitmodules||4 years ago|
|.test-coverage||4 years ago|
|.travis.yml||3 years ago|
|LICENSE.md||4 years ago|
|README.md||2 years ago|
|config_example.conf||2 years ago|
|go.mod||1 year ago|
|main.go||1 year ago|
is a little software to manage gluon nodes with the help of ssh and yanic (used on the Breminale since 2017)
Preparations for Building
Install Go 1.10 or newer:
mkdir -p ~/inst cd ~/inst wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz tar xf go1.10.3.linux-amd64.tar.gz export PATH=~/inst/go/bin/:$PATH export GOROOT=~/inst/go/
Install nodejs >= 4.8:
mkdir -p ~/inst cd ~/inst wget https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz tar xf node-v8.11.3-linux-x64.tar.xz export PATH=~/inst/node-v8.11.3-linux-x64/bin/:$PATH
Install yarn (https://yarnpkg.com/en/docs/install):
mkdir -p ~/inst cd ~/inst wget https://github.com/yarnpkg/yarn/releases/download/v1.7.0/yarn-v1.7.0.tar.gz tar xf yarn-v1.7.0.tar.gz export PATH=~/inst/yarn-v1.7.0/bin/:$PATH
Building & Running
Download and build freifunkmanager:
go get -t github.com/FreifunkBremen/freifunkmanager/... go get github.com/mattn/goveralls go get golang.org/x/tools/cmd/cover cd $GOPATH/src/github.com/FreifunkBremen/freifunkmanager/ go build sudo setcap cap_net_raw+ep freifunkmanager # necessary for sending ping packets cd webroot yarn install yarn gulp build
./freifunkmanager -config config_example.conf
Navigation bar at top of page:
- marker icon: (TODO)
- List: show list of all known nodes
- use Edit link in last column of a node to edit its details; changes made on the Edit page are saved immediately
- to change just the hostname, double-click on hostname field in list and make your change
- Map: show map of nodes
- use Layers icon in upper right corner to enable geojson overlay and view clients
- Statistics: show statistics about nodes, clients, used channels...
- Login with text field: enter password (value of "secret" in config file) and click "Login" to log in
- this is necessary to make any changes
- there is no user management; anybody who has the password has full access
- blue rectangle on the far right: (TODO: connection status?)
List of known nodes will be retrieved with the respondd protocol (ie. by periodic UDP multicast requests to all reachable nodes). For this, FFMan uses a built-in Yanic instance. The respondd protocol provides configuration details and statistics for each node.
Alternatively, FFMan can also be configured to just listen to respondd responses (without sending requests); this is useful to "listen in" on the responses requested by a separate Yanic process running on the same network. This mode can be enabled by setting
0s and settings
Additionally, nodes can be added manually by visiting a page like /#/n/apname (where "apname" is the node-id of the new device), and then setting a hostname.
The web interface displays all nodes that were found (except for nodes which don't respond to SSH - these are blacklisted). The web interface is updated live, by using a websocket connection; this also means that changes made in one tab will appear immediately in other tabs as well.
When node settings are changed in the web interface, an SSH connection is opened to the node to apply the new settings.
All changes are also saved to a state file (eg. /tmp/freifunkmanager.json - can be changed in config file).
And all of the received node data is also stored in a database (see
db_connection config options).
Creating dummy respondd data
- create dummy "eth10" network interface:
sudo -s modprobe dummy ifconfig dummy0 hw ether 00:22:22:ff:ff:ff ipaddr=`ipv6calc --in prefix+mac --action prefixmac2ipv6 --out ipv6addr fe80:: 00:22:22:ff:ff:ff` ip a add dev dummy0 scope link $ipaddr/64 ip link set dummy0 up
- edit tools/example-response.json to set network addresses for each node that are reachable with SSH (otherwise the nodes will be blacklisted immediately)
- also, if necessary adjust the
ssh_ipaddress_prefixsetting in config_example.conf to match the addresses from example-response.json
- also, if necessary adjust the
- edit config_example.conf: in [yanic] section set ifname="dummy0"
- edit $GOPATH/src/github.com/FreifunkBremen/yanic/respond/respond.go: change port=10001
- go to $GOPATH/src/github.com/FreifunkBremen/freifunkmanager/ and run "go build"
- start FFMan as usual (
./freifunkmanager -config config_example.conf)
- in another shell run
./tools/respondd-sim.py -p 10001 -i dummy0 -f tools/example-response.json
- FFMan should now display two new nodes with the example hostnames