# koopa-admin-log

Ops log and config mirror for host **koopa** (openSUSE Tumbleweed).

**Day logs:** `2026/` (major only, written same day). Topic notes: `YYYY-MM-DD--topic.md`.

**Secrets:** not in this repo — see **`SECRETS.md`** and sibling **`koopa-admin-secrets`**.

## Open issues

**Sichtbare Issue-Liste:** [`ISSUES.md`](ISSUES.md)

## Git origin

| | |
|--|--|
| **origin** | `https://git.hacktivism.ch/hernani/koopa-admin-log.git` |
| Web | https://git.hacktivism.ch/hernani/koopa-admin-log |
| SSH | `ssh://git@git.hacktivism.ch:9200/hernani/koopa-admin-log.git` |

Hosted on **Forgejo rootless** (this host). See `2026/2026-07-10--admin-log-origin-forgejo.md`.

## Layout

```
host/                      # openSUSE host-level config + overview
  overview/services.md     # graphical service map
  systemd/ firewalld/ caddy/ network/
configs/                   # mirrored app configs (caddy, taler, forgejo, …)
  taler-hacktivism/        # merchant container taler-hacktivism
  taler-hacktivism-bank/   # bank container (image …-banking)
  taler-exchange/          # exchange conf (inside ansible container)
  taler-exchange-ansible/  # container taler-hacktivism-exchange-ansible
  forgejo/                 # rootless git.hacktivism.ch
  castopod/ bonfire/ prime/ # compose mirrors (no secret values)
  tops/                    # koopa-tops-ng1…ng3 + autostart unit
  tor/                     # KoopaRelay ORPort 8080
scripts/                   # merchant, exchange, monitoring helpers
  taler-merchant/          # merchant-model start scripts
  taler-exchange/          # same model; archive/ = greenfield bootstrap
2026/                      # day logs + dated topic notes
```

## Live containers (podman)

**Authoritative snapshot of host koopa:** [`host/overview/LIVE.md`](host/overview/LIVE.md) (refreshed from live).

| Name (podman) | Role | Host port |
|---------------|------|-----------|
| `taler-hacktivism` | merchant | **9010** (+ landing **9015**) |
| **`taler-hacktivism-exchange-ansible`** | exchange (Ansible/systemd) | **9011** (+ landing **9014**) |
| `taler-hacktivism-bank` | libeufin-bank (GOA) | **9012** (+ landing **9013**) |
| `koopa-castopod` (+ mariadb/redis) | Castopod | **9020** |
| `koopa-bonfire` (+ postgres) | Bonfire | **9021** |
| `koopa-prime-jellyfin` | Jellyfin | **9022** |
| `koopa-prime-qbittorrent` | qBittorrent | **9023** |
| `koopa-forgejo` (+ postgres) | Forgejo rootless | **9024** + SSH **9200** |
| `koopa-tops-ng1` … `ng3` | static nginx | **9090**–**9092** |

Start model (Taler merchant/bank): **root** `start_base_services_*` → `/usr/local/bin/start_*.sh`.  
Start model (exchange): `~/ansible-taler-exchange/` → `run-container-koopa.sh` + `deploy-hacktivism-goa.sh`.  
Start model (user apps): `hernani` → `cd ~/koopa-* && podman-compose up -d`.  
Start model (tops): user unit `container-koopa-tops.service` (linger).

Public hosts: `taler.` / `exchange.` / `bank.` / `castopod.` / `bonfire.` / `prime.` / `bt.` / **`git.hacktivism.ch`** / `tops.ng1`–`ng3`.hacktivism.ch  
(Caddy → 9010–9015 / 9020–**9024** / **9090–9092**; git-SSH host **9200** direct).

Service **details**: `configs/taler-hacktivism*`, `configs/taler-exchange*`, `configs/forgejo/`, `configs/tops/`, `scripts/*`.  
Host-wide picture: **`host/overview/services.md`**.  
Port table: **`configs/ports.md`**.  
Router: **`../vecigate-admin-log`**.

**Benchmarks** (drive from the local machine, measure on koopa): **`benchmarks/`**  
→ amount ladder: `benchmarks/amount-ladder/`.

**Exchange snapshot/restore (GOA, local images only):**  
→ `2026/2026-07-09--exchange-snapshot-and-restore.md`

**Exchange `/keys` + Wire + bank account (diagram):**  
`configs/taler-exchange/README.md` (section “/keys, Wire and Account”).

**Castopod (stack/accounts/boot — not podcast content):**  
`2026/2026-07-09--castopod-content.md` → https://castopod.hacktivism.ch/

**Bonfire FEDERATE + guest public (2026-07-10):**  
`2026/2026-07-10--bonfire-federate.md` → https://bonfire.hacktivism.ch/  
(ground zero: `2026/2026-07-09--bonfire-ground-zero.md`)

**Forgejo rootless (git.hacktivism.ch, no free registration, SSH :9200):**  
`2026/2026-07-10--forgejo-rootless.md` → https://git.hacktivism.ch/
