aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrubo77 <github@r.z11.de>2018-11-14 01:41:06 +0100
committerrubo77 <github@r.z11.de>2018-11-14 01:41:06 +0100
commited4374495d0664a7e8eea9e2674a46015d87d011 (patch)
treeb65ff989465b625bb0a91b3aba1ebffd19b21e86
parent210cde10a19552077a53a0f0cc14c1512b20f9c0 (diff)
add multi domain support
-rw-r--r--README.md132
-rw-r--r--domains/kiel_zentrum.conf150
-rw-r--r--release2
-rw-r--r--site.conf167
-rw-r--r--site.mk7
5 files changed, 191 insertions, 267 deletions
diff --git a/README.md b/README.md
index 2194f37..3dd7050 100644
--- a/README.md
+++ b/README.md
@@ -1,134 +1,4 @@
Firmware Site Config for Freifunk Kiel
--------------------------------------
-The Freifunk nightly firmware is based on gluon branch v2018.1.x
-
-You can always find
-the latest gluon documentation at:
-https://gluon.readthedocs.io/en/latest/user/site.html
-
-# Autoupdater Sources
-
-We are working with those autoupdater branches:
-
-## nightly
-Build on the site-ffki branch `nightly`, probably with BROKEN=1.
-These builds are created automatically and will possibly break your devices
-without prior notice. Use only if you know what you are doing.
-
-## release-candidate (rc)
-Built on the site-ffki branch `release-candidate`. These builds are initiated manually
-and should be more or less stable. However they are still in testing for a
-reason. Use this if you want to offer your devices as test-platforms for the
-upcoming stable releases.
-
-## stable
-Not built directly but instead release-candidates are "promoted" to stable
-after they have been thoroughly tested.
-
-
-# Firmware Download
-
-You can always find the current release at https://freifunk.in-kiel.de/firmware.html
-
-# Development
-
-## Validation
-
-You can validate your changes to this repository by calling the validate_site.sh file with
-
- tests/validate_site.sh
-
-## General process
-
-- Usually no commits should affect `release-candidate` directly.
-- Development for new firmwares takes place in the `nightly` branch.
-- Buildbot creates new firmwares from `nightly` as needed.
-- Release for new firmware is prepared through pull request from `nightly` to `release-candidate`
-- After consensus over pull request, new `release-candidate` is manually built in Gitlab.
-- Initial signature by developer allows update of `rc` nodes.
-- After testing, `rc` is promoted to stable and signed by developers.
-
-## Releases
-
-These Kieler Freifunk firmwares have been released:
-
-- 2016.2.7
- - Based on Gluon 2016.2.7
-- 2016.2.6.2
- - Based on Gluon 2016.2.6
- - Deactivated legacy ibss meshing protocol
-- 2016.2.6.1
- - Based on Gluon 2016.2.6
- - Activated 11s meshing protocol as well as old ibss meshing protocol
- - Eulenfunk Quickfix reboots broken nodes
-- 2016.2.5
- - Based on Gluon 2016.2.5
- - Included acceptance of PPA in config mode
- - Included option to register for "Knotenalarm" in config mode
-- 2016.2.1
- - Based on Gluon 2016.2.1
- - Contact information has information about anonymous option (one space)
- - Various bugfixes
-- 2016.1.6
- - Based on Gluon 2016.1.6
- - USB-auto-mount for sharing attached USB memory devices (configuration in config-mode)
-- 2016.1.5.1
- - Based on Gluon 2016.1.5
- - Contact information mandatory
- - roamguide added but initially deactivated
-- 0.9
- - Based on Gluon v2016.1.5
- - intermediate version to change auto updater branch of old experimental routers to stable
-- 0.8.x (experimental)
- - Based on Gluon v2015.2
-- 0.7.1
- - Based on Gluon v2015.1.1 (5.7.2015)
-- 0.7
- - Based on Gluon 2015.1 (22.5.2015)
-- 0.6
- - Based on Gluon 2014.4 (30.3.2015)
-- 0.5.2
- - Based on Gluon 2014.3.1
-- 0.5
- - Based on Gluon 2014.3
-- 0.4.1
- - Based on Gluon reference de223ceaf2fd0c9e7892dbaf6a12058fc3fc6269
-- 0.4
- - Based on Gluon reference 5a4767b78fef2a6c8c9ffd76c69731b9d8b37557
-- 0.3.2.1
- - Based on Gluon version from 2013-04-02
-- 0.3.100-exp
- - Based on Gluon reference 2c751d3612a7229de878c40ae724611f2f4f0bee
-
-## Building
-
-You can easily create your own experimental firmware with the build script `make-release.sh`
-
-Or build with these commands:
-
- sudo apt-get install git make gcc g++ unzip libncurses5-dev zlib1g-dev subversion gawk bzip2 libssl-dev
- git clone https://github.com/freifunk-gluon/gluon.git
- cd gluon
- git clone https://github.com/freifunk-kiel/ffki-site.git site
- make update
- D=$(date '+%y%m%d%H%M');
- ONLY_11S="ramips-rt305x ramips-mt7621"
- BANANAPI="sunxi"
- RASPBPI="brcm2708-bcm2708 brcm2708-bcm2709"
- X86="x86-64 x86-generic x86-kvm_guest x86-xen_domu"
- WDR4900="mpc85xx-generic"
- for TARGET in ar71xx-generic ar71xx-mikrotik ar71xx-nand $WDR4900 $RASPBPI $BANANAPI $X86; do
- make GLUON_TARGET=$TARGET DEFAULT_GLUON_RELEASE=2016.2.1~exp$D BROKEN=1;
- done
-
-### Code Review
-
-Die Firmware wird in unserem GitLab gebaut. Dabei werden die Commit-Ids des
-gluon Repositories und des Site-Konfigurations-Repositories in der Firmware
-verankert. Diese Ids kann man in der Startseite der Erweiterten Einstellungen
-im Config Mode ersehen. Die Git Id ist genau der commit auf dem die Firmware
-gebaut wurde. Falls dort ein Plus (+) am Ende erscheint ist dies der
-"Dirty"-Flag. Die Id wurde erzeugt mit
-
- git describe --always --dirty=+
+The Freifunk multidomain firmware is based on gluon branch v2018.1.x.
diff --git a/domains/kiel_zentrum.conf b/domains/kiel_zentrum.conf
new file mode 100644
index 0000000..971bd74
--- /dev/null
+++ b/domains/kiel_zentrum.conf
@@ -0,0 +1,150 @@
+{
+ domain_names = {
+ kiel_zentrum = 'Kiel Zentrum',
+ kiel_gaarden = 'Kiel Gaarden',
+ kiel_wik = 'Kiel Wik',
+ kiel_kronshagen = 'Kronshagen',
+ kiel_laboe = 'Laboe'
+ },
+
+ -- Must be the same of all nodes in one mesh domain
+ domain_seed = 'd6c58c17e655c52c12e9d8ad1b546a264124dd33dd8a00a39ee528778c2b1c47',
+
+ prefix4 = '10.116.128.0/17',
+ prefix6 = 'fda1:384a:74de:4242::/64',
+
+ ntp_servers = {'1.ntp.services.ffki'},
+
+ -- The next node feature allows clients to always reach the node it is
+ -- connected to using a known IP address.
+ next_node = {
+ name = {
+ 'node.ffki',
+ 'nextnode.ffki',
+ 'knoten.ffki',
+ 'nextnode',
+ 'nn',
+ },
+ -- anycast IPs of all nodes
+ ip4 = '10.116.254.254',
+ ip6 = 'fda1:384a:74de:4242::ffff',
+
+ -- anycast MAC of all nodes (legacy)
+ mac = '36:f4:54:fc:e5:11'
+ },
+
+ -- Wireless configuration for 2.4 GHz interfaces.
+ wifi24 = {
+ channel = 11,
+
+ -- ESSID used for client network.
+ ap = {
+ ssid = 'http://kiel.freifunk.net/',
+ -- disabled = true, (optional)
+ },
+ mesh = {
+ id = '16:ca:ff:ee:ba:be',
+ mcast_rate = 12000,
+ disabled = false,
+ },
+ },
+
+ -- Wireless configuration for 5 GHz interfaces.
+ -- This should be equal to the 2.4 GHz variant, except
+ -- for channel.
+ wifi5 = {
+ channel = 44,
+ ap = {
+ ssid = 'http://kiel.freifunk.net/',
+ },
+ mesh = {
+ id = '16:ca:ff:ee:ba:be',
+ mcast_rate = 12000,
+ disabled = false,
+ },
+ },
+
+ mesh = {
+ -- (vxlan=false is legacy)
+ vxlan = false,
+ },
+
+ mesh_vpn = {
+ mtu = 1280,
+
+ fastd = {
+ methods = {'salsa2012+umac'},
+ groups = {
+ backbone = {
+ -- Limit number of connected peers to reduce bandwidth.
+ limit = 1,
+ peers = {
+ ffki_vpn0 = {
+ key = '7a01772ff2351ce7ad3e305da58ba96178997cadb23fcd8c527e88b2fb677528',
+ remotes = {
+ 'ipv6 "vpn0.freifunk.in-kiel.de" port 11235',
+ 'ipv4 "vpn0.freifunk.in-kiel.de" port 11235'
+ },
+ },
+ ffki_vpn1 = {
+ key = '65db8bff947e7c02ef7e152e73fb17c39ee9cfea91d047cb7a063ecb1eb7dd88',
+ remotes = {
+ 'ipv6 "vpn1.freifunk.in-kiel.de" port 11235',
+ 'ipv4 "vpn1.freifunk.in-kiel.de" port 11235'
+ },
+ },
+ ffki_vpn2 = {
+ key = 'fa400de81fc9f53127a4e60980c9756af372161c01ecbc7574fe115cf6434821',
+ remotes = {
+ 'ipv6 "vpn2.freifunk.in-kiel.de" port 11235',
+ 'ipv4 "vpn2.freifunk.in-kiel.de" port 11235'
+ },
+ },
+ ffki_vpn3 = {
+ key = 'd93050db0bf01b37ea9fda6d0977c07dcac598d244f8f7ceff8dc903b28c6462',
+ remotes = {
+ 'ipv6 "vpn3.freifunk.in-kiel.de" port 11235',
+ 'ipv4 "vpn3.freifunk.in-kiel.de" port 11235'
+ },
+ },
+ ffki_vpn4 = {
+ key = 'ad853e5848ad5c2a149a93f156215e4b6eafed3ef16f7b70b80f33677bda8aa0',
+ remotes = {
+ 'ipv6 "vpn4.freifunk.in-kiel.de" port 11235',
+ 'ipv4 "vpn4.freifunk.in-kiel.de" port 11235'
+ },
+ },
+ ffki_vpn5 = {
+ key = '692f620fbc01c3dd69d3126c76a258854bd2de6ea6a9f6889620c78f98065c8c',
+ remotes = {
+ 'ipv6 "vpn5.freifunk.in-kiel.de" port 11235',
+ 'ipv4 "vpn5.freifunk.in-kiel.de" port 11235'
+ },
+ },
+ ffki_vpn6 = {
+ key = '53a1b531ec6a94337601e8ac5345670bc82fac156200e313dda90ca50255d018',
+ remotes = {
+ 'ipv6 "vpn6.freifunk.in-kiel.de" port 11235',
+ 'ipv4 "vpn6.freifunk.in-kiel.de" port 11235'
+ },
+ },
+ ffki_vpn7 = {
+ key = '3845a2d0559776beb27be2044e4d9a9913a7743f9b0e1dcd3ebacf50545342ec',
+ remotes = {
+ 'ipv6 "vpn7.freifunk.toppoint.de" port 11235',
+ 'ipv4 "vpn7.freifunk.toppoint.de" port 11235'
+ },
+ },
+ ffki_vpn8 = {
+ key = 'd36c8a48f279bdcc0b8de66c232989f12faaf4bf490ba6bba6bd01526083601e',
+ remotes = {
+ 'ipv6 "vpn8.ffki.de" port 11235',
+ 'ipv4 "vpn8.ffki.de" port 11235'
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+}
diff --git a/release b/release
index a427f03..b77224b 100644
--- a/release
+++ b/release
@@ -1 +1 @@
-2018.1.1~ngly
+2018.1.1~multi
diff --git a/site.conf b/site.conf
index 9f9dbbf..2dcaa91 100644
--- a/site.conf
+++ b/site.conf
@@ -1,11 +1,10 @@
{
- hostname_prefix = 'Gib mir einen Namen ',
site_name = 'Freifunk Kiel',
site_code = 'ffki',
-
- -- Must be the same of all nodes in one mesh domain
- domain_seed = 'd6c58c17e655c52c12e9d8ad1b546a264124dd33dd8a00a39ee528778c2b1c47',
-
+ default_domain = 'kiel_zentrum',
+
+ hostname_prefix = 'Gib mir einen Namen ',
+
opkg = {
lede = 'http://opkg.services.ffki/%n/%v/%S/packages',
extra = {
@@ -13,16 +12,12 @@
},
},
- prefix4 = '10.116.128.0/17',
- prefix6 = 'fda1:384a:74de:4242::/64',
-
-- for alt-esc example and ebtables-source-filter
-- extra_prefixes6 = {
- -- '2a07:59c6:ec02::/48'
+ -- '2a07:59c6:ec02::/48'
-- },
timezone = 'CET-1CEST,M3.5.0,M10.5.0/3', -- Europe/Berlin
- ntp_servers = {'1.ntp.services.ffki'},
-- Wireless regulatory domain of your community.
regdom = 'DE',
@@ -54,8 +49,6 @@
-- Wireless configuration for 2.4 GHz interfaces.
wifi24 = {
- channel = 11,
-
-- List of supported wifi rates (optional)
-- without 802.11b compatibility for better performance
supported_rates = {6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000},
@@ -63,32 +56,6 @@
-- List of basic wifi rates (optional, required if supported_rates is set)
-- without 802.11b compatibility for better performance
basic_rate = {6000, 9000, 18000, 36000, 54000},
-
- -- ESSID used for client network.
- ap = {
- ssid = 'http://kiel.freifunk.net/',
- -- disabled = true, (optional)
- },
- mesh = {
- id = '16:ca:ff:ee:ba:be',
- mcast_rate = 12000,
- disabled = false,
- },
- },
-
- -- Wireless configuration for 5 GHz interfaces.
- -- This should be equal to the 2.4 GHz variant, except
- -- for channel.
- wifi5 = {
- channel = 44,
- ap = {
- ssid = 'http://kiel.freifunk.net/',
- },
- mesh = {
- id = '16:ca:ff:ee:ba:be',
- mcast_rate = 12000,
- disabled = false,
- },
},
dns = {
@@ -106,27 +73,8 @@
},
},
- -- The next node feature allows clients to always reach the node it is
- -- connected to using a known IP address.
- next_node = {
- name = {
- 'node.ffki',
- 'nextnode.ffki',
- 'knoten.ffki',
- 'nextnode',
- 'nn',
- },
- -- anycast IPs of all nodes
- ip4 = '10.116.254.254',
- ip6 = 'fda1:384a:74de:4242::ffff',
-
- -- anycast MAC of all nodes
- mac = '36:f4:54:fc:e5:11'
- },
-
-- Options specific to routing protocols (optional)
mesh = {
- vxlan = false,
filter_membership_reports = true,
-- Options specific to the batman-adv routing protocol (optional)
batman_adv = {
@@ -145,84 +93,11 @@
mesh_vpn = {
enabled = true,
- mtu = 1280,
- fastd = {
- methods = {'salsa2012+umac'},
- -- configurable = true,
+ -- fastd = {
-- syslog_level = 'warn',
- groups = {
- backbone = {
- -- Limit number of connected peers to reduce bandwidth.
- limit = 1,
- peers = {
- ffki_vpn0 = {
- key = '7a01772ff2351ce7ad3e305da58ba96178997cadb23fcd8c527e88b2fb677528',
- remotes = {
- 'ipv6 "vpn0.freifunk.in-kiel.de" port 11235',
- 'ipv4 "vpn0.freifunk.in-kiel.de" port 11235'
- },
- },
- ffki_vpn1 = {
- key = '65db8bff947e7c02ef7e152e73fb17c39ee9cfea91d047cb7a063ecb1eb7dd88',
- remotes = {
- 'ipv6 "vpn1.freifunk.in-kiel.de" port 11235',
- 'ipv4 "vpn1.freifunk.in-kiel.de" port 11235'
- },
- },
- ffki_vpn2 = {
- key = 'fa400de81fc9f53127a4e60980c9756af372161c01ecbc7574fe115cf6434821',
- remotes = {
- 'ipv6 "vpn2.freifunk.in-kiel.de" port 11235',
- 'ipv4 "vpn2.freifunk.in-kiel.de" port 11235'
- },
- },
- ffki_vpn3 = {
- key = 'd93050db0bf01b37ea9fda6d0977c07dcac598d244f8f7ceff8dc903b28c6462',
- remotes = {
- 'ipv6 "vpn3.freifunk.in-kiel.de" port 11235',
- 'ipv4 "vpn3.freifunk.in-kiel.de" port 11235'
- },
- },
- ffki_vpn4 = {
- key = 'ad853e5848ad5c2a149a93f156215e4b6eafed3ef16f7b70b80f33677bda8aa0',
- remotes = {
- 'ipv6 "vpn4.freifunk.in-kiel.de" port 11235',
- 'ipv4 "vpn4.freifunk.in-kiel.de" port 11235'
- },
- },
- ffki_vpn5 = {
- key = '692f620fbc01c3dd69d3126c76a258854bd2de6ea6a9f6889620c78f98065c8c',
- remotes = {
- 'ipv6 "vpn5.freifunk.in-kiel.de" port 11235',
- 'ipv4 "vpn5.freifunk.in-kiel.de" port 11235'
- },
- },
- ffki_vpn6 = {
- key = '53a1b531ec6a94337601e8ac5345670bc82fac156200e313dda90ca50255d018',
- remotes = {
- 'ipv6 "vpn6.freifunk.in-kiel.de" port 11235',
- 'ipv4 "vpn6.freifunk.in-kiel.de" port 11235'
- },
- },
- ffki_vpn7 = {
- key = '3845a2d0559776beb27be2044e4d9a9913a7743f9b0e1dcd3ebacf50545342ec',
- remotes = {
- 'ipv6 "vpn7.freifunk.toppoint.de" port 11235',
- 'ipv4 "vpn7.freifunk.toppoint.de" port 11235'
- },
- },
- ffki_vpn8 = {
- key = 'd36c8a48f279bdcc0b8de66c232989f12faaf4bf490ba6bba6bd01526083601e',
- remotes = {
- 'ipv6 "vpn8.ffki.de" port 11235',
- 'ipv4 "vpn8.ffki.de" port 11235'
- },
- },
- },
- },
- },
- },
+ -- configurable = true,
+ -- },
bandwidth_limit = {
enabled = false,
egress = 2000,
@@ -286,6 +161,32 @@
},
},
+ -- multidomain builds are rolled out automatically whenever a commit is pushed into the multidomain branch
+ multidomain = {
+ name = 'multidomain',
+ mirrors = {
+ 'http://[fda1:384a:74de:4242::fd00]/firmware/multidomain/sysupgrade',
+ 'http://[fda1:384a:74de:4242::ff00]/firmware/multidomain/sysupgrade',
+ 'http://[fda1:384a:74de:4242::ff01]/firmware/multidomain/sysupgrade',
+ 'http://[fda1:384a:74de:4242::ff02]/firmware/multidomain/sysupgrade',
+ 'http://[fda1:384a:74de:4242::ff03]/firmware/multidomain/sysupgrade',
+ 'http://0.updates.services.ffki/firmware/multidomain/sysupgrade',
+ 'http://1.updates.services.ffki/firmware/multidomain/sysupgrade',
+ },
+ good_signatures = 1,
+ pubkeys = {
+ 'bbb814470889439c04667748c30aabf25fb800621e67544bee803fd1b342ace3', -- sargon
+ '8d16e1b88bcac28b493d6eadbce97bd223a65b3282a533c1f15f4b616b0d732a', -- BenBE
+ '589695821488c9acd2efc26c2fdde259b25615cbfdbb6a434e95e33fa6932023', -- Tarnatos
+ '9885f836464abf3633f92701e4febeefec54f481d8b6cd39085e6ad24162ff82', -- rubo77
+ '359ec3619184f1bdfe26515cf5ba2b016ba23489db2a371cbf5c3cee9d061110', -- Sven (FL)
+ '622e6eccd148c4d4a53ee367dd1d73740da6795fe8dc2df1ff022bf1b4344714', -- eNBeWe
+ 'a15a8f462b5d11982e2b5d36c1788ec48e328d54a736c217aa820b61faa0ad55', -- tSYS
+ '1c24d4b41680f16cda0c19ad53de84ef1be3a86870e6fec6454833a6a46f7122', -- Buildbot Um, AutoDeploy
+ 'cb0141d79e131854eb05d6c9ce5cc237baa462e288b7fcb0eadbd92da8f34b3f', -- Buildbot Dois, AutoDeploy
+ },
+ },
+
-- next builds are rolled out automatically whenever a commit is pushed into the next branch
next = {
name = 'next',
diff --git a/site.mk b/site.mk
index 70fd7b1..22949a1 100644
--- a/site.mk
+++ b/site.mk
@@ -3,7 +3,7 @@
# Always call `make` from the command line with the desired release version!
# otherwise this is generated:
#DEFAULT_GLUON_RELEASE := 2018.1
-DEFAULT_GLUON_RELEASE := 2018.1.1~ngly$(shell date '+%y%m%d')
+DEFAULT_GLUON_RELEASE := 2018.1.1~multi$(shell date '+%y%m%d')
# Allow overriding the release number from the command line
GLUON_RELEASE ?= $(DEFAULT_GLUON_RELEASE)
@@ -21,6 +21,8 @@ GLUON_REGION ?= eu
# enable generation of images for ath10k devices with 802.11s mode
GLUON_WLAN_MESH ?= 11s
+GLUON_MULTIDOMAIN=1
+
GLUON_LANGS ?= en de
# for feature packs see https://github.com/freifunk-gluon/gluon/blob/v2018.1.x/package/features
@@ -37,7 +39,8 @@ GLUON_FEATURES := \
status-page \
web-advanced \
web-wizard \
- autoupdater
+ autoupdater \
+ config-mode-domain-select
GLUON_SITE_PACKAGES := \
respondd-module-airtime \