Compare commits

..

11 commits

Author SHA1 Message Date
4ndr3
bc1f110450 hostname_prefix, IPv4 aus GW entfernt 2014-12-14 17:23:46 +01:00
4ndr3
1ce31f94c6 hostname_prefix & Hinweis auf Knotennamen 2014-12-14 17:15:20 +01:00
4ndr3
1a0fbfadce Update site.mk 2014-12-13 19:14:22 +01:00
4ndr3
53cb09b22d "regenerate key before release" Kommentar entfernt 2014-12-13 15:42:58 +01:00
4ndr3
70941228d3 MTU Änderung für IPv6
MTU um 20 reduziert auf 1406 und alte GWs 5, 7, 8, 9, 12, 13 fastd port auf 10001
Conflicts:
	site.conf
2014-12-13 15:42:29 +01:00
4ndr3
aa691712e9 gw14 & 15 entfernt, neue Schluessel für gws
3,4,6,10,11
2014-12-13 15:39:38 +01:00
4ndr3
9dcf4d447e neuen gw02 schluessel, atle gws raus, 16-20 raus 2014-12-13 15:35:11 +01:00
4ndr3
40068ed463 hostname prefix entfernt 2014-12-13 15:35:11 +01:00
ohrensessel
c39e58d6be Release v0.5.1 2014-10-21 01:17:17 +02:00
Leo Krueger
b9e3c3dadc Use ffhh opkg mirror
Conflicts:
	site.conf
2014-10-21 01:13:56 +02:00
ohrensessel
e107df512f Enable mesh vpn by default 2014-10-21 01:11:56 +02:00
14 changed files with 180 additions and 706 deletions

2
.gitignore vendored
View file

@ -1,3 +1 @@
*~
info
sites/

View file

