Miroshka000 / mikan
git clone https://github.com/Miroshka000/mikan.git
v0.5.1.0 · 7d ago
🍊 A fast, beautiful VPN panel on the mihomo core — one command to install, nothing to babysit.
—
stars, 24h
—
stars, 7 days
+100
stars, 30 days · #2,326
100
★ total
22
forks · 2 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageGo
LicenseGPL-3.0
Created2026-09-28 (22d ago)
Last push2d ago
Watchers2
OwnerUser
GitHub topics
anytlsclash-metahysteria2mihomosing-boxtrojanvlessvless-grpcvless-realityvless-reality-visionvless-xhttp-realityvpn-panel-managementxrayxray-app
Links
- GitHub: github.com/Miroshka000/mikan
- Homepage: https://miroshka000.github.io/mikan/
- Releases · Issues · Hacker News mentions
README excerpt
**A fast, beautiful VPN panel on the mihomo core — one command to install, nothing to babysit.** **English** · Русский · 简体中文 · فارسی · Türkçe · Español --- ## Install On a fresh Ubuntu 22.04+ or Debian 12+ server (amd64 or arm64): [code] The installer asks for the panel language and an optional domain, checks that the domain points to the server, installs Docker if needed, picks REALITY camouflage sites next to your server and prints your admin link. Run `mikan` again at any time for the management menu. A node for an existing panel: the panel's **Nodes** page (or `mikan node add`) gives the command with its key: [code] Without questions, for scripts: `… | sudo bash -s -- --yes --lang en --domain vpn.example.com --email you@example.com` (all flags: `mikan install --help`). ## Why mikan ### 🛡️ Survives blocking on its own mikan watches whether real clients still reach each protocol. When a port gets blocked on the way, it moves the protocol to a free HTTPS port; when a REALITY camouflage site stops working, it picks a new one next to your server. ### 📱 Every app gets what it can use Subscriptions detect the app — Happ, v2RayTun, Koala Clash, SlothClash, Clash Verge, FlClash, ClashFest, Hiddify, Shadowrocket and more — and hand it only the protocols it actually supports. No more “it doesn't work for me”. ### 📊 Byte-exact accounting mihomo is embedded as a library, so traffic is counted per user on every connection — not sampled. Plans by time and gigabytes, billing days, device limits and device binding against key sharing. Since every connection is known by its user, the torrent blocker bans the one who torrents on every node, not a shared IP. ### 🤖 Telegram bot and Mini App built in Subscribers check their plan, devices and connection guides in a bot you set up in the panel, open the subscription page as a Telegram Mini App and get notified before it expires. They can also buy and renew — Telegram Stars, cards and SBP through YooKassa, or crypto through CryptoBot — and the panel hands out the link by itself. Broadcasts respect Telegram's limits. ### 🪶 Light as a mandarin Go and PostgreSQL, three small containers. On a working server with clients: **~14 MB RAM** for the panel, **~50 MB** for the database, **~40 MB** for the VPN core. ### 🔒 Locked down by default Secret admin link on a random port, HTTPS with Let's Encrypt (even for a bare IP), argon2id, TOTP 2FA, CSRF protection, strict CSP, audit log. Containers run non-root, read-only, with all capabilities dropped. ### 🌐 WARP and server cascades Each node can have its own WARP — registered in one click or from your WireGuard config — and protocols can leave through another node of the panel (client → node A → node B → internet). Chosen protocols, domains and networks take those ways out, everything else goes direct. ### 🧩 API and keys for integrations A REST API documented right in the panel, with read-only or full-access keys for bots, billing and monitoring. ## Promo codes Admins can cre