besoeasy/yantr

GitHub: besoeasy/yantr

Stars: 128 | Forks: 13

⚡ Yantr

Your self-hosted app store — runs alongside your existing OS, no hardware takeover required.

Docker License Vue 3 Fastify Website

Quick Start · App Catalog · Features · Website · Report a Bug

## 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.