@ -1,54 +1,16 @@
#### How to build the Freifunk Hamburg Firmware
In the next two commands replace GLUON_VERSION and SITE_VERSION with the actual version numbers.
$ git clone -b GLUON_VERSION https://github.com/freifunk-gluon/gluon.git
$ git clone -b SITE_VERSION https://git.hamburg.ccc.de/freifunk/site-ffhh.git
$ cd site-ffhh
To build the firmware into the subdirectory firmware:
$ ./build.sh -g ../gluon -o firmware
The build.sh supports the argument -b if you wish to also build firmware images marked as broken in gluon.
git clone git://github.com/freifunk-gluon/gluon.git # Get the official Gluon repository
cd gluon
git clone git://github.com/freifunkhamburg/site-ffhh.git site # Get the Freifunk Hamburg site repository
make update # Get other repositories used by Gluon
make # Build Gluon
Please see [the official Gluon repository](https://github.com/freifunk-gluon/gluon) for an in-depth explanation of the build process.
#### Gluon versions used for specific Hamburg Freifunk Firmware builds
- v2023.2.4.0: site-ffhh: v2023.2.4.0, gluon: v2023.2.4
- v2023.2.2.1: site-ffhh: v2023.2.2.0, gluon: v2023.2.2 (add mediatek-filogic Routers)
- v2023.2.2.0: site-ffhh: v2023.2.2.0, gluon: v2023.2.2
- v2023.1.2.0: site-ffhh: v2023.1.2.0, gluon: v2023.1.2
- v2022.1.4.0: site-ffhh: v2022.1.4.0, gluon: v2022.1.4
- v2022.1.3.0: site-ffhh: v2022.1.3.0, gluon: v2022.1.3 (nur experimental verteilt)
- v2021.1.2.0: site-ffhh: v2021.1.2.0, gluon: v2021.1.2
- v2021.1.1.0: site-ffhh: v2021.1.1.0, gluon: v2021.1.1
- v2020.2.3.0: site-ffhh: v2020.2.3.0, gluon: v2020.2.3
- v2020.2.2.0: site-ffhh: v2020.2.2.0, gluon: v2020.2.2
- v2020.1.4.0: site-ffhh: v2020.1.4.0, gluon: v2020.1.4
- v2020.1.3.0: site-ffhh: v2020.1.3.0, gluon: v2020.1.3
- v2019.1.2.0: site-ffhh: v2019.1.2.0, gluon: v2019.1.2
- v2018.2.3.0: site-ffhh: v2018.2.3.0, gluon: v2018.2.3
- v2018.2.1.0: site-ffhh: v2018.2.1.0, gluon: v2018.2.1
- v2018.1.4.2: site-ffhh: v2018.1.4.2, gluon: v2018.1.4
- v2018.1.4.1: site-ffhh: v2018.1.4.1, gluon: v2018.1.4
- v2018.1.4.0: site-ffhh: v2018.1.4.0, gluon: v2018.1.4
- v2018.1.3.0: site-ffhh: v2018.1.3.0, gluon: v2018.1.3
- v2018.1.1.0: site-ffhh: v2018.1.1.0, gluon: v2018.1.1
- v2018.1.0.0: site-ffhh: v2018.1.0.0, gluon: v2018.1 (never rolled out due to issues with the auto updater in gluon)
- 0.9.2: site-ffhh: v0.9.2, gluon: v2017.1.8
- 0.9.1: site-ffhh: v0.9.1, gluon: v2017.1.5
- 0.9.0: site-ffhh: 60f30382209ffc050baa82be9bad3622a1d88d5b, gluon: v2017.1.x (9295abcea7b016b0fe4b05c534ea0731b48ef593) (never rolled out due to 0.9.1)
- 0.8.6: v2016.2.7 Fix gw01-new key, add 3.ntp.services.ffhh to NTP servers, add Firmware signing keys for Alexander and Olli, remove old domain
- 0.8.5: v2016.2.7 Domain split, new package: ffho-ebtables-net-rules
- 0.8.4: v2016.2.7 (updated openwrt/package/network/services/dnsmasq/Makefile: PKG\_VERSION:=2.78 & PKG\_MD5SUM:=6d0241b72c79d2b510776ccc4ed69ca4)
- 0.8.3: v2016.2.6 (ffhh-sued only)
- 0.8.2: v2016.2.5
- 0.8.1: v2016.2.4 (ffhh-sued only)
- 0.8: v2016.1.4
- 0.7.1: v2015.1.2
- 0.7: v2015.1
- 0.6: v2014.4
- 0.5.1: v2014.3.1
- 0.5: v2014.3
- 0.4.2: v2014.2

View file

@ -1,5 +0,0 @@
GLUON_RELEASE="v2023.2.4.0"
targets="ath79-generic ath79-nand ath79-mikrotik bcm27xx-bcm2708 bcm27xx-bcm2709 ipq40xx-generic ipq40xx-mikrotik ipq806x-generic lantiq-xrx200 lantiq-xway mediatek-filogic mediatek-mt7622 mpc85xx-p1010 mpc85xx-p1020 ramips-mt7620 ramips-mt7621 ramips-mt76x8 rockchip-armv8 sunxi-cortexa7 x86-generic x86-geode x86-legacy x86-64"
broken_images=(
'*dir*615*d*'
)

138
build.sh
View file

@ -1,138 +0,0 @@
#!/usr/bin/env bash
set -e
function announce () {
echo '############################' "$@" >&2
}
function usage () {
echo "Usage: $0 -g GLUON_PATH" >&2
echo " -g GLUON_PATH Path to a checkout of the gluon repository." >&2
echo " -t TARGETS Comma separated list of gluon targets to build" >&2
echo " -a Automatically detect and build all targets." >&2
echo " -o OUT_PATH Path to the firmware output directory. Default: ${gluon_out}" >&2
echo " -s SIGNATURE Sign firmware with signature" >&2
echo " -stable Set GLUON_AUTOUPDATER_BRANCH=stable" >&2
echo " -b BROKEN=1" >&2
echo " -v verbose" >&2
echo " -j JOBS Run build with -jJOBS. Default: ${proc}" >&2
}
proc=$(nproc)
gluon_out="${HOME}/firmware"
while [ $# -gt 0 ]; do
case "$1" in
-a)
auto_targets=1
;;
-g)
gluon_path="$2"
shift
;;
-t)
build_targets="$2"
shift
;;
-o)
gluon_out="$2"
shift
;;
-s)
signature="$2"
shift
;;
-stable)
export GLUON_AUTOUPDATER_BRANCH=stable
;;
-b)
export BROKEN=1
;;
-j)
proc="$2"
shift
;;
-v)
verbose=V=s
;;
*)
echo ERROR: Failed to parse: "${1}" >&2
usage
exit 1
;;
esac
shift
done
if [ -z "$gluon_path" ]; then
usage
exit 1
fi
gluon_path=$(realpath "$gluon_path")
gluon_out=$(realpath "$gluon_out")
site_path=$(realpath "$(dirname "${BASH_SOURCE[0]}")")
announce GLUON: "$gluon_path" >&2
announce FFHH SITE PATH: "$site_path" >&2
pushd "$site_path"
# shellcheck source=/dev/null
. ./build.conf
GLUON_AUTOUPDATER_BRANCH="${GLUON_AUTOUPDATER_BRANCH:-experimental}"
[ "${GLUON_AUTOUPDATER_BRANCH}" = "experimental" ] && GLUON_RELEASE="${GLUON_RELEASE}~exp${BUILD_DATE:-$(date +%Y%m%d)}"
export GLUON_RELEASE
export GLUON_AUTOUPDATER_BRANCH
export GLUON_SITEDIR="${site_path}"
export GLUON_OUTPUTDIR="${gluon_out}/${GLUON_RELEASE}/${GLUON_AUTOUPDATER_BRANCH}"
popd
announce GLUON Variables:
env | egrep '^GLUON' | sort
pushd "${gluon_path}"
announce Starting make update...
mkdir -p "${GLUON_OUTPUTDIR}"
make update
# Try to install patches. I wasn't able to figure out how patches in gluon/site/patches work.
for p in "${site_path}"/patches/*.patch; do
if [ -e "$p" ] && [ ! -f "${gluon_path}/${p##*/}" ]; then
announce "Installing patch $p"
patch -p1 < "$p"
touch "${gluon_path}/${p##*/}"
fi
done
if [ "$auto_targets" = "1" ]; then
# detect available targets
targets="$(make list-targets | sort | xargs)"
else
# if a list of build targets has been supplied, only build those
targets="$(echo "${build_targets:-$targets}" | sed -e 's_,_ _g')"
fi
announce "The following targets will be generated: $targets" >&2
for t in $targets; do
announce "Starting build for $t..." >&2
make "-j$(nproc)" "GLUON_TARGET=$t" $verbose
done
# Remove known-broken images
# shellcheck disable=SC2154
for broken_image in "${broken_images[@]}"; do
announce "Removing broken image ${broken_image}..."
find "${GLUON_OUTPUTDIR}/images" -iname "${broken_image}" \( -type f -o -type l \) -ls -exec rm -f {} \;
done
# Generate the images.list
# shellcheck disable=SC2094
( cd "${GLUON_OUTPUTDIR}/images" && ( echo "RELEASE=${GLUON_RELEASE}"; find . -type f ! -iname '*.manifest' ! -iname images.list; find . -type l ! -iname '*.manifest' ) | sed -e 's!^\./\(.*\)$!\1!' -e 's!/! !g' | sort > images.list )
announce Building manifest...
make manifest
if [ -n "${signature}" ]; then
if [ "$GLUON_AUTOUPDATER_BRANCH" == "experimental" ]; then
announce Signing...
"${gluon_path}/contrib/sign.sh" "${signature}" "${GLUON_OUTPUTDIR}/images/sysupgrade/experimental.manifest"
else
echo ERROR: can only sign experimental branch >&2
exit 1
fi
fi
popd

View file

@ -1,75 +0,0 @@
{
domain_names = {
ffhh_nowe = "Hamburg Nordwest",
},
domain_seed = '666668682D6E6F776548616D6275726748616D6275726748616D627572674861',
prefix4 = '10.112.192.0/19',
prefix6 = '2a03:2267:3::/64',
next_node = {
ip4 = '10.112.192.1',
ip6 = '2a03:2267:3::1',
mac = '16:41:95:40:f7:dc',
},
wifi24 = {
ap = {
ssid = "hamburg.freifunk.net",
},
mesh = {
id = '6668682D6E6F7765',
},
},
wifi5 = {
ap = {
ssid = "hamburg.freifunk.net",
},
mesh = {
id = '6668682D6E6F7765',
},
},
mesh = {
vxlan = false,
batman_adv = {
routing_algo = "BATMAN_IV",
},
},
mesh_vpn = {
fastd = {
groups = {
backbone = {
peers = {
gateway01 = {
remotes = { '"gw01-new.hamburg.freifunk.net" port 10007' },
key = 'aa88fb5cc3e729c124589e3714b817a505d809f381d9b3494040c382edfd4f3b',
},
gateway02 = {
remotes = { '"gw02-new.hamburg.freifunk.net" port 10007' },
key = '462b4e21ab5eb0f9de687efd97252880c895ba55cc9cc0755a75347b0965b6e0',
},
gateway03 = {
remotes = { '"gw03-new.hamburg.freifunk.net" port 10007' },
key = 'e15295b86138ac490d611e4100f847ccfb7052d5091ded4659f25940be2c0546',
},
gateway04 = {
remotes = { '"gw04-new.hamburg.freifunk.net" port 10008' },
key = 'a00e092c236c3b56043fb3b5d0b3da3da08d8325fb18e7bae6ed035d50d50669',
},
gateway05 = {
remotes = { '"gw05-new.hamburg.freifunk.net" port 10008' },
key = '291197d88a5ed510a62fec87f30d13315c1e031c62c927c23e1643a72796708f',
},
gateway06 = {
remotes = { '"gw06-new.hamburg.freifunk.net" port 10008' },
key = '8d400e8a9db05b145c36583d46b4170f6b66d1e16177540f8a2f9f5ad0dc4c43',
},
},
},
},
},
},
}

View file

@ -1,75 +0,0 @@
{
domain_names = {
ffhh_ost = "Hamburg Ost",
},
domain_seed = '666668682D6F737448616D6275726748616D6275726748616D6275726748616D',
prefix4 = '10.112.224.0/19',
prefix6 = '2a03:2267:4::/64',
next_node = {
ip4 = '10.112.224.1',
ip6 = '2a03:2267:4::1',
mac = '16:41:95:40:f7:dc',
},
wifi24 = {
ap = {
ssid = "hamburg.freifunk.net",
},
mesh = {
id = '666668682D6F7374',
},
},
wifi5 = {
ap = {
ssid = "hamburg.freifunk.net",
},
mesh = {
id = '666668682D6F7374',
},
},
mesh = {
vxlan = false,
batman_adv = {
routing_algo = "BATMAN_IV",
},
},
mesh_vpn = {
fastd = {
groups = {
backbone = {
peers = {
gateway01 = {
remotes = { '"gw01-new.hamburg.freifunk.net" port 10009' },
key = 'aa88fb5cc3e729c124589e3714b817a505d809f381d9b3494040c382edfd4f3b',
},
gateway02 = {
remotes = { '"gw02-new.hamburg.freifunk.net" port 10009' },
key = '462b4e21ab5eb0f9de687efd97252880c895ba55cc9cc0755a75347b0965b6e0',
},
gateway03 = {
remotes = { '"gw03-new.hamburg.freifunk.net" port 10009' },
key = 'e15295b86138ac490d611e4100f847ccfb7052d5091ded4659f25940be2c0546',
},
gateway04 = {
remotes = { '"gw04-new.hamburg.freifunk.net" port 10010' },
key = 'a00e092c236c3b56043fb3b5d0b3da3da08d8325fb18e7bae6ed035d50d50669',
},
gateway05 = {
remotes = { '"gw05-new.hamburg.freifunk.net" port 10010' },
key = '291197d88a5ed510a62fec87f30d13315c1e031c62c927c23e1643a72796708f',
},
gateway06 = {
key = '8d400e8a9db05b145c36583d46b4170f6b66d1e16177540f8a2f9f5ad0dc4c43',
remotes = { '"gw06-new.hamburg.freifunk.net" port 10010' },
},
},
},
},
},
},
}

View file

@ -1,75 +0,0 @@
{
domain_names = {
ffhh_sued = "Hamburg Süd",
},
domain_seed = '666668682D7375656448616D6275726748616D6275726748616D627572674861',
prefix4 = '10.112.64.0/19',
prefix6 = '2a03:2267:1::/64',
next_node = {
ip4 = '10.112.64.1',
ip6 = '2a03:2267:1::1',
mac = '16:41:95:40:f7:dc',
},
wifi24 = {
ap = {
ssid = "hamburg.freifunk.net",
},
mesh = {
id = '6668682D73756564',
},
},
wifi5 = {
ap = {
ssid = "hamburg.freifunk.net",
},
mesh = {
id = '6668682D73756564',
},
},
mesh = {
vxlan = false,
batman_adv = {
routing_algo = "BATMAN_IV",
},
},
mesh_vpn = {
fastd = {
groups = {
backbone = {
peers = {
gateway01 = {
remotes = { '"gw01-new.hamburg.freifunk.net" port 10003' },
key = 'aa88fb5cc3e729c124589e3714b817a505d809f381d9b3494040c382edfd4f3b',
},
gateway02 = {
key = '462b4e21ab5eb0f9de687efd97252880c895ba55cc9cc0755a75347b0965b6e0',
remotes = { '"gw02-new.hamburg.freifunk.net" port 10003' },
},
gateway03 = {
remotes = { '"gw03-new.hamburg.freifunk.net" port 10003' },
key = 'e15295b86138ac490d611e4100f847ccfb7052d5091ded4659f25940be2c0546',
},
gateway04 = {
remotes = { '"gw04-new.hamburg.freifunk.net" port 10004' },
key = 'a00e092c236c3b56043fb3b5d0b3da3da08d8325fb18e7bae6ed035d50d50669',
},
gateway05 = {
remotes = { '"gw05-new.hamburg.freifunk.net" port 10004' },
key = '291197d88a5ed510a62fec87f30d13315c1e031c62c927c23e1643a72796708f',
},
gateway06 = {
remotes = { '"gw06-new.hamburg.freifunk.net" port 10004' },
key = '8d400e8a9db05b145c36583d46b4170f6b66d1e16177540f8a2f9f5ad0dc4c43',
},
},
},
},
},
},
}

View file

@ -1,75 +0,0 @@
{
domain_names = {
ffhh_west = "Hamburg West",
},
domain_seed = '666668682D7765737448616D6275726748616D6275726748616D627572674861',
prefix4 = '10.112.96.0/19',
prefix6 = '2a03:2267:2::/64',
next_node = {
ip4 = '10.112.96.1',
ip6 = '2a03:2267:2::1',
mac = '16:41:95:40:f7:dc',
},
wifi24 = {
ap = {
ssid = "hamburg.freifunk.net",
},
mesh = {
id = '6668682D77657374',
},
},
wifi5 = {
ap = {
ssid = "hamburg.freifunk.net",
},
mesh = {
id = '6668682D77657374',
},
},
mesh = {
vxlan = false,
batman_adv = {
routing_algo = "BATMAN_IV",
},
},
mesh_vpn = {
fastd = {
groups = {
backbone = {
peers = {
gateway01 = {
remotes = { '"gw01-new.hamburg.freifunk.net" port 10005' },
key = 'aa88fb5cc3e729c124589e3714b817a505d809f381d9b3494040c382edfd4f3b',
},
gateway02 = {
key = '462b4e21ab5eb0f9de687efd97252880c895ba55cc9cc0755a75347b0965b6e0',
remotes = { '"gw02-new.hamburg.freifunk.net" port 10005' },
},
gateway03 = {
remotes = { '"gw03-new.hamburg.freifunk.net" port 10005' },
key = 'e15295b86138ac490d611e4100f847ccfb7052d5091ded4659f25940be2c0546',
},
gateway04 = {
remotes = { '"gw04-new.hamburg.freifunk.net" port 10006' },
key = 'a00e092c236c3b56043fb3b5d0b3da3da08d8325fb18e7bae6ed035d50d50669',
},
gateway05 = {
remotes = { '"gw05-new.hamburg.freifunk.net" port 10006' },
key = '291197d88a5ed510a62fec87f30d13315c1e031c62c927c23e1643a72796708f',
},
gateway06 = {
remotes = { '"gw06-new.hamburg.freifunk.net" port 10006' },
key = '8d400e8a9db05b145c36583d46b4170f6b66d1e16177540f8a2f9f5ad0dc4c43',
},
},
},
},
},
},
}

View file

@ -1,55 +0,0 @@
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2015-04-08 22:00+0100\n"
"Last-Translator: bdobe\n"
"Language-Team: German\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "gluon-config-mode:welcome"
msgstr ""
"Willkommen zum Einrichtungsassistenten für deinen neuen Hamburger "
"Freifunk-Knoten. Fülle das folgende Formular deinen Vorstellungen "
"entsprechend aus und sende es ab. "
"Den unten anzugebenden Knotennamen kannst du beliebig wählen. Denke Dir also etwas schönes aus. Er ist der Name des Knotens im Netzwerk und hat nichts mit dem ausgestrahlten Netzwerknamen (SSID) zu tun. Letzterer ist immer hamburg.freifunk.net."
msgid "gluon-config-mode:domain"
msgstr "Domäne"
msgid "gluon-config-mode:domain-select"
msgstr ""
"Hier kannst du Domäne auswählen, in dem sich dein Knoten befindet. "
"Bitte bedenke, dass sich dein Knoten nur mit Routern in der gleichen Domäne verbinden kann."
msgid "gluon-config-mode:pubkey"
msgstr ""
"<p>Dies ist der öffentliche Schlüssel deines Freifunkknotens. Erst nachdem "
"er auf den Servern des Hamburger Freifunk-Projektes eingetragen wurde, "
"kann sich dein Knoten mit dem Hamburger Mesh-VPN verbinden. "
"Bitte trage dazu diesen Schlüssel, den Namen deines Knotens (<em><%=pcdata(hostname)%></em>) und ein paar andere Informationen unter "
"<a href=\"https://formular.hamburg.freifunk.net/#/new?hostname=<%=pcdata(hostname)%>&amp;key=<%=pubkey%>&amp;mac=<%= sysconfig.primary_mac %>\" target=\"_blank\">https://formular.hamburg.freifunk.net/</a> ein.</p>"
"<div class=\"the-key\">"
" # <%= pcdata(hostname) %>"
" <br/>"
"<%= pubkey %>"
"</div>"
msgid "gluon-config-mode:reboot"
msgstr ""
"<p>Dein Knoten startet gerade neu und wird anschließend versuchen, "
"sich mit anderen Freifunkknoten in seiner Nähe zu "
"verbinden. Weitere Informationen zur "
"Hamburger Freifunk-Community findest du auf "
"<a href=\"https://hamburg.freifunk.net/\">unserer Webseite</a>.</p>"
"<p>Viel Spaß mit deinem Knoten und der Erkundung von Freifunk!</p>"
msgid "gluon-config-mode:novpn"
msgstr ""
"Bitte trage nun den Namen deines Knotens "
"(<em><%=pcdata(hostname)%></em>) und ein paar andere Informationen unter "
"<a href=\"https://formular.hamburg.freifunk.net/#/new?hostname=<%=pcdata(hostname)%>&amp;mac=<%= sysconfig.primary_mac %>\" target=\"_blank\">https://formular.hamburg.freifunk.net/</a> "
"ein."

View file

@ -1,57 +0,0 @@
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2015-04-25 19:00+0100\n"
"Last-Translator: bdobe\n"
"Language-Team: English\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgid "gluon-config-mode:welcome"
msgstr ""
"Welcome the the setup wizard for your new Freifunk Hamburg node. "
"Please fill out and then transmit the following form. "
"You're free to choose your own node name in the field below, so "
"come up with something nice. This will be the name of the node in "
"the network and has nothing to do with the broadcast network name (SSID). "
"The latter is always hamburg.freifunk.net."
msgid "gluon-config-mode:domain"
msgstr "Domain"
msgid "gluon-config-mode:domain-select"
msgstr ""
"Here you have the possibility of selecting the mesh domain in which your node "
"is placed. Please keep in mind that your router only connects with the nodes "
"of the selected domain"
msgid "gluon-config-mode:pubkey"
msgstr ""
"<p>This is the public key for your Freifunk node. You can only "
"connect the node to the Hamburg mesh VPN after the key has been registered on "
"the Freifunk Hamburg servers. "
"Please register your key, the name of your node (<em><%=pcdata(hostname)%></em>), and a bit of additional info at "
"<a href=\"https://formular.hamburg.freifunk.net/#/new?hostname=<%=pcdata(hostname)%>&amp;key=<%=pubkey%>&amp;mac=<%= sysconfig.primary_mac %>\" target=\"_blank\">https://formular.hamburg.freifunk.net/</a>.</p>"
"<div class=\"the-key\">"
" # <%= pcdata(hostname) %>"
" <br/>"
"<%= pubkey %>"
"</div>"
msgid "gluon-config-mode:reboot"
msgstr ""
"<p>The node is currently rebooting and, afterwards, will try to connect to other "
"nearby Freifunk nodes. "
"You can find lots more information about the Freifunk Hamburg community on "
"<a href=\"https://hamburg.freifunk.net/\">our homepage</a>.</p>"
"<p>Have fun with your node and exploring the Freifunk network!</p>"
msgid "gluon-config-mode:novpn"
msgstr ""
"Please enter the name of your node "
"(<em><%=hostname%></em>) and some additional information at "
"<a href=\"https://formular.hamburg.freifunk.net/#/new?hostname=<%=pcdata(hostname)%>&amp;mac=<%= sysconfig.primary_mac %>\" target=\"_blank\">https://formular.hamburg.freifunk.net/</a> "
"."

View file

@ -1,36 +0,0 @@
features({
'autoupdater',
'config-mode-domain-select',
'ebtables-filter-multicast',
'ebtables-filter-ra-dhcp',
'mesh-batman-adv-15',
'mesh-vpn-fastd',
'web-private-wifi',
'radv-filterd',
'respondd',
'status-page',
'web-advanced',
'web-wizard',
})
if not device_class('tiny') then
features({
'wireless-encryption-wpa3',
})
end
packages({
'-gluon-config-mode-geo-location',
'-gluon-config-mode-contact-info',
'gluon-ebtables-source-filter',
'gluon-web-mesh-vpn-fastd',
'iwinfo',
})
if target('x86') then
packages({
'nano',
'htop',
'ethtool',
})
end

View file

@ -1,5 +1,4 @@
GLUON_SITE_FEEDS='ffhh_packages'
PACKAGES_FFHH_PACKAGES_REPO=https://github.com/freifunkhamburg/ffhh-packages.git
PACKAGES_FFHH_PACKAGES_COMMIT=ef9fcc1222f74c3c045b1450537a4b8b80efb56c
PACKAGES_FFHH_PACKAGES_REPO=git://github.com/freifunkhamburg/ffhh-packages.git
PACKAGES_FFHH_PACKAGES_COMMIT=cc08450972722ebcaedf53a6f26cbcc82dc091d0

206
site.conf
View file

@ -1,102 +1,192 @@
{
hostname_prefix = 'GibMirEinenNamen',
config_mode = {
hostname = {
optional = false,
prefill = false,
},
},
hostname_prefix = 'freifunk',
site_name = 'Freifunk Hamburg',
site_code = 'ffhh',
default_domain = 'ffhh_nowe',
opkg = {
extra = {
modules = 'http://updates.hamburg.freifunk.net/multi/archive/%GR/packages/gluon-%GS-%GR/%S',
},
},
prefix4 = '10.112.0.0/18',
prefix6 = 'fd51:2bb2:fd0d::/64',
timezone = 'CET-1CEST,M3.5.0,M10.5.0/3', -- Europe/Berlin
ntp_servers = {'1.ntp.services.ffhh','2.ntp.services.ffhh','3.ntp.services.ffhh'},
ntp_servers = {'1.ntp.services.ffhh','2.ntp.services.ffhh'},
opkg_repo = 'http://opkg.services.ffhh/attitude_adjustment/12.09/%S/packages',
regdom = 'DE',
wifi24 = {
ssid = 'hamburg.freifunk.net',
channel = 1,
mesh = {
mcast_rate = 12000,
},
htmode = 'HT40+',
mesh_ssid = 'f8:d1:11:87:52:2e',
mesh_bssid = 'f8:d1:11:87:52:2e',
mesh_mcast_rate = 12000,
},
wifi5 = {
ssid = 'hamburg.freifunk.net',
channel = 44,
outdoor_chanlist = "100-140",
mesh = {
mcast_rate = 12000,
},
htmode = 'HT40+',
mesh_ssid = 'f8:d1:11:87:52:2e',
mesh_bssid = 'f8:d1:11:87:52:2e',
mesh_mcast_rate = 12000,
},
mesh_vpn = {
next_node = {
ip4 = '10.112.0.1',
ip6 = 'fd51:2bb2:fd0d::1',
mac = '16:41:95:40:f7:dc',
},
fastd_mesh_vpn = {
enabled = true,
fastd = {
configurable = true,
mtu = 1312,
methods = {'salsa2012+umac'},
groups = {
backbone = {
limit = 1,
methods = {'salsa2012+gmac'},
mtu = 1406,
backbone = {
limit = 2,
peers = {
gateway01 = {
key = 'cb09c68e2d2f7d374d47035cd532e0a60b8b3a7447aa5a7f76f4f15c8ffa9e58',
remotes = {'"gw01.hamburg.freifunk.net" port 10000'},
},
gateway02 = {
key = '462b4e21ab5eb0f9de687efd97252880c895ba55cc9cc0755a75347b0965b6e0',
remotes = {'"gw02.hamburg.freifunk.net" port 10000'},
},
gateway03 = {
key = 'e15295b86138ac490d611e4100f847ccfb7052d5091ded4659f25940be2c0546',
remotes = {'"gw03.hamburg.freifunk.net" port 10000'},
},
gateway04 = {
key = 'fca88dd58316f4ab50d2a697123dddf4d0ba3aad52ddeb0ba7835cdbbeb60dbf',
remotes = {'"gw04.hamburg.freifunk.net" port 10000'},
},
gateway05 = {
key = '84986658775167dff6918dc8e0529c4a4524cb1782849a80933ddb6d8c6bd3f5',
remotes = {'"gw05.hamburg.freifunk.net" port 10001'},
},
gateway06 = {
key = 'fb608aa75180ba88b4a3399a6498e68796d200afc1bfd275a0dcb903a31f39b6',
remotes = {'"gw06.hamburg.freifunk.net" port 10000'},
},
gateway07 = {
key = '62ea83b5fbb0fd8cf205f1398698cb29180039b8246b1f69778e8f52cd423612',
remotes = {'"gw07.hamburg.freifunk.net" port 10001'},
},
gateway08 = {
key = '67e9b215248ada3f4ffcc9db0bdf897128f6236a0d4e8d660762b77bebc914d4',
remotes = {'"gw08.hamburg.freifunk.net" port 10001'},
},
gateway09 = {
key = '5f483f6d26ac9106d86c0edcd08cf92c18caf67933719a394915ab809d1fb2bc',
remotes = {'"gw09.hamburg.freifunk.net" port 10001'},
},
gateway10 = {
key = '69c0bafd5c08d4277b339483cf137fe7e732b5bc87c8fbdb636ff7767426b94b',
remotes = {'"gw10.hamburg.freifunk.net" port 10000'},
},
gateway11 = {
key = 'ee7719551bdba725c27a60a031f2faeb44588162c8065a1c651d35b3c9ebc347',
remotes = {'"gw11.hamburg.freifunk.net" port 10000'},
},
gateway12 = {
key = 'facbbfb07525782fcde22b929f36ea508a295619eca35782003d9ca2dd3cc524',
remotes = {'"gw12.hamburg.freifunk.net" port 10001'},
},
gateway13 = {
key = 'd5556881159c7bc649caabf0a72ba7c33ca8bb5fd0c7f21d52f8cbd071185e28',
remotes = {'"gw13.hamburg.freifunk.net" port 10001'},
},
},
},
bandwidth_limit = {
enabled = false,
ingress = 8096,
egress = 1024,
},
},
autoupdater = {
branch = 'stable',
branch = 'experimental',
branches = {
stable = {
name = 'stable',
mirrors = {'http://updates-a.hamburg.freifunk.net/multi/stable/images/sysupgrade','http://updates-b.hamburg.freifunk.net/multi/stable/images/sysupgrade'},
mirrors = {'http://1.updates.services.ffhh/stable/sysupgrade','http://2.updates.services.ffhh/stable/sysupgrade'},
good_signatures = 2,
pubkeys = {
'ef73bc52b929fd11efce9a5c8f0b5463f1766bb995c8a0b3b6bcd7ba45b8b1e6', -- leo
'417ef22f886539ddbcffbad35e9f493195ca53e05f75bd8d8011a4999498b589', -- baldo
'ef73bc52b929fd11efce9a5c8f0b5463f1766bb995c8a0b3b6bcd7ba45b8b1e6', -- leo
'3f0fc50d4e5c893f9f58f98874bd21080b93c28ff5e4d4946352cada1b4e6441', -- andre
'1d37eacbd70f72730b1f5aba246a6a8eab100e2d45dda0163d9ad827f70f88d4', -- gernot
'bd5a70d4c3df30eaa860d615c0e0526b0dda5bc60c09c20972bce4ffa7512659', -- bjoern
'd9992853c0fe1a2e983cc222b6bd26e70d4fb2a53862ac099144e9e8142238d0', -- daniel
'961495a04512e5ba1843fd3c216d8af6ef2fdb19f93055142803e2da26d670b9', -- alexander
'ed6278f168f0382adf4f058cb9c31d8f1145abb968a8626045de7d6d87a0be40', -- olli
},
},
beta = {
name = 'beta',
mirrors = {'http://updates-a.hamburg.freifunk.net/multi/stable/images/sysupgrade','http://updates-b.hamburg.freifunk.net/multi/stable/images/sysupgrade'},
good_signatures = 2,
pubkeys = {
'ef73bc52b929fd11efce9a5c8f0b5463f1766bb995c8a0b3b6bcd7ba45b8b1e6', -- leo
name = 'beta',
mirrors = {'http://1.updates.services.ffhh/beta/sysupgrade','http://2.updates.services.ffhh/beta/sysupgrade'},
good_signatures = 2,
pubkeys = {
'417ef22f886539ddbcffbad35e9f493195ca53e05f75bd8d8011a4999498b589', -- baldo
'ef73bc52b929fd11efce9a5c8f0b5463f1766bb995c8a0b3b6bcd7ba45b8b1e6', -- leo
'3f0fc50d4e5c893f9f58f98874bd21080b93c28ff5e4d4946352cada1b4e6441', -- andre
'1d37eacbd70f72730b1f5aba246a6a8eab100e2d45dda0163d9ad827f70f88d4', -- gernot
'bd5a70d4c3df30eaa860d615c0e0526b0dda5bc60c09c20972bce4ffa7512659', -- bjoern
'd9992853c0fe1a2e983cc222b6bd26e70d4fb2a53862ac099144e9e8142238d0', -- daniel
'961495a04512e5ba1843fd3c216d8af6ef2fdb19f93055142803e2da26d670b9', -- alexander
'ed6278f168f0382adf4f058cb9c31d8f1145abb968a8626045de7d6d87a0be40', -- olli
},
},
},
},
experimental = {
name = 'experimental',
mirrors = {'http://updates-a.hamburg.freifunk.net/multi/experimental/images/sysupgrade','http://updates-b.hamburg.freifunk.net/multi/experimental/images/sysupgrade'},
mirrors = {'http://1.updates.services.ffhh/experimental/sysupgrade','http://2.updates.services.ffhh/experimental/sysupgrade'},
good_signatures = 1,
pubkeys = {
'1a0112fe489860068480c611c5dc56196c2f1a645db651ea2ed19ae0f0e8e1d1', -- builder1/2
'1a0112fe489860068480c611c5dc56196c2f1a645db651ea2ed19ae0f0e8e1d1', -- 1.builder
},
},
},
},
poe_passthrough = false,
simple_tc = {
mesh_vpn = {
ifname = 'mesh-vpn',
enabled = false,
limit_egress = 500,
limit_ingress = 8000,
},
},
config_mode = {
msg_welcome = [[
Willkommen zum Einrichtungsassistenten für deinen neuen Hamburger
Freifunk-Knoten. Fülle das folgende Formular deinen Vorstellungen
entsprechend aus und sende es ab.
Den unten anzugebenden Knotennamen kannst du beliebig wählen. Denke Dir also etwas schönes aus. Er ist der Name des Knotens im Netzwerk und hat nichts mit dem ausgestrahlten Netzwerknamen (SSID) zu tun. Letzterer ist immer hamburg.freifunk.net.
]],
msg_nopubkey = [[
Bitte trage nun den Namen deines Knotens
(<em><%=hostname%></em>) und ein paar andere Informationen unter
<a href="http://formular.hamburg.freifunk.net/#/new?hostname=<%=hostname%>&mac=<%= sysconfig.primary_mac %>" target="_blank">http://formular.hamburg.freifunk.net/</a>
ein.
]],
msg_pubkey = [[
Dies ist der öffentliche Schlüssel deines Freifunkknotens. Erst nachdem
er auf den Servern des Hamburger Freifunk-Projektes eingetragen wurde,
kann sich dein Knoten mit dem Hamburger Mesh-VPN verbinden. Bitte
trage dazu diesen Schlüssel, den Namen deines Knotens
(<em><%=hostname%></em>) und ein paar andere Informationen unter
<a href="http://formular.hamburg.freifunk.net/#/new?hostname=<%=hostname%>&key=<%=pubkey%>&mac=<%= sysconfig.primary_mac %>" target="_blank">http://formular.hamburg.freifunk.net/</a>
ein.
]],
msg_reboot = [[
<p>
Dein Knoten startet gerade neu und wird anschließend versuchen,
sich mit anderen Freifunkknoten in seiner Nähe zu
verbinden. Weitere Informationen zur
Hamburger Freifunk-Community findest du auf
<a href="https://hamburg.freifunk.net/">unserer Webseite</a>.
</p>
<p>
Viel Spaß mit deinem Knoten und der Erkundung von Freifunk!
</p>
]],
},
legacy = {
version_files = {'/etc/.freifunk_version_keep'},
old_files = {'/etc/config/config_mode', '/etc/config/freifunk'},
config_mode_configs = {'config_mode.@wizard{0}', 'freifunk.@wizard{0}'},
fastd_configs = {'mesh_vpn'},
mesh_ifname = 'freifunk',
tc_configs = {'freifunk.@bandwidth{0}'},
wifi_names = {'wifi_freifunk', 'wifi_freifunk5', 'wifi_mesh', 'wifi_mesh5'},
},
}

30
site.mk
View file

@ -1,11 +1,27 @@
GLUON_MULTIDOMAIN := 1
GLUON_DEPRECATED := upgrade
GLUON_SITE_PACKAGES := \
gluon-alfred \
gluon-announced \
gluon-autoupdater \
gluon-config-mode-ffhh \
gluon-ebtables-filter-multicast \
gluon-ebtables-filter-ra-dhcp \
gluon-legacy \
gluon-luci-admin \
gluon-luci-autoupdater \
gluon-luci-portconfig \
gluon-next-node \
gluon-mesh-batman-adv \
gluon-mesh-vpn-fastd \
gluon-radvd \
gluon-status-page \
iwinfo \
iptables \
haveged
GLUON_AUTOUPDATER_ENABLED ?= 1
GLUON_PRIORITY ?= 7
DEFAULT_GLUON_RELEASE := 0.5.2
# Region code required for some images; supported values: us eu
GLUON_REGION ?= eu
# Allow overriding the release number from the command line
GLUON_RELEASE ?= $(DEFAULT_GLUON_RELEASE)
GLUON_LANGS ?= en de
GLUON_PRIORITY ?= 0