# koopa-prime — Jellyfin + qBittorrent (2026-07-09)

## Containers (podman-compose)

Path: `/home/hernani/koopa-prime/`

| Container | Role | Host port |
|-----------|------|-----------|
| `koopa-prime-jellyfin` | Video library (Jellyfin) | **9022** |
| `koopa-prime-qbittorrent` | BitTorrent client | **9023** WebUI, **6881** BT |

## Media wiring

| Host path | Jellyfin | qBittorrent |
|-----------|----------|-------------|
| `/home/hernani/Downloads` | `/media/downloads` **ro** (library) | `/downloads` **rw** (save path) |

Downloads land in the same folder Jellyfin scans.

## Auth (login required)

- **Jellyfin:** admin account created via Startup API; library access needs login.
- **qBittorrent:** WebUI password required (401 without session).

Credentials: `~/koopa-prime/users.env` (mode 600).

## Public / Caddy

| Host | Backend |
|------|---------|
| `prime.hacktivism.ch` | `127.0.0.1:9022` |
| `torrent.prime.hacktivism.ch` | `127.0.0.1:9023` (needs DNS CNAME) |

See session notes for Caddy snippets. BT port **6881** may need firewall/VeciGate if peers should connect.

## Ops

```bash
cd ~/koopa-prime
podman-compose ps
podman-compose logs -f jellyfin
podman-compose up -d
```
