feat: the ntfy layer on web, an alert server for one site (decision 0063) #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/ntfy-layer"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
The layer keel-ntfy, built on
web(handbook decision 0063, PR 125).bt-layer ntfy --parent web.ntfy2.11 package of Debian 13. It listens on 127.0.0.1:2586. The default access isdeny-all. There is no attachment and no upstream server.keel-front.dis a regular expression location. It wins over thelocation /that sends requests to Anubis, so Anubis never sees ntfy. Coraza still inspects the request.45ntfywritesbase-url, makes the administrator and the publisher, and writes the token of the publisher to/etc/keel/secrets/ntfy_publish_token(root, mode 0600). The image has no account, no token and no user database.Points for the maintainer
keel manifest validateanswersoverlays.etcd: already carried by core(rule 16,keel/manifest/resolve.py). Sontfy.yamllists no overlay. Insimplemode every one of vip, etcd, wireguard, crowdsec, coraza and anubis is disabled, and syncthing is not in the chain.cloud_simpleandcloud_advancedwould enable the mesh and etcd, andkeel spec validatedoes not refuse them. The example description saysinstallation.mode: simple. A real fix needs a decision on manifest version 2 or a rule inkeel spec validate.publisher_password(generate: required) is the password of the publisher account. A person copies the token tomonitor.notify.ntfy.tokenof each sending node.keel-front.dis the exemption.tests/stack.batsproves it with a stub of Anubis, and fails when the file is missing.simplemode, where Coraza is off. A publish body in a cloud mode may need a CRS drop-in. Add one only when a test shows a false positive.Tests
bats tests/andtests/coverage.shat 100 percent of the shell this layer writes.tests/stack.bats: nginx, the keel-web sites, the real ntfy server and the real hook. 12 tests: access rules, stream, WebSocket, front behind Anubis. They also ran as a fake root in a sandbox. In CI the jobstackstarts ntfy itself (KEEL_NTFY_STACK_DIRECT=1), so the unit and its sandbox run in the boot test only.tests/boot-test.sh: for the image build per merge (decision 0061). Not run yet. No layer of this appliance exists.Open
The job
tests / applianceruns withallow_unpublisheduntil the first layer is published.79225be71eto97281e26e297281e26e27b24d89ee97b24d89ee951641c8f8251641c8f82ed466bfd19ed466bfd1948764c3f43