Giter VIP home page Giter VIP logo

freifunk-gluon / gluon Goto Github PK

View Code? Open in Web Editor NEW
536.0 536.0 322.0 12.69 MB

a modular framework for creating OpenWrt-based firmwares for wireless mesh nodes

Home Page: https://gluon.readthedocs.io

License: Other

Shell 7.36% Makefile 9.23% Lua 36.28% C 34.17% HTML 4.37% JavaScript 5.26% CMake 0.12% Perl 0.35% PHP 0.04% Dockerfile 0.16% Python 0.45% SCSS 1.96% C++ 0.06% POV-Ray SDL 0.17%
c freifunk gluon hacktoberfest lua mesh-networks openwrt

gluon's People

Contributors

2tata avatar achterin avatar aiyionprime avatar ambassador86 avatar belzebub40k avatar blocktrron avatar bobidle avatar christf avatar dark4md avatar dependabot[bot] avatar djfe avatar ecsv avatar herbetom avatar herrbett avatar jplitza avatar kb-light avatar kokel avatar lemoer avatar maurerle avatar mkg20001 avatar mweinelt avatar nalxnet avatar neocturne avatar ohrensessel avatar rotanid avatar rubo77 avatar sargon avatar skorpy2009 avatar t-x avatar txt-file avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gluon's Issues

Add /etc/cron.d/ so packages can install cronjobs

Gluon will depend on periodic jobs (e.g. autoupdater, alfred announcements). Unfortunately, there is no simple way to define such jobs from within a package.

OpenWRT provides /etc/crontabs/ for storing crontabs. In this directory one can create a crontab for a single user. Usually, there will be a file named root containing most jobs. Within gluon almost all jobs will run as root so each package installing /etc/crontab/root would overwrite other packages jobs.

Therefore, I think we should introduce a special crontab directory where multiple crontabs to be run as root can be stored. Suggested path: /etc/cron.d/

A special init script could just concatenate all files within said directory, put the result somewhere on the ramdisk and run a crond. This will allow other packages to place files like /etc/cron.d/autoupdater and /etc/cron.d/alfred without conflicts.

packages: gluon/gluon-autoupdater: refactor generic parts out of the gluon-specific package

The autoupdater is pretty generic and should be usable on a vanilla OpenWRT, too. Therefore having the 'gluon-' prefix seems unnecessary to me.

However simply removing the gluon prefix might not be so nice either, the name "autoupdater" seems a bit too generic to get upstream in the OpenWRT package repository - a fancy, unique name for the autoupdater would be needed, I suppose.

simple autoupdater

IPv6 for autoupdate host within Freifunk Lübeck: fdef:ffc0:3dd7::ffff:0
Todo: Add keys to site-ffhl repo

configmode: fastd, show node name

configmode should show the node's hostname in addition to the public key in order to simplify the procedure of adding new fastd keys.

replace vis with alfred

Alfred will replace batman-adv visualisation. It should announce the following information:

  • visualisation
  • hostname
  • firmware version
  • br-freifunk's MAC and IPv6
  • GPS coordinates
  • hardware model
  • autoupdater status (enabled/disabled)
  • uptime

Configmode: Export mesh,client,wan bridges via VLAN

In addition to the planed toggling batman on LAN/WAN ports in Configmode, we should have the ability to deliver all possible networks encapsulated in a VLAN.

Use-case: There are one ethernet port devices like the ubnt bullet or nanostation. Several of these could be installed on the roof or ceilings such that they don't see each other via wlan mesh.
Then we like to mesh those devices via ethernet, so we need at least batman on the ethernet port. But we also like to distribute the client network to other devices. And connect at least one of the devices to the mesh via vpn. So we need access to all three networks.

Practical application:
In Kiel we have one facility where the client network is distributed via a in house cisco wlan router setup. Other mesh nodes are connected via cable and only one of the devices has an uplink.

autoupdater: Should allow multiple mirrors of firmware

What the title said.

In a case when we have a new firmware release we should have more than one point in a decentralized network to retrieve the release. Thus we can have
servers in the mesh clouds which can provide local nodes with updates in case
of intercloud disconnection issues. Last case could for example happen when we are in a mesh protocol changing phase or when we change the cyphers in the intercloud vpn.

Think this must not be ready for the first gluon release.

lock password by default

By default the root password should be locked. It should be possible to set it from configmode (web + telnet).

configmode: wrong hostname in the final page of the wizard

In the final page of the wizard the wrong hostname is displayed. This is very confusing, especially when the back button leads in a connection fail.

Fixing the hostname in this case should fix this problem.

  • fix configmode
  • fix site.conf text

TPWR841nd Build - Luci Theme fail

I've build the actual trunk for the tpwr841nd with freifunk mainz site.conf but after reboot there is no freifunk luci theme in the image.
Also any configuration results in a luci error:

No page is registered at '/admin/system/admin'.
If this url belongs to an extension, make sure it is properly installed.
If the extension was recently installed, try removing the /tmp/luci-indexcache file.

I've guess it has something to do with the merge to the packages subdirectory

regards
Knirps

allow SSH on WAN port

Currently the firewall will block SSH on the WAN port. This is not desired in most circumstances.

Fix NTP

Make the nodes use an NTP server in the mesh.

HTTP status page

  • hostname
  • firmware version
  • uptime
  • br-client MAC
  • br-client IPv6s

configmode: formular enhancements

In case of a form error the color of the field gets red, with the current theme. Sadly the cursor is nearly the same color, so not visible anymore. This behaviour leads to confusion. Furthermore, in the case of the hostname, the error message should include information about valid character and maximal length.

Don't run everything as root

Most services don't need root privileges (e.g. fastd).

Review services used by gluon and create one or more new user accounts for them.

Disable vis in batman-adv kernel module?

I've uploaded a batman-adv branch based on 2013.4.0 without vis at https://github.com/NeoRaider/batman-adv-legacy/tree/no-vis . This version still forwards vis packets from other nodes, but doesn't generate vis data itself.

Merging vis information from the old nodes and the new batadv-vis data from alfred should be trivial (and has to be done anyways), do we want to use the patched version?

If there are no objections, I'll include the new version in our feeds sometime in the next days, so it gets a lot of testing. We should probably extend our vis servers to support alfred and merge the data as soon as possible so both old and new nodes are shown.

next-node address

fdef:ffc0:3dd7::1 and 10.130.0.1 should always point to the node that the client is connected to.

configmode: split into simple and advanced mode

Configmode should be split into a simple and an advanced mode. Simple-mode will contain just the necessary wizards to setup a new node while the advanced mode will feature additional options geared towards special node setupts.

Simple mode features:

  • hostname
  • fastd setup
  • GPS coordinate
  • disable/enable bandwidth limitation
  • set bandwidth limit
  • disable/enable autoupdater (without further options)

Advanced mode features:

  • set root password
  • manage ssh pubkeys
  • configure autoupdater
  • firmware upgrade
  • factory reset
  • toggle batman-adv on WAN/LAN ports

Hardware Targets

  • TL-MR3020
  • TL-MR3040
  • TL-MR3220
  • TL-MR3420
  • TL-WDR3500
  • TL-WDR3600
  • TL-WDR4300
  • TL-WR1043ND
  • TL-WR741N
  • TL-WR741ND
  • TL-WR841ND
  • TL-WR842N
  • Bullet M2
  • NanoStation M2
  • NanoStation loco M2
  • Unifi AP
  • Unifi AP LR
  • NanoBridge M2

Verify site.conf structure

Before building the packages there should be an target which verify the structure of the site.conf and aborts the build process if not valid.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.