Commit Graph

1574 Commits

Author SHA1 Message Date
Daniel Barlow
643e2ec376 add tiny bit of phram info 2025-04-07 23:39:40 +01:00
Daniel Barlow
887fe16020 review installation docs 2025-04-07 23:33:10 +01:00
Daniel Barlow
6b61ba3b52 move Contributions to the top of the Development section
and various minor edits
2025-04-07 21:40:42 +01:00
Daniel Barlow
a0b36be5e4 randomly proofread small sections 2025-04-06 23:53:03 +01:00
Daniel Barlow
9bc9a077e3 fix refs and raise heading levels in generated hardware doc 2025-04-06 23:46:24 +01:00
Daniel Barlow
9f501018bf include all the doc sections in index 2025-04-06 21:38:17 +01:00
Daniel Barlow
de2757b798 extract ci doc derivation into its own file 2025-04-06 21:37:18 +01:00
Daniel Barlow
de861a2ee0 convert rst to asciidoc
for i in *.rst ; do pandoc -f rst -t asciidoc -o `basename $i .rst`.adoc $i ;done
2025-04-06 18:16:53 +01:00
Daniel Barlow
936eb1a7cd setup to parse asciidoc 2025-04-06 18:10:35 +01:00
Daniel Barlow
e4aad311a8 think 2025-04-02 21:09:13 +01:00
Daniel Barlow
6674826990 think 2025-04-02 21:08:49 +01:00
Daniel Barlow
97ff2f3009 think 2025-03-31 23:22:04 +01:00
Daniel Barlow
210b41efc0 improve robustness of ppp readiness notification
there was a race where ip-up could write ifname and then
ip6-up could write its outputs and then test ifname and
signal ready before ip-up had written the rest of its outputs
2025-03-31 23:17:50 +01:00
Daniel Barlow
53c6d506cf dhcp6c subscribe to ppp ifindex
when the peer bounces ppp, s6 will restart the ppp process but not
restart the dependent services (because the service isn't considered
to have gone down)

so the dependent services need to notice when the outputs from ppp
have changed
2025-03-31 23:15:28 +01:00
Daniel Barlow
01fe2159b4 ppp: write ifindex as output
because what happens if the service is restarted but the new ppp0 is
a different interface than the old one so that services which had
bound to it with the old name are now not getting new data

(I am not 100% that this actually happens but it seems like it would
be good to avoid it if it does)
2025-03-31 23:11:30 +01:00
Daniel Barlow
d7d19b5ed0 dhcp6 client: fix service dir in address and prefix acquirers
the scripts now expect the actual service dir instead of the .outputs
subdir
2025-03-31 23:06:40 +01:00
Daniel Barlow
ee683f2202 firewall: fix syntax of icmp v4 rule 2025-03-31 23:03:24 +01:00
Daniel Barlow
d9723aeb87 secrets subscriber: make restart-all work 2025-03-31 23:01:48 +01:00
Daniel Barlow
46ed8f0199 add bandwidth as a service option for ppp (l2tp, pppoe) 2025-03-27 20:23:26 +00:00
Daniel Barlow
dd44fbaec1 rate limit for v4 icmp 2025-03-27 20:21:48 +00:00
Daniel Barlow
89065be6cd bandwidth is bits/second so divide by 8 2025-03-27 20:21:14 +00:00
Daniel Barlow
420320e434 firewall: remove unused args/names/vars 2025-03-27 18:40:07 +00:00
Daniel Barlow
9ecd2b4fb4 think 2025-03-25 23:55:00 +00:00
Daniel Barlow
1a6160bcab firewall: show how to ratelimit icmp6 to 5% of available bandwidth
it's a little klunky as yet, requires setting properties.bandwidth on
the interface service
2025-03-25 23:53:02 +00:00
Daniel Barlow
b1bf13bb01 add svc:directory, mostly for use in debugging messages 2025-03-25 23:47:01 +00:00
Daniel Barlow
c3f550698d watch-outputs fix update logic
it was only working by accident, when it worked, which was by no
means all of the time

note that we unconditionally perform the action (restart or whatever)
once we've started and got the initial state of the outputs. That's
because we have no idea whether the outputs changed in the interval
between the controlled service initially starting and watch-outputs
starting, so updates in that interval could be lost
2025-03-25 23:44:21 +00:00
Daniel Barlow
05991225de anoia.svc allow open of a service that is not yet running
we change the inotify watcher so that it attempts to monitor
/run/service as well as /run/service/foo. If foo doesn't yet exist
then that call to addwatch fails, so we need to be looking at the
parent if we are to be told when foo gets created
2025-03-25 23:37:58 +00:00
Daniel Barlow
7ce1c6bb7d add realpath to lualinux 2025-03-24 22:39:59 +00:00
Daniel Barlow
8440378a39 anoia: make dirname handle tralning / like posix 2025-03-24 22:37:24 +00:00
Daniel Barlow
e5cfd41013 add nft_limit kmodule for rate limiting in firewall 2025-03-21 21:19:48 +00:00
Daniel Barlow
0ae5689a40 support maps in firewallgen 2025-03-21 21:19:18 +00:00
Daniel Barlow
45047dc023 squahs falls back 2025-03-21 21:09:05 +00:00
Daniel Barlow
3673804b93 think 2025-03-21 21:08:17 +00:00
Daniel Barlow
be03e9e8c8 service outputs falls back to properties (untested) 2025-03-18 18:38:04 +00:00
Daniel Barlow
4e51977ae0 provide properties attr to services
properties are similar to outputs, but are different in that they are
fixed values (do not change) and are present even when the service is
down

if the attribute is present and an attrset, this will write the
equivalent recursive directory structure to $out/.properties/
2025-03-12 23:35:56 +00:00
Daniel Barlow
2b0972ed73 svc.open accepts a /nix/store folder not an outputs folder
this mostly makes things simpler
2025-03-11 00:21:44 +00:00
Daniel Barlow
f22237a3b3 doc: filter src attribute to not rebuild as much 2025-03-10 23:08:37 +00:00
Daniel Barlow
9dc0f25587 min-copy-clocure test: ensure sshd up before starting
this test goes wrong intermittently in CI, see if this makes it more
reliable
2025-03-09 21:37:13 +00:00
Daniel Barlow
9ab77a7d7e remove unused function 2025-03-09 20:44:35 +00:00
Daniel Barlow
c6918fec00 firewall: use extraText for zone set contents
* the lua necessary is quite wordy, but it's less of a hack than
post-processing the rules file with pseudo-sed to get rid of `elements
= { }` lines

* also switch from stop/starting the firewall service to using a
signal, so that we don't go briefly offline every time a new interface
appears
2025-03-09 20:42:02 +00:00
Daniel Barlow
d4e46dbe28 secrets/subscriber don't depend on the services we're watching
this means a watched service can stop and start without killing
the subscriber, and that we can watch for services that don't
yet exist
2025-03-09 20:35:40 +00:00
Daniel Barlow
d1f87a56e0 secrets/subscriber: use correct numbers for signals to s6-svc 2025-03-09 20:34:29 +00:00
Daniel Barlow
8c39b47cae output-template: allow splicing statements instead of expression
if the text inside the delimiters begins with ; (a semicolon) then
the rest of it is expected to be one or more Lua statements. It needs
to say `return "foo"` to interpolate anything, as there is no
implicit return of the value of the last statement
2025-03-05 22:38:48 +00:00
Daniel Barlow
2c7a16d792 firewallgen: add extraText param to set
anything in here is added verbatim to the set definition
2025-03-05 22:36:35 +00:00
Daniel Barlow
d6b06abb63 delet second copy of output-template 2025-03-02 21:34:02 +00:00
Daniel Barlow
6b32aa569e think 2025-03-02 21:21:45 +00:00
Daniel Barlow
234d1bd87e basic unit tests for output-template 2025-03-02 21:14:46 +00:00
Daniel Barlow
c38f180fb7 output-template expose table module 2025-03-02 21:14:16 +00:00
Daniel Barlow
9a8b22997c output-template: pass the tests 2025-03-02 21:09:32 +00:00
Daniel Barlow
c32d09bd83 output-template: run the tests 2025-03-02 21:09:11 +00:00