# Service overview — koopa ## Diagram ```mermaid flowchart TB subgraph Internet Client[Client IPv4/IPv6] end subgraph VeciGate["VeciGate (MikroTik)"] DNAT80["DNAT :80 → koopa:9000"] DNAT443["DNAT :443 → koopa:9001"] DNATSSH["DNAT :23235 → koopa:22"] DNATTOR["DNAT :8080 → koopa:8080"] end subgraph Host["openSUSE host koopa"] subgraph Edge["Edge on host"] S80["systemd http-proxy.socket :80"] S443["systemd https-proxy.socket :443"] CaddyHTTP["Caddy :9000 HTTP\nACME + redirect"] CaddyHTTPS["Caddy :9001 HTTPS"] FW["firewalld public\n9000,9001,80,8080,ssh"] end subgraph Podman["podman (hernani)"] Merch["taler-hacktivism\n:9010 nginx TLS"] Exch["taler-exchange-hacktivism\n:9011 exchange-httpd"] end Tor["tor ORPort :8080"] SSH["sshd :22"] end Client --> DNAT80 --> CaddyHTTP Client --> DNAT443 --> CaddyHTTPS Client --> DNATSSH --> SSH Client --> DNATTOR --> Tor S80 --> CaddyHTTP S443 --> CaddyHTTPS CaddyHTTP -->|"/.well-known"| ACME["/var/www/acme"] CaddyHTTP -->|other| Redir[301 HTTPS] CaddyHTTPS -->|taler.hacktivism.ch| Merch CaddyHTTPS -->|exchange.hacktivism.ch| Exch Merch --> MSock["unix merchant-http.sock"] Exch --> EDB["postgresql + secmods"] ``` ## Port table | Port | Listener | Backend / notes | |------|----------|-----------------| | 22 | sshd | LAN; WAN via 23235 | | 80 | systemd socket | → 127.0.0.1:**9000** | | 443 | systemd socket | → 127.0.0.1:**9001** | | 9000 | caddy | HTTP + ACME | | 9001 | caddy | HTTPS vhosts | | 9010 | podman pasta | **merchant** nginx | | 9011 | podman pasta | **exchange** httpd | | 8080 | tor | ORPort | ## Service index (details elsewhere) | Service | Detail docs | |---------|-------------| | Caddy | `host/caddy/`, `configs/caddy/` | | firewalld | `host/firewalld/` | | systemd proxies | `host/systemd/` | | Merchant container | `configs/taler-merchant/`, `scripts/taler-merchant/` | | Exchange container | `configs/taler-exchange/`, `scripts/taler-exchange/` | | Tor monitoring scripts | `scripts/monitoring/` | | VeciGate NAT | `../vecigate-admin-log/ip/firewall/nat/` |