# PlausibleDeniability

Primary Docker host running all production workloads.

> Planned direction: this host remains bare-metal TrueNAS Scale and becomes the long-term primary production platform after the HL15 Beast rebuild. See `docs/planning/PD_FUTURE_STATE_ARCHITECTURE.md`.

## Specs
- **OS:** TrueNAS Scale 25.10.2.1
- **CPU:** Ryzen 9 3950X
- **RAM:** 32GB
- **GPU:** Nvidia RTX 2080 Ti (11GB VRAM)
- **UPS:** None

## Storage Tiers

| Tier | Mount | Use for |
|------|-------|---------|
| Local SSD (Crucial MX500 500GB) | `/mnt/docker-ssd` | Docker root, databases, write-heavy appdata, GPU/model caches |
| TrueNAS pool (tank, 2-drive ZFS mirror ~3.5TB) | `/mnt/tank` | General appdata, configs, backups, downloads |
| Unraid NFS | `/mnt/unraid` | Media libraries, Immich media |

## Docker Root
`/mnt/docker-ssd/docker/docker-data`

## Compose Repo
`/mnt/docker-ssd/docker/compose`

## Key Docker Networks
- `ix-databases_shared-databases` — shared DB access network (created by databases stack)
- `pangolin` — reverse proxy exposure network (created by newt)

## GPU Usage
RTX 2080 Ti used by:
- Plex (hardware transcoding)
- immich-ml (CUDA face recognition)
- Ollama light-tier inference for the main AI stack and local Honcho backend

> **Note:** Whisper moved to N.O.M.A.D. (10.5.30.7:8786) as CPU inference — avoids VRAM conflict with Ollama. See [NOMAD.md](NOMAD.md).

Recommended models for 11GB VRAM:
| Model | VRAM | Best for |
|-------|------|---------|
| `qwen2.5:7b` | ~5GB | Cheap/default reasoning, summaries, derivation |
| `qwen2.5:14b` | ~8GB | Heavier reasoning / high-max paths |
| `qwen2.5-coder:7b` | ~5GB | Code tasks |
| `deepseek-r1:8b` | ~5GB | Math, logic |
| `phi4` | ~8GB | Analytical tasks |

Current light-tier notes:
- PD Ollama is the active light-tier endpoint for LiteLLM on `http://10.5.30.6:11434`
- Local Honcho currently points at PD Ollama over LAN (`http://10.5.30.6:11434/v1`) instead of using a separate local model host
- Current Honcho routing split keeps embeddings on `nomic-embed-text:latest`, cheap/default paths on `qwen2.5:7b`, and deeper high/max paths on `qwen2.5:14b`

## Remote Access
- Pangolin VPS + Newt for external services
- SSH from Windows 11

## DNS Role
- Primary Technitium source-of-truth node binds `10.5.30.8` via the `technitium-pilot` stack
- Root cron runs `/mnt/docker-ssd/docker/compose/technitium-pilot/bin/sync_backup_nodes.sh` every 15 minutes to push the live Technitium config to the backup nodes on N.O.M.A.D. (`10.5.30.9`) and Serenity (`10.5.30.10`)
- Sync logs live at `/mnt/tank/docker/appdata/technitium-pilot/logs/sync-backup-nodes.log`
- External fallback `9.9.9.9` protects public DNS continuity, but authoritative `home.paccoco.com` answers still depend on at least one Technitium node being up

## NFS Mounts (from Serenity)
- Serenity `/mnt/user/data` → `/mnt/unraid/data` (media libraries)
- Serenity `/mnt/user/immich` → `/mnt/unraid/immich` (Immich photo library)

> **Note:** NFS mounts are not automatic at boot. Run after every TrueNAS restart:
> ```bash
> sudo bash /mnt/tank/docker/scripts/mount-unraid-nfs.sh
> ```

## Known Issues
- immich-ml intermittently unhealthy — investigate GPU/CUDA health
- docker-ssd has no redundancy — single point of failure for all appdata
- No off-site backup

## Pending
- Add Pangolin resource + DNS for `ai.paccoco.com`
- Install fresh editor

## Planned future role
- Primary NAS after Serenity retirement
- Primary production Docker/app host
- Primary shared database host
- Primary media / automation / identity / monitoring host
- Primary Technitium source node
- Future home of qBittorrent + ARR after storage ownership moves local to PD
- Acceptable host for tightly segmented cybersecurity VMs, but not an unrestricted lab/free-for-all hypervisor
