-- This is an example site configuration for Gluon v2020.2.3 -- -- Take a look at the documentation located at -- https://gluon.readthedocs.io/ for details. -- -- This configuration will not work as is. You're required to make -- community specific changes to it! { -- Used for generated hostnames, e.g. freifunk-abcdef123456. (optional) -- hostname_prefix = 'freifunk-', -- Name of the community. site_name = 'Freifunk Alpha Centauri', -- Shorthand of the community. site_code = 'ffxx', -- 32 bytes of random data, encoded in hexadecimal -- This data must be unique among all sites and domains! -- Can be generated using: echo $(hexdump -v -n 32 -e '1/1 "%02x"' </dev/urandom) domain_seed = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -- Prefixes used within the mesh. -- prefix6 is required, prefix4 can be omitted if next_node.ip4 -- is not set. prefix4 = '10.xxx.0.0/20', prefix6 = 'fdxx:xxxx:xxxx::/64', -- Timezone of your community. -- See https://openwrt.org/docs/guide-user/base-system/system_configuration#time_zones timezone = 'CET-1CEST,M3.5.0,M10.5.0/3', -- List of NTP servers in your community. -- Must be reachable using IPv6! ntp_servers = {'1.ntp.services.ffxx'}, -- Wireless regulatory domain of your community. regdom = 'DE', -- Wireless configuration for 2.4 GHz interfaces. wifi24 = { -- Wireless channel. channel = 1, -- ESSIDs used for client network. ap = { -- ssid = 'alpha-centauri.freifunk.net', (optional - SSID for open client network) -- disabled = true, -- (optional) -- Configuration for a backward compatible OWE network below. -- owe_ssid = 'owe.alpha-centauri.freifunk.net', -- (optional - SSID for OWE client network) -- owe_transition_mode = true, -- (optional - enables transition-mode - requires ssid as well as owe_ssid) }, mesh = { -- Adjust these values! id = 'ueH3uXjdp', -- usually you don't want users to connect to this mesh-SSID, so use a cryptic id that no one will accidentally mistake for the client WiFi mcast_rate = 12000, -- disabled = true, -- (optional) }, }, -- Wireless configuration for 5 GHz interfaces. -- This should be equal to the 2.4 GHz variant, except -- for channel. wifi5 = { channel = 44, outdoor_chanlist = '100-140', ap = { ssid = 'alpha-centauri.freifunk.net', }, mesh = { -- Adjust these values! id = 'ueH3uXjdp', mcast_rate = 12000, }, }, mesh = { vxlan = true, batman_adv = { routing_algo = 'BATMAN_IV', }, }, -- The next node feature allows clients to always reach the node it is -- connected to using a known IP address. next_node = { -- anycast IPs of all nodes -- name = { 'nextnode.location.community.example.org', 'nextnode', 'nn' }, ip4 = '10.xxx.0.xxx', ip6 = 'fdxx:xxxx:xxxx::xxxx', }, -- Options specific to routing protocols (optional) -- mesh = { -- Options specific to the batman-adv routing protocol (optional) -- batman_adv = { -- Gateway selection class (optional) -- The default class 20 is based on the link quality (TQ) only, -- class 1 is calculated from both the TQ and the announced bandwidth -- gw_sel_class = 1, -- }, -- }, mesh_vpn = { -- enabled = true, mtu = 1312, fastd = { -- Refer to https://fastd.readthedocs.io/en/latest/ to better understand -- what these options do. -- List of crypto-methods to use. methods = {'salsa2012+umac'}, -- configurable = true, -- syslog_level = 'warn', groups = { backbone = { -- Limit number of connected peers to reduce bandwidth. limit = 1, -- List of peers. peers = { peer1 = { key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -- This is a list, so you might add multiple entries. remotes = {'ipv4 "xxx.somehost.invalid" port xxxxxx'}, }, peer2 = { key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -- You can also omit the ipv4 to allow both connection via ipv4 and ipv6 remotes = {'"xxx.somehost2.invalid" port xxxxx'}, }, }, -- Optional: nested peer groups -- groups = { -- backbone_sub = { -- ... -- }, -- ... -- }, }, -- Optional: additional peer groups, possibly with other limits -- backbone2 = { -- ... -- }, }, }, bandwidth_limit = { -- The bandwidth limit can be enabled by default here. enabled = false, -- Default upload limit (kbit/s). egress = 200, -- Default download limit (kbit/s). ingress = 3000, }, }, autoupdater = { -- Default branch. Don't forget to set GLUON_BRANCH when building! branch = 'stable', -- List of branches. You may define multiple branches. branches = { stable = { name = 'stable', -- List of mirrors to fetch images from. IPv6 required! mirrors = {'http://1.updates.services.ffhl/stable/sysupgrade'}, -- Number of good signatures required. -- Have multiple maintainers sign your build and only -- accept it when a sufficient number of them have -- signed it. good_signatures = 2, -- List of public keys of maintainers. pubkeys = { 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -- Alice 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -- Bob 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', -- Mary }, }, }, }, }