The user and operator documentation of Mistgate, a self-hosted panel for your own VPN fleet, in English (en/), Russian (ru/) and Simplified Chinese (zh/). Every page exists in all three languages under the same path. The same pages, with search and a sidebar, are published at mistgate.app (Russian: mistgate.app/ru, Chinese: mistgate.app/zh); this directory is their source and reads the same on GitHub.
Документация на русском: ru/index.md или mistgate.app/ru.
简体中文文档:zh/index.md 或 mistgate.app/zh。
| Section | English | Русский | 简体中文 | For |
|---|---|---|---|---|
| Getting started | en/getting-started | ru/getting-started | zh/getting-started | Concepts, requirements, installing the panel and the first node, the first users, the AI agent prompts. |
| Guide | en/guide | ru/guide | zh/guide | Day-to-day work in the admin: nodes, profiles, Hysteria2, AmneziaWG, WARP, users, subscriptions, the user page, DNS, torrent protection. |
| Operations | en/operations | ru/operations | zh/operations | Health, reachability from a country, Telegram alerts, updates, releases and signing, encrypted backups, security, troubleshooting. |
| Roadmap | en/roadmap | ru/roadmap | zh/roadmap | What is done, what comes next, the known limits. |
| Reference | en/reference | ru/reference | zh/reference | Every command and flag, the configuration, the API, the MCP server, the architecture, the FAQ, the comparison with other panels, the benchmarks. |
The full page list, in reading order, is in en/index.md, ru/index.md and zh/index.md.
I want to install Mistgate.
- Overview (ru, zh) and Requirements (ru, zh).
- Install the panel (ru, zh) from the official release, or let an agent do it with the install prompt in the AI agent guide (ru, zh). To run the panel on Cloudflare Workers instead of a server (a preview), see Install the Cloudflare edition (ru, zh).
- Install a node over SSH (ru, zh), or add a node by hand (ru, zh).
- First users (ru, zh), then Security (ru, zh) and encrypted backups (ru, zh).
I run a fleet.
- Nodes (ru, zh), Profiles (ru, zh), Users and groups (ru, zh), Subscriptions (ru, zh), Relays through an entry node (ru, zh).
- Health (ru, zh), Updates (ru, zh), Torrent protection (ru, zh), Troubleshooting (ru, zh).
I integrate an agent or a script.
- AI agent guide (ru, zh): ready prompts for installing the panel, running the fleet through MCP and contributing.
- MCP (ru, zh) and API (ru, zh): tokens, profiles, every tool, plan / apply and owner approvals.
llms.txton the site lists every page with a one-line summary.
I contribute.
AGENTS.mdandCONTRIBUTING.md: the code map, the checks and the conventions.- Architecture (ru, zh), CLI (ru, zh), Configuration (ru, zh), Releases and signing (ru, zh).
The site is built by site/build.mjs from docs/en, docs/ru and docs/zh:
pnpm --dir site install --frozen-lockfile
pnpm --dir site build # site/dist; fails on a broken internal link
pnpm --dir site test- Mirrors.
en/,ru/andzh/hold the same pages at the same paths, with the same headings, code blocks, tables and table rows (site/test/parity.test.mjschecks it); a language switch mapsen/<path>toru/<path>andzh/<path>. Sections are directories;index.mdof each language is the only start page. - Front matter. Every page starts with YAML front matter with
title(the H1 and the sidebar label) anddescription(one sentence, used as the meta description). Quote a value that contains": ". The body has no H1 and starts with a sentence or two, then H2 and H3 sections. - Links between pages are relative
.mdlinks within the same language; the site rewrites them, GitHub follows them as they are. - Callouts are blockquotes that start with
**Note:**,**Tip:**,**Warning:**or**Danger:**(Russian:**Важно:**,**Совет:**,**Внимание:**,**Опасно:**; Chinese:**注意:**,**提示:**,**警告:**,**危险:**, each followed by a space); the site styles them, GitHub shows plain quotes and the wiki shows them as alerts. Danger is for what cannot be undone, such as a lost key. A feature that is not in the code yet is marked with the bold word Planned (Russian: Планируется, Chinese: 计划中). In Chinese a bold span must not end in full-width punctuation that touches the next word: write**获取次数**。or put a space after the closing**, or CommonMark leaves the asterisks in the text (site/test/docs.test.mjsrenders every page and fails on them). - Style. Code blocks always carry a language tag (
sh,text,json,ini,toml,yaml); a word after it names the file (```ini /etc/systemd/system/mistgate.service). No screenshots in the pages: pictures are diagrams (below); only the site's home page shows the README's admin screenshot. Examples use reserved names only:panel.example.com, nodes such asde1andnl1,203.0.113.0/24,2001:db8::/32, the user Alice. Russian pages address the reader as «вы» and use the admin's own Russian labels fromweb/src/i18n; Chinese pages address the reader as 你 (or with no pronoun) and quote the admin's own Chinese labels fromweb/src/i18n/zh.ts. - Diagrams. A drawing is an SVG in
<lang>/diagrams/, in both languages under the same name and canvas, put on a line of its own:. The site inlines it so it follows the theme; GitHub and the wiki show the file, which carries its own light and dark colours in one<style>scoped to.mgd(site/test/diagrams.test.mjschecks both files). Sequences, states and small flows are```mermaidblocks with anaccTitle:line: GitHub renders them itself, the site renders them at build time. The SVG diagrams are drawn by small scripts insite/diagrams/(svgkit.mjsplus onegen-*.mjsper group): change the script and run it withnode, then commit the scripts and the regenerated files together. - Sidebar order comes only from the list under "All pages" in
<lang>/index.md: its H3 headings are the groups, its links the pages in order. When a page is added, removed or moved, change that list in both languages; a moved page also gets an entry inMOVEDinsite/build.mjs, which writes the_redirectsfile.