# Reboot recovery — 2026-07-16 Host **koopa** rebooted (~20:23 CEST). Containers came up via `unless-stopped` + user units, but **Taler app processes inside** merchant/bank did **not** (containers run `sleep infinity`). ## What was broken after boot | Symptom | Cause | Outcome | |---------|--------|---------| | `taler.hacktivism.ch/intro` **502** | only `sleep infinity` in merchant | fixed manually, then **automated** | | `bank.hacktivism.ch/intro` **502** | bank same; landing nginx off | fixed + automated | | Bank **auto-confirm** missing | not started after boot | automated (`--loop 2`) | | `koopa-tor-relay` crash-loop | host **`tor.service`** binds **8080**/**9051** | still open → `ISSUES.md` | | `koopa-paivana` **502** | merchant private API down at start | unit now **After** merchant-apps | | Exchange / forgejo / bonfire / castopod / tops / nym / prime | mostly OK | — | ## Automation (removes manual post-boot) Installed on koopa (user **hernani**): | Piece | Role | |-------|------| | `~/.local/bin/ensure-taler-apps.sh` | start base + merchant/bank apps + auto-confirm | | `taler-merchant-apps.service` | oneshot after `container-taler-hacktivism` | | `taler-bank-apps.service` | oneshot after `container-taler-hacktivism-bank` | | drop-ins `container-taler-*.service.d/apps.conf` | `Wants=` the apps units | | paivana `order.conf` | `After=taler-merchant-apps.service` | Repo sources: `scripts/taler-shared/`, `configs/systemd/user/`. Install/reinstall: `scripts/taler-shared/install-ensure-taler-apps.sh`. ```bash # status / force now systemctl --user start taler-merchant-apps.service taler-bank-apps.service ~/.local/bin/ensure-taler-apps.sh status ``` Auto-confirm poll: **2 s** (was 4 s). ## Quick health ```bash curl -sk -o /dev/null -w '%{http_code}\n' https://taler.hacktivism.ch/config curl -sk -o /dev/null -w '%{http_code}\n' https://taler.hacktivism.ch/intro/ curl -sk -o /dev/null -w '%{http_code}\n' https://bank.hacktivism.ch/config curl -sk -o /dev/null -w '%{http_code}\n' https://bank.hacktivism.ch/intro/ curl -sk -o /dev/null -w '%{http_code}\n' https://exchange.hacktivism.ch/keys ``` Expected: **200** on config/intro/keys (site root may **302** → `/intro/`).