Перейти к содержимому
GitHubПоддержать

Установка

  • ОС: Ubuntu 22.04+ или Debian 12+. На других дистрибутивах установщик предупредит, но не остановится.
  • Архитектура: amd64 или arm64. Raspberry Pi 4 подойдёт, если на нём 64-битная система.
  • Память: от 400 МБ, меньше только с предупреждением. Docker берёт около 300 МБ, mikan ещё около 60 МБ.
  • Диск: нужен хотя бы 1 ГБ свободного места там, где живёт Docker, а лучше от 3 ГБ.
  • Доступ: root (sudo).
  • Время: часы сервера должны быть синхронизированы, иначе TLS и REALITY работают плохо.
  • Домен не обязателен. Без него панель получит сертификат Let’s Encrypt на IP-адрес.
curl -fsSL https://github.com/Miroshka000/mikan/releases/latest/download/install.sh | sudo bash

install.sh сначала проверяет подпись релиза и хеш установщика и только потом что-то ставит. Если Docker нет, он поставится с get.docker.com. Docker без compose v2 (пакет docker.io из Ubuntu 22.04 и Debian) установщик заменит, но только с вашего согласия: образы, тома и контейнеры останутся.

В терминале откроется пошаговый мастер:

  1. Язык панели: русский или английский. На нём откроются админка и страница подписки, на нём же названия тарифов и меню бота по умолчанию.

  2. Проверка сервера: ОС, память, диск, время, свободные порты 443 и 8443 (TCP и UDP) и 80. Занятый порт не останавливает установку: протоколы на нём получат другие свободные порты.

  3. Адрес сервера: публичный IPv4 определяется сам, можно указать и имя хоста.

  4. Домен, необязательно. Установщик проверяет через публичный DNS, что домен указывает именно на этот сервер. Остановит, если A-записи нет, она ведёт на другой адрес, домен за прокси Cloudflare («оранжевое облако») или есть AAAA-запись на чужой адрес.

  5. Email для Let’s Encrypt, необязательно.

  6. nginx или Caddy на порту 80. Если они уже держат порт 80, а домен указан, установщик предложит добавить правило, чтобы проверки Let’s Encrypt доходили до панели. Конфиг сохраняется, проверяется (nginx -t, caddy validate) и при ошибке возвращается как был. Откажетесь, и в конце будут показаны строки, которые нужно добавить самому.

  7. Параметры: порт панели (по умолчанию случайный от 20000 до 60000), открывать ли порты в ufw, включать ли BBR и большие UDP-буферы.

  8. Установка: образ последнего подписанного релиза и PostgreSQL 18, файлы в /opt/mikan, админ и секретные ссылки, настройка сети, запуск.

  9. Маскировка REALITY: установщик до минуты ищет сайты рядом с сервером и предлагает выбрать один.

На последнем экране будут ссылка на панель, логин и пароль. Клавиша q показывает QR-код ссылки.

С флагом --yes установщик ничего не спрашивает и берёт значения из флагов и умолчаний:

curl -fsSL https://github.com/Miroshka000/mikan/releases/latest/download/install.sh \
| sudo bash -s -- --yes --lang ru --domain vpn.example.com --email you@example.com
Флаг Что делает
--lang en|ru язык панели по умолчанию
--host IP публичный IPv4 сервера, по умолчанию определяется сам
--domain DOMAIN домен, который указывает на сервер, для сертификата Let’s Encrypt
--email EMAIL почта для Let’s Encrypt
--port N порт панели, по умолчанию случайный от 20000 до 60000
--no-firewall не трогать ufw
--no-tune не менять настройки ядра (BBR, буферы UDP)
--no-proxy-rule с доменом и nginx или Caddy на порту 80: не менять их конфиг, а напечатать правило
--join KEY поставить ноду для другой панели, ключ со страницы «Ноды»
--panel-ip IP для ноды: открыть её порт API только для адреса панели
--replace-docker заменить Docker без compose v2 на Docker с get.docker.com
-y, --yes ничего не спрашивать

Полный список: mikan install --help.

Путь Что там
/opt/mikan/.env, compose.yaml настройки запуска и контейнеры
/opt/mikan/data/panel, data/node данные панели и ноды
/opt/mikan/backups бэкапы
/opt/mikan/data/panel/www свой сайт: файлы отдаются по путям, которые панель не занимает, 404.html служит страницей ошибки
том Docker mikan_pg-data база PostgreSQL
/usr/local/bin/mikan команда управления сервером

Установщик открывает в ufw (если он включён) порт панели, 80, 443 и запасные порты 2053, 2083, 2087, 2096, 2443, 3443, 4443, 5443, 6443, 7443, 8443, 9443, 10443, 11443, 12443 по TCP и UDP. На них автоподбор переносит заблокированные протоколы; mikan update открывает их заново, если список вырос. Если ufw выключен, а у хостера свой файрвол, откройте там хотя бы 443, 8443 и порт панели.

Если панель уже стоит, а нужна ещё одна точка выхода, на новом сервере ставится только нода. Команду с ключом выдаёт страница Ноды, подробнее в разделе Ноды.

mikan uninstall останавливает контейнеры и удаляет команду, сервисы и настройки ядра. Данные и бэкапы остаются в /opt/mikan, база в томе Docker. Удалить всё совсем:

rm -rf /opt/mikan && docker volume rm mikan_pg-data