docs: enhanced site.conf documentation

Better default values and comments how to use certain config values.
Thanks to https://github.com/ffmus/site-ffwaf/blob/master/site.conf
This commit is contained in:
Ruben Barkow 2015-10-08 01:15:19 +02:00 committed by ruben
parent 9640e66005
commit f2a1a904fc

View File

@ -12,7 +12,9 @@ Configuration
The ``site.conf`` is a lua dictionary with the following defined keys. The ``site.conf`` is a lua dictionary with the following defined keys.
hostname_prefix hostname_prefix
A string which shall prefix the default hostname of a device. An optional string which would prefix the generated default hostname of a device.
If you want to force the user to think about a unique name enter an invalid prefix
with spaces like 'Enter a name for your node'
site_name site_name
The name of your community. The name of your community.
@ -52,7 +54,7 @@ opkg_repo : optional
opkg_repo = 'http://opkg.services.ffeh/attitude_adjustment/12.09/%S/packages' opkg_repo = 'http://opkg.services.ffeh/attitude_adjustment/12.09/%S/packages'
The `%S` is a variable, which is replaced with the platform of an device The `%S` is a variable, which is replaced with the platform of a device
during the build process. during the build process.
regdom regdom
@ -77,24 +79,26 @@ wifi24
This will only affect new installations. This will only affect new installations.
Upgrades will not changed the disabled state. Upgrades will not changed the disabled state.
``ap`` requires a single parameter, a string, named ``ssid`` which sets the interface's ESSID. ``ap`` requires a single parameter, a string, named ``ssid`` which sets the
interface's ESSID.
``mesh`` requires a single parameter, a string, named ``id`` which sets the mesh id. ``mesh`` requires a single parameter, a string, named ``id`` which sets the mesh id.
``ibss`` requires two parametersr: ``ssid`` (a string) and ``bssid`` (a MAC). ``ibss`` requires two parametersr: ``ssid`` (a string) and ``bssid`` (a MAC).
An optional parameter ``vlan`` (integer) is supported. An optional parameter ``vlan`` (integer) is supported.
Both ``mesh`` and ``ibss`` accept an optional ``mcast_rate`` (kbit/s) parameter for setting the default multicast datarate. Both ``mesh`` and ``ibss`` accept an optional ``mcast_rate`` (kbit/s) parameter for
setting the default multicast datarate.
:: ::
wifi24 = { wifi24 = {
channel = 11, channel = 6,
htmode = 'HT20', htmode = 'HT20',
ap = { ap = {
ssid = 'entenhausen.freifunk.net', ssid = 'gothamcity.freifunk.net',
}, },
mesh = { mesh = {
id = 'entenhausen-mesh', id = 'gothamcity-mesh',
mcast_rate = 12000, mcast_rate = 12000,
}, },
ibss = { ibss = {
@ -123,10 +127,10 @@ fastd_mesh_vpn
The `enabled` option can be set to true to enable the VPN by default. The `enabled` option can be set to true to enable the VPN by default.
If `configurable` is `false` or unset, the method list will be replaced on updates If `configurable` is set to `false` or unset, the method list will be replaced on updates
with the list in the site configuration. Setting `configurable` to `true` will allow the user to with the list from the site configuration. Setting `configurable` to `true` will allow the user to
add the method ``null`` to the front of the method list or remove ``null`` from it, add the method ``null`` to the beginning of the method list or remove ``null`` from it,
and make this change survive updates. Settings configurable is necessary for the and make this change survive updates. The settings `configurable` is necessary for the
package `gluon-luci-mesh-vpn-fastd`, which adds a UI for this configuration. package `gluon-luci-mesh-vpn-fastd`, which adds a UI for this configuration.
In any case, the ``null`` method should always be the first method in the list In any case, the ``null`` method should always be the first method in the list
@ -136,20 +140,43 @@ fastd_mesh_vpn
fastd_mesh_vpn = { fastd_mesh_vpn = {
methods = {'salsa2012+umac'}, methods = {'salsa2012+umac'},
-- enabled = true, -- enabled = true,
-- configurable = true, -- configurable = true,
mtu = 1280, mtu = 1280,
groups = { groups = {
backbone = { backbone = {
-- Limit number of connected peers to reduce bandwidth.
limit = 1, limit = 1,
peers = { peers = {
peer1 = { peer1 = {
key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
remotes = {'ipv4 "vpn1.entenhausen.freifunk.net" port 10000'}, -- you might add multiple entries.
remotes = {
'ipv4 "gw0.gothamcity.freifunk.net" port 10000',
'ipv6 "gw0.gothamcity.freifunk.net" port 10000',
},
}, },
} peer2 = {
key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
-- You can also omit the ipv4 to allow both connection via ipv4 and ipv6
remotes = {
'"gw1.gothamcity.freifunk.net" port 10000',
},
},
},
} }
} -- Optional: nested peer groups
-- groups = {
-- backbone_sub = {
-- ...
-- },
-- ...
-- },
},
-- Optional: additional peer groups, possibly with other limits
-- backbone2 = {
-- ...
-- },
} }
mesh_on_wan : optional mesh_on_wan : optional
@ -163,15 +190,24 @@ autoupdater : package
:: ::
autoupdater = { autoupdater = {
branch = 'experimental', branch = 'stable',
branches = { branches = {
stable = { stable = {
name = 'stable', name = 'stable',
-- List of mirrors to fetch images from. IPv6 required!
mirrors = { mirrors = {
'http://[fdca:ffee:babe:1::fec1]/firmware/stable/sysupgrade/', 'http://[fdca:ffee:babe:1::fec1]/firmware/stable/sysupgrade/',
'http://[fdca:ffee:babe:1::fec2]/firmware/stable/sysupgrade/', 'http://services.gothamcity.freifunk.net/firmware/stable/sysupgrade/',
}, },
good_signatures = 2,
-- Number of good signatures required.
-- Have multiple maintainers sign your build and only
-- accept it when a sufficient number of them have
-- signed it, for ex. 3 for stable and 1 for experimental
good_signatures = 3,
-- List of public keys of maintainers.
pubkeys = { pubkeys = {
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', -- someguy 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', -- someguy
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', -- someother 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', -- someother
@ -181,9 +217,9 @@ autoupdater : package
} }
roles : optional roles : optional
Optional role definitions. With this nodes will announce their role inside the mesh. Optional role definitions. Nodes will announce their role inside the mesh.
In the backend this adds the facility to distinguish between normal, backbone and This will allow in the backend to distinguish between normal, backbone and
service nodes or even gateways (if they advertise the role, also). It is up to service nodes or even gateways (if they advertise that role). It is up to
the community which roles to define. See the section below as an example. the community which roles to define. See the section below as an example.
``default`` takes the default role which is set initially. This value should be ``default`` takes the default role which is set initially. This value should be
part of ``list``. If you want node owners to change the role via config mode add part of ``list``. If you want node owners to change the role via config mode add
@ -205,21 +241,25 @@ roles : optional
}, },
simple_tc : package simple_tc : package
Uplink traffic control, ingress and egress values are specified in kbit/s. Uplink Bandwidth limiting
:: ::
simple_tc = { simple_tc = {
mesh_vpn = { mesh_vpn = {
ifname = 'mesh-vpn', ifname = 'mesh-vpn',
-- You may enable it by default here.
enabled = false, enabled = false,
limit_egress = 200, -- Default upload limit (kbit/s).
limit_ingress = 3000, limit_egress = 500,
-- Default download limit (kbit/s).
limit_ingress = 4000,
}, },
}, },
setup_mode : package setup_mode : package
Allows skipping setup mode (config mode) at first boot when attribute Allows skipping setup mode (config mode) at first boot when attribute
``skip`` is set to ``true``. This is optional and may be left out. ``skip`` is set to ``true``. This is optional and may be left out. If set to `true`,
make sure that you enter a valid `hostname_prefix`.
:: ::
setup_mode = { setup_mode = {
@ -248,7 +288,7 @@ The ``site.mk`` is a Makefile which should define constants
involved in the build process of Gluon. involved in the build process of Gluon.
GLUON_SITE_PACKAGES GLUON_SITE_PACKAGES
Defines a list of packages which should installed additional Defines a list of packages which should be installed additionally
to the ``gluon_core`` package. to the ``gluon_core`` package.
GLUON_RELEASE GLUON_RELEASE
@ -259,7 +299,7 @@ GLUON_PRIORITY
for more information). for more information).
GLUON_LANGS GLUON_LANGS
List of languages (as two-letter-codes) to include for the web interface. Should always contain List of languages (as two-letter-codes) to be included in the web interface. Should always contain
``en``. ``en``.
.. _site-config-mode-texts: .. _site-config-mode-texts: