РазделВозможности

Что умеет

Всё перечисленное проходит через один REST API и доступно в Web UI, CLI и TUI.

ОбластьКомандыКак устроено
PHP 5.6–8.5mp php list|install|remove, mp php ext list|enable|disable, mp php ini [set|unset]Sury / PPA ondrej / Remi, несколько веток параллельно, свой php-fpm на каждую, 99-monopanel.ini; параметры php.ini складываются из слоёв панель → глобально (mp php ini set, страница PHP) → пресет → сайт (mp site set --ini), так что любой параметр меняется для одного сайта или для всех сразу; расширения ветки можно выключать и включать (Debian/Ubuntu — phpenmod/phpdismod, EL — правка extension= в ini ветки Remi; затем перезапуск php-fpm) — действует на все сайты ветки, потому что мастер php-fpm один на версию; расширения, которые репозиторий предлагает, но они не установлены (memcache, redis, imagick …), показываются в том же списке, и включение ставит пакет
Сайтыmp site add|set|apply|fix|suspend|rm|logs, mp selinuxрежимы fpm, apache (loopback 8080, mod_proxy_fcgi), proxy (nginx → backend); пул на сайт, ACL для monopanel-web, страница-заглушка, авто-сертификат, suspend = 503-заглушка; IP-allow-list на сайт (--allow), HSTS при принудительном HTTPS, свои директивы в sites/<domain>.d/*.conf; mp site nginx <domain> --set файл — свои директивы с проверкой nginx -t и откатом; mp site php <domain> — действующие PHP-параметры; пресеты CMS --preset wordpress|joomla|bitrix|opencart (mp site presets): свои nginx-локации (ЧПУ, /api Joomla, urlrewrite Bitrix, _route_ OpenCart, закрытые служебные каталоги, запрет PHP в uploads) и PHP-значения по умолчанию; Bitrix — по правилам BitrixVM, с opcache на 100000 файлов и без open_basedir
КонсольPOST /system/consoleстраница «Консоль» в Web UI: команды mp от имени вошедшего администратора с потоковым выводом, одноразовый токен на команду; на дашборде у находок doctor кнопки «починить сайт» и «вернуть enforcing»
CMSmp cms list|install <домен> <cms>установка WordPress, Joomla, OpenCart и 1С-Битрикс (пробная редакция Старт/Стандарт/Малый бизнес/Бизнес, чистая установка из Маркетплейса или демо-сайт) в сайт: дистрибутив с сайта производителя, распаковка в docroot от имени клиента, своя база, штатный установщик CMS (wp-cli, CLI-установщики Joomla и OpenCart, веб-мастер Битрикса, который панель проходит сама), сайт получает пресет; доступы администратора показываются один раз; вкладка CMS на странице сайта
App-сервисыmp app add|set|start|stop|restart|logs|rmsystemd-юнит monopanel-app-<login>-<name> от имени пользователя (gunicorn, node, боты): команда, workdir и env-file внутри домашнего каталога, автозапуск, журнал через journalctl
Valkey на аккаунтmp stack install valkey, mp valkey add|list|restart|rm cache|sessions --user <login> [--memory МБ], mp site set <домен> --sessions valkey|filesдва отдельных экземпляра на аккаунт: кеш (allkeys-lru, без записи на диск) и PHP-сессии (volatile-lru, снимок раз в минуту, сессии переживают перезапуск); каждый — systemd-юнит monopanel-valkey-<login>-<cache|sessions> от имени пользователя с лимитом памяти и только unix-сокетом /run/monopanel-valkey/<login>-<cache|sessions>/valkey.sock с правами 600, так что ни другие аккаунты, ни веб-сервер к нему не подключатся, а TCP-порта нет вовсе; Valkey из дистрибутива (где его нет — Ubuntu 22.04, Debian 12 без backports — Redis с тем же протоколом), общий экземпляр из пакета выключается; на EL экземпляры работают в домене SELinux redis_t; сессии сайта переводятся одной настройкой (нужно расширение redis у ветки PHP сайта), и пока сайт держит в экземпляре сессии, ни экземпляр, ни расширение не удалить; в Web UI — кнопка valkey на странице «Пользователи» и поле «PHP-сессии» в настройках сайта
Apache 2.4mp stack install apacheDebian/Ubuntu: mpm_event + proxy_fcgi, conf-available/monopanel.conf
Расширенияmp stack install|remove memcached|jpegoptim|git|composer|sphinx, mp stack memcached --memory-mb --max-connстраница «Расширения» в Web UI: memcached (только 127.0.0.1, память и соединения настраиваются, перезапуск при смене), jpegoptim, git, composer (с getcomposer.org с проверкой контрольной суммы, запускается на новейшей ветке PHP панели, повторная установка обновляет), sphinx для 1С-Битрикс (Sphinx 2.2 из дистрибутива на Debian/Ubuntu, сборка Sphinx 3 с sphinxsearch.com на EL; индекс bitrix по эталону из настроек Битрикса, устаревший индекс на диске пересоздаётся, SphinxQL на 127.0.0.1:9306)
СУБДmp stack install percona|mysql, mp db create|list|passwd|rmPercona Server / MySQL 8.4 LTS, root по auth_socket (на EL панель сама переводит его с временного пароля пакета), тюнинг по RAM, mysql_native_password только при PHP < 7.4, базы <login>_<name>, сгенерированные пароли проходят validate_password
TLSmp ssl panel issue|import|self-signed, mp site tls <domain>, mp ssl issue|list|renew|rm, mp dns-provider addlego: HTTP-01 по webroot nginx, DNS-01 (Cloudflare, Hetzner, DigitalOcean, Gandi, deSEC, Namecheap, RFC2136) для wildcard, автопродление за 30 дней; сертификат самой панели и сертификаты сайтов ведутся раздельно — панель заказывает только для своего имени и подхватывает его на лету, сайт заказывает для домена с алиасами и сам переключается на HTTPS; занятый сертификат не удалить; mp ssl import --cert --key для готовых
Перенос между панелямиmp migrate grant|plan|runаккаунт целиком переезжает на другой сервер с MonoPanel: источник выдаёт токен с областью на один аккаунт и только читает, приёмник разбирает конфликты (plan ничего не меняет) и забирает — файлы и дамп идут потоком насквозь, пароли панели, SFTP, MySQL и почты переезжают хешами, поэтому пользователи смены сервера не замечают (docs/07-migration.md)
Переезд с BitrixVM и FASTPANELmp migrate plan|run --from bitrixvm|fastpanelте же разбор и перенос с чужого сервера по ssh (пароль или ключ, источник только читается): BitrixVM — сайты из /etc/nginx/bx, реквизиты базы из .settings.php, симлинки link-сайтов и пути в dbconn.php/cron переписываются под новый дом; FASTPANEL — аккаунт, сайты, бэкенды PHP, базы с хешами, allow-списки, сертификаты и cron из её базы и файлов; пресет CMS определяется по файлам сайта
Обновление панелиmp update, mp update applyрелизы этого репозитория: панель находит новую версию, скачивает пакет для своей ОС, проверяет подпись ed25519 и ставит его отдельным systemd-юнитом с откатом на прежний бинарник, если новая версия не отвечает
API-токеныmp token create|list|revokeтокен принадлежит аккаунту; администратор выпускает его и для другого аккаунта (--user), root по локальному сокету — для единственного администратора без флагов
Cronmp cron add|list|enable|disable|rmcrontab пользователя целиком из БД, PATH с ~/data/bin (php нужной версии)
Real IPmp stack real-ip --cloudflare [--from CIDR]доверенные прокси для nginx real_ip (сети Cloudflare встроены): allow-list и логи видят адрес клиента, а не прокси
Firewallmp firewall enable|allow|deny|ban|unban, mp stack install fail2bannftables inet monopanel, policy drop, SSH/80/443/панель всегда открыты, unit monopanel-firewall; allow с источником проверяются раньше deny, так что deny --port 8443 + allow --port 8443 --source <VPN> ограничивает панель адресами VPN, а deny, который запер бы вас самих (SSH/панель без allow с источником или ваш текущий адрес), панель отклоняет; fail2ban с jail'ами sshd, nginx и панели
Почтаmp mail install|status|settings|domain|box|alias|webmailpostfix + dovecot + opendkim: домены, ящики (пароли и квоты в панели, Maildir у vmail), алиасы и catch-all, IMAP/POP3/submission с TLS панели, подпись DKIM, sieve-фильтры; mp mail domain dns показывает нужные MX/SPF/DKIM/DMARC/PTR и проверяет их по публичным резолверам; вебпочта Roundcube ставится отдельным сайтом или на порту почтового хоста (--port 2096 — без своей записи в DNS и своего сертификата); домен можно объявить приёмником (--lenient) — он примет письма и от криво настроенных отправителей (docs/06-mail.md)
Бэкапыmp backup target add|run|list|snapshots|restorerestic (local/SFTP/S3/B2/REST), дампы MySQL, копия panel.db, retention, ежедневное расписание, восстановление в <data>/restore/<snapshot> или in-place
Файлыmp files ls|put|get|mkdir|rm|mv|chmod|extract|sizemonopanel fsop через helper с необратимым сбросом привилегий, пути относительно домашнего каталога; в Web UI — файловый менеджер с редактором: обзор каталога, загрузка перетаскиванием, права, распаковка архивов и правка файлов в редакторе VS Code (Monaco: подсветка php/html/css/js/sql/yaml/ini, поиск и замена, мультикурсор, свёртка, F1 — палитра команд), вкладка «Файлы» в карточке сайта открывается сразу в его docroot
SFTP / SSHmp user add, mp user set --shell|--sftp-only --passwordSFTP-only = chroot в /var/www/<login> через sshd_config.d/monopanel.conf, пароль общий для панели и SFTP; mp user rm <login> [--purge] — удаление вместе с сайтами, базами, cron, app-сервисами и сертификатами
Метрики и логиmp metrics, mp site logs, mp logs <unit>, mp doctorсэмплер раз в 10 с → точки по минутам (30 дней), хвост логов сайтов и journald через агент; логи сайтов ротируются раз в неделю или по 100 МБ от имени их аккаунта, восемь копий, сжатых со второй; doctor проверяет сервисы, конфиги, диск, сертификаты, DNS, задачи и дрейф файлов
Безопасностьmp user totp-reset, mp webhook addTOTP 2FA (QR в Web UI), Bearer-токены, webhooks с HMAC-SHA256 на события задач
Языки—Web UI на русском и английском: язык берётся из браузера (языки стран СНГ → русский, остальные → английский), переключается в «Настройках» и на экране входа, выбор запоминается в браузере; сообщения API, задач и диагностики — на английском, CLI и TUI пока только на русском; заглушка нового сайта и страница приостановленного показываются на языке браузера посетителя по тому же правилу

Чего пока нет

Собственные сборки PHP (используются Sury/Remi), проверенный Apache на EL, phpMyAdmin, дисковые квоты, cgroup-лимиты на сайт, DNS-сервер, WAF, несколько серверов из одной панели, apt/yum-репозиторий (пакеты выкладываются релизами, панель ставит их сама). Почта работает на Debian/Ubuntu с dovecot 2.3; для EL и для dovecot 2.4 (Debian 13, Ubuntu 26.04) конфигурация ещё не написана, контент-фильтра (rspamd) нет. Переезд — между двумя MonoPanel и с BitrixVM и FASTPANEL, без досинхронизации перед переключением DNS; другие панели и серверы без панели — в планах (docs/07-migration.md).

Исходник страницы на GitHub