## The Problem with Other Homelab Platforms
Umbrel, CasaOS, Proxmox — they all want to **be your operating system**. You have to wipe a machine, hand it over entirely, and fight to get your workflow back if anything goes wrong.
**Yantr takes a different approach.**
It runs **as a container** on the machine you already have. Daily-driver laptop, gaming PC, old server — it doesn't matter. Install it in 30 seconds, deploy 130+ apps from the catalog, and remove it just as cleanly when you're done. Your OS stays exactly as you left it.
┌─────────────────────────────────────────┐
│ Your Operating System │
│ │
│ ┌─────────────┐ ┌─────────────────┐ │
│ │ Yantr │ │ Your existing │ │
│ │ container │ │ apps & files │ │
│ └──────┬──────┘ └─────────────────┘ │
│ │ Docker API │
│ ┌──────▼──────────────────────────┐ │
│ │ Jellyfin · n8n · Nextcloud ... │ │
│ │ (isolated Docker stacks) │ │
│ └──────────────────────────────────┘ │
└─────────────────────────────────────────┘
## 🚀 Quick Start
docker run -d \
--name yantr \
--network host \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
--restart unless-stopped \
ghcr.io/besoeasy/yantr
Open **http://localhost:5252** and create the local operator account on first visit.
Authentication is stateless by default: if you do not set a public key env var, Yantr keeps the configured operator key only in memory and clears it on restart or self-update. To pin one operator identity across restarts, pass a daku public key such as `-e dakupublickey=<66-char-hex-public-key>`.
## 📦 App Catalog
130+ curated apps, all ready to deploy in one click.
| Category | Apps |
|---|---|
| 🤖 AI & Agents | Open WebUI, Perplexica, Agent Zero, Hermes Agent, Kokoro |
| 🎬 Media | Jellyfin, Emby, Airsonic, Fireshare, Metube, Stremio, Swingmusic |
| 📥 Downloads | qBittorrent, Transmission, Deluge, Radarr, Sonarr, Jackett, Prowlarr |
| 💰 Finance | Actual Budget, Maybe, Ghostfolio, Rotki, Cryptofolio, Monetr |
| ☁️ Cloud & Files | Nextcloud, Seafile, Syncthing, MinIO, Droppy, Samba |
| 🔐 Privacy & Security | Vaultwarden, AdGuard Home, Pi-hole, WireGuard, Tor Browser |
| 🛠️ Dev Tools | Supabase, PostgreSQL, MariaDB, MongoDB, n8n, Dockge, Gitea Mirror |
| 📡 Networking | Tailscale, Cloudflared, Glances, Smokeping, Snort, Librespeed |
| 📝 Productivity | Memos, Jotty, Wiki.js, Linkwarden, Miniflux, FreshRSS |
| 💬 Comms | Element (Matrix), Synapse, Nostr relay (strfry), Gotify |
| ⛓️ Bitcoin | Bitcoin Knots, Monerod, Specter Desktop, Cashu.me |
| 🐧 Linux Boxes | Debian + SSH, Alpine + SSH (disposable or long-lived) |
## ✨ Features
### Zero OS Footprint
Yantr never touches your host filesystem. Every app lives in its own Docker stack with isolated volumes. Remove an app and nothing is left behind — no registry keys, no background services, no scattered config files.
### One-Click Deploys
Pick an app from the catalog, click deploy. Yantr handles compose file wiring, port allocation, and volume setup automatically.
### No Dependency Hell
AI models, media servers, and databases run side-by-side without version conflicts. Python, Node, CUDA — each app brings its own runtime inside its container.
### Full Lifecycle Control
| Action | What happens |
|---|---|
| **Install** | Pulls images, starts the stack, registers ports |
| **Update** | Pulls latest images, recreates containers |
| **Remove** | Stops stack, removes containers, cleans volumes |
### Networking & Remote Access
- **Port conflict detection** — Yantr tracks every allocated host port to prevent collisions
- **Tailscale** — private operator access without port forwarding
- **Cloudflare Tunnel** — publish services publicly without opening your router
- **Caddy reverse proxy** — add auth and HTTPS in front of any internal app
### Storage
- Browse and manage volume data directly from the browser
### REST API + CLI-Friendly
Every operation — install, remove, logs, status — is available as a JSON endpoint. After first-run setup, the API requires a signed bearer token from the configured operator identity.
## 🏗️ How It Works
Yantr is a single Docker container that:
1. **Serves a Vue 3 web UI** on port `5252`
2. **Exposes a Fastify REST API** that manages Docker via the socket
3. **Reads app templates** from its built-in catalog (Docker Compose + metadata)
4. **Deploys isolated stacks** — each app is an independent Docker Compose project
No databases, no external dependencies, no agents on the host.