8688d47c65
rotuer: create resolv.conf
2023-08-28 22:02:28 +01:00
e86daf9bbc
default value for services.default
...
as a default default target, start all the services
2023-08-28 22:02:28 +01:00
23ccfec5fb
update examples so they build again
2023-08-28 22:02:28 +01:00
31f0213b6f
convert network link/address to module-based-service
...
... and make bridge use it.
We also had to convert bridge back into a pair of services.
Downstreams want to depend on the bridge it self being configured
even if not necessarily all the members are up. e.g. don't want
to break ssh on lan if there's a misconfigured wlan device
2023-08-28 22:02:28 +01:00
540a1dfd76
remove interface.device
...
build-time uses can mostly be replaced with interface.name
for runtime uses, switch to $(output ${interface} name)
2023-08-28 22:02:28 +01:00
6f92f8fa8b
merge bridge services into one
2023-08-16 23:29:53 +01:00
3ea40f95dc
convert pppoe to serviceDefn
2023-08-10 22:53:45 +01:00
2942c465b9
add ssh module
2023-08-10 22:53:21 +01:00
2414dd4b55
convert ntp to serviceDefn
2023-08-05 14:16:54 +01:00
93e04bb834
convert bridge service to serviceDefn
2023-08-05 14:10:14 +01:00
f82501d278
update hostapd to "build" syntax
2023-08-05 12:21:18 +01:00
90c1d59aca
convert firewall service to new serviceDefn
...
this is a bit kludgey with dependencies, need to
come back and look at that
2023-08-05 12:07:35 +01:00
fbb2c04132
move module-based-service parameter types into service
...
This is in preparation for writing something that extracts them
into documentation.
user configurations now call config.system.service.foo.build { ...params }
instead of config.system.service.foo
the parameter type definitions themselves now move into the
config stanza of the module referencing the service
new helper function liminix.callService
The only service moved so far is dnsmasq
2023-08-04 20:39:29 +01:00
9994c161d4
DRY up wireless config
2023-07-22 23:37:01 +01:00
bf1d9beec1
add first version of ntp module
2023-07-22 23:25:25 +01:00
4396afa97b
inline excessive lets
2023-07-20 12:05:36 +01:00
9b70fd62f6
extract bridge to module-based services
2023-07-20 12:02:09 +01:00
86e73317ee
alias config.system.service
2023-07-20 11:28:45 +01:00
648ea5613b
use module-based-service for hostapd
2023-07-16 17:51:50 +01:00
1117f98afc
remove redundant let
2023-07-16 17:51:50 +01:00
d7f3e05063
turn nftables firewall into a service-providing module
2023-07-16 17:51:50 +01:00
669af24247
make a module for dnsmasq
2023-07-14 23:18:21 +01:00
c13defc891
rename modules/ppp.nix -> modules/ppp/default.nix
2023-07-14 21:08:33 +01:00
69e6eb5a89
accept attr args to pppoe service, and typecheck them
...
We use (abuse, arguably) the nixos module system for typechecking. Un
the plus side, it gives us documentation of the options and their
expected types. On the downside, the error message doesn't tell us
the file in which the error was encountered.
(This is subject to change, if I can find a better way)
2023-07-14 16:53:36 +01:00
9441f48819
new ppp module, used by rotuer
...
The objective here is that services which depend on global config
(e.g. kernel config or busybox options or static paths in the
filesystem) now live under config.system.service, and are added
to that collection by the module that defines the necessary state.
This is a first step: the services will be configured by a typechecked
attr set instead of the arbitrary arguments that
pkgs.liminix.networking.pppoe accepts
2023-07-13 19:44:14 +01:00
2e50368bd2
rename config.outputs to config.system.outputs
...
New rules: everything under "config" that isn't actually configuration
(e.g. build products) will in future live in config.system. This is
the first step.
2023-07-13 19:24:59 +01:00
7c06f30675
set ipv6 wan address to that provided by dhcpv6
2023-07-08 23:08:25 +01:00
0c41e9305c
extract service output watcher to fennel module
2023-07-08 23:08:24 +01:00
e7de889403
explain why all the examples are misspelled
2023-07-07 17:45:23 +01:00
a12e5888e9
rotuer: remove hardcoded wan address
2023-07-05 20:34:30 +01:00
2de4d7a8f9
fennel: extract some common functions into a shareable module
2023-07-05 20:23:27 +01:00
41687e916d
rename luaSmall package to lua
2023-07-02 18:19:54 +01:00
3900683413
simplify protocol for watchers of service output directories
...
Previously: the service wrote a timestamp and the receiver
read and parsed it to see if there was new data
Now: the service writes and removes a .lock file to prevent
the receiver reading partial data. The receiver is responsible
for remembering the *previous* state and only updating if it's changed
2023-07-02 12:09:13 +01:00
5532144747
hardcode global wan address, temporarily
2023-07-01 12:50:06 +01:00
9aa5ff6ed1
make a package for odhcpc-script
2023-06-30 20:02:03 +01:00
b6e72504d6
ipv6 default route
...
needs to specify the ppp0 *peer* address not the local address
2023-06-30 10:17:33 +01:00
5306b36181
ipv4 nat rules
2023-06-28 23:51:37 +01:00
1f1164cc98
allow dhcp client on wan
2023-06-28 23:51:21 +01:00
8affb151b5
rotuer: enable ipv6 forwarding
2023-06-28 22:31:01 +01:00
a9848b9668
firewall: enable incoming ssh and dhcp6
2023-06-28 22:20:45 +01:00
25eecabc6d
typo
2023-06-28 22:19:11 +01:00
80b6f62896
comment-out example of allowed incoming
2023-06-27 22:33:24 +01:00
64e0ef5931
use numeric proto number (tautology...) for HIP
2023-06-27 21:25:30 +01:00
78d223a839
move nftables fib rule to the prerouting hook
2023-06-27 21:23:15 +01:00
6101f3f3d8
load necessary kernel modules for firewall
2023-06-27 21:18:09 +01:00
15be80e9de
remove dead config option
2023-06-22 17:46:57 +01:00
26cb331d8b
remove dead config optiuon
2023-06-22 16:56:30 +01:00
5e45817f98
example rotuer-secrets
2023-06-22 16:54:24 +01:00
b002a94e07
rotuer: use firewallgen to make packet filter rules
2023-06-20 20:20:32 +01:00
340f7211ef
remove unused packages
2023-06-20 20:13:59 +01:00
a65bb9d585
improve file-exists? function
2023-06-18 17:41:09 +01:00
3f4dbfcfd3
ipv6 prefix delegation for rotuer
...
much tidying needed, but it works
2023-05-31 23:29:05 +01:00
d82173133c
odhcpc script: mkdir
2023-05-30 21:00:20 +01:00
cb30ce52eb
rotuer: use writeFennelScript for odhcpc update script
2023-05-30 18:20:14 +01:00
fa7e682e87
dhcp6c readiness notification
2023-05-26 18:36:44 +01:00
447f068569
partly support getting IPv6 addresses
...
- gets interface id from ppp
- runs odhcpc to get RA and prefix delegation
- doesn't do anything useful with the data yet
2023-05-24 23:01:50 +01:00
0173a9ced9
set PATH correctly in ssh sessions
...
for a non=interactive shell ("ssh linminix foo") ash does not source
*any* startup files, so we need to set this to something more useful
than /bin:usr/bin
2023-05-21 17:07:19 +01:00
a48d51ffdc
keep dropbear host keys in /persist if it exists
2023-05-21 12:01:42 +01:00
f249c12bec
cruft
2023-05-20 22:48:30 +01:00
eadd982a79
rotuer: set hostname
2023-05-20 22:34:57 +01:00
b0a0fdcfcc
add "standard" module, which includes flashimage kexec & jffs2
...
most systems need most of these, so it makes writing the docs a
lot easier
2023-05-17 15:38:22 +01:00
6d6dbe1cbb
tftpboot: allow padding image with freeSpaceBytes
...
this is useful for writable filesystems so that there's more than
an erase block of space to write into
2023-04-26 22:15:19 +01:00
6adab44fcf
rotuer; run chronyd for accurate time
2023-04-23 20:56:20 +01:00
4342d3403f
make rotuer example build again
2023-04-23 20:56:20 +01:00
fe99abc450
shrink rsync
...
remove openssl requirement, it uses it for "optimised assembly
versions" of md5 - but only on x86/arm/sparc not mips anyway
2023-04-10 22:57:50 +01:00
0687ae7f5c
rename flashable->flashimage, o.squashfs to rootfs
...
"rootfs" describes what it is for, "squashfs" merely says
how it's implemented
(also, rootfs-as-jffs2 will soon be added)
2023-04-10 18:13:27 +01:00
2e15acd61c
whitespace
2023-04-10 17:46:39 +01:00
404162ac1e
support all kinds of boot for arhcive
...
now we can have flashable and tftpboot in the same configuration
2023-03-24 17:14:15 +00:00
561d55ed5f
arhcive: rsync daemon needs a group
2023-03-24 17:10:49 +00:00
1c36f1b373
demonstrate adding ssh keys
2023-03-23 13:18:05 +00:00
beb6e260d4
PoC support for hardware watchdog
2023-03-23 13:18:05 +00:00
6e95932e0e
untested fix for unable to mount usb disk at boot
2023-03-18 14:30:10 +00:00
153cbec573
fix pathnames of modules
2023-03-18 14:30:10 +00:00
53810e1f5f
tidy up a bit
2023-03-10 23:39:32 +00:00
be06363e4f
new example for rsync/usb backup server
2023-03-10 18:42:32 +00:00
8b2fcb5336
move non-normative examples into a subdirectory
2023-03-10 14:38:13 +00:00