docs(paivana): disable racey upstream unit; smoke expects 302/402

Compose unit starts both containers; standalone upstream podman-start
raced at boot (exit 125). Live stack already healthy on hacktivism.
This commit is contained in:
Hernâni Marques 2026-07-17 20:06:16 +02:00
parent 140b3bd16f
commit 17f25d41c9
No known key found for this signature in database

View file

@ -48,15 +48,31 @@ podman logs -f koopa-paivana
curl -si http://127.0.0.1:9025/ | head # 302 → /.well-known/paivana/templates/paivana#… curl -si http://127.0.0.1:9025/ | head # 302 → /.well-known/paivana/templates/paivana#…
``` ```
Autostart: Autostart (**only** the compose unit — starts **both** `koopa-paivana` and
`koopa-paivana-upstream`):
```bash ```bash
mkdir -p ~/.config/systemd/user mkdir -p ~/.config/systemd/user
cp ~/koopa-paivana/container-koopa-paivana.service ~/.config/systemd/user/ cp ~/koopa-paivana/container-koopa-paivana.service ~/.config/systemd/user/
# optional: After= merchant (configs/systemd/user/container-koopa-paivana.service.d/)
systemctl --user daemon-reload systemctl --user daemon-reload
systemctl --user enable --now container-koopa-paivana.service systemctl --user enable --now container-koopa-paivana.service
``` ```
**Do not** enable a separate `container-koopa-paivana-upstream.service` that only
runs `podman start koopa-paivana-upstream`. At boot that unit races compose
(container not created yet → exit 125 → start-limit-hit). Compose already
starts the upstream. If such a unit exists:
`systemctl --user disable --now container-koopa-paivana-upstream.service`.
Healthy smoke:
| Check | Expect |
|-------|--------|
| `curl -si http://127.0.0.1:9025/` | **302**`/.well-known/paivana/templates/paivana#…` |
| template URL / public `https://paivana.hacktivism.ch/` | **402** paywall HTML + `paivana: taler://pay-template/…` |
| monitoring | `./scripts/taler-monitoring/taler-monitoring.sh -d hacktivism.ch urls``www.paivana` OK |
## Network notes ## Network notes
Rootless pasta cannot hairpin public DNS for the merchant. Compose sets: Rootless pasta cannot hairpin public DNS for the merchant. Compose sets: