# 2026-07-13 — Paivana (GOA paywall) on koopa

## Done

- Podman stack **`koopa-paivana`** + **`koopa-paivana-upstream`** at `~/koopa-paivana/`
- Host port **9025**
- Image `localhost/koopa-paivana:latest` (built from `git.taler.net/paivana` + deb.taler.net libs; package not on apt yet)
- Merchant: instance **`goa-shop`**, template **`paivana`** (`template_type: paivana`, **GOA:4200**)
- After payment: site-wide cookie (`-g`) → example upstream free to browse
- Flags: `-g` (site-wide), `-f` (X-Forwarded-For)
- Smoke: `curl -si http://127.0.0.1:9025/` → **302** to `/.well-known/paivana/templates/paivana#…`
- Config mirror: `configs/paivana/`
- Caddy: `paivana.hacktivism.ch` → `:9025` (`configs/caddy/Caddyfile`)
- User unit: `container-koopa-paivana.service` enabled

## Was später kaputt / nachgezogen (klar)

Siehe **`configs/paivana/README.md` → „Was kaputt war“**. Kurz:

1. **Extra Upstream-systemd-Unit** race mit Compose → exit **125** / start-limit — **nur** Compose-Unit behalten.  
2. **Paivana vor Merchant-Apps** → öffentliches **502** — `order.conf` `After=taler-merchant-apps`.  
3. **Pasta DNS/AAAA**: `host-gateway` reichte nicht → `extra_hosts` auf **`172.17.0.1`** pin (`f26bf6a`).

Gesund: **302** lokal / **402** public paywall + monitoring `www.paivana`.

## Refs

- https://docs.taler.net/taler-paivana-manual.html
- https://docs.taler.net/design-documents/095-captcha-100.html
