Мне было грустно без Modhost и я сделал Meowbox

Начнём сразу с магии.
Берёшь чистый VPS на Ubuntu, запускаешь одну команду:
curl -fsSL https://raw.githubusercontent.com/gvozdb/meowbox/main/bootstrap.sh | sudo PANEL_PORT=18443 bashИ у тебя настроенный сервер под MODX со всеми убранствами.Больше не надо:
– мучаться с терминалом,
– настраивать сервер с нуля вручную,
– настраивать конфиги NGINX/PHP/MySQL/SSL/etc,
– настраивать бекапы,
– логи,
– мониторинг,
– уведомления в телеграм бота,
– итд,
– итп.
Всё это (и даже больше) теперь делает Meowbox.
MODX в центре
Панель в первую очередь заточена под MODX 3. Поддержка MODX Revo тоже есть, потому что старые проекты никуда не исчезли.
Тут и вход в админку одной кнопкой без ввода пароля (like-modhost), и апгрейд версии MODX в пару кликов (like-modhost), и другие мелочи. Автоматический деплой Modstore провайдера и выбор предустановленных компонентов подвезут позже.
В панели есть MODX Доктор.
Это диагностика типовых проблем MODX-сайта. Нажал кнопку, получил список того, что не так: права, кэш, оставленный setup, проблемы с путями и другие вещи, которые обычно ищутся руками. Нажал «Починить» – проблемы исчезли.
Список проверок будет пополняться. Идея простая: если проблема встречалась больше 1 раза, её надо уметь проверять кнопкой.
.
Adminer вместо PhpMyAdmin
Для работы с БД используется
Можно открыть базу без ручного ввода паролей. Нажал кнопку Adminer, и панель выдаёт одноразовый доступ.
.
Бэкапы через Restic
Бэкапы встроены в панель нормально, а не в виде «ну там где-то лежит архив, удачи».
Есть поддержка Restic. Можно хранить копии локально, в S3, на Yandex Disk или Cloud Mail.ru.
Восстановление тоже есть: полное или частичное. Можно не тащить весь сайт обратно, если нужен один файл или кусок данных.
Есть даже механизм сравнения между restic-снапшотами, а также между снапшотом и текущей версией файлов.
.
Nginx без боли
Meowbox генерирует nginx-конфиги сам.
Но есть важная деталь: конфиг сделан слоями. Панель управляет своими частями, а пользовательский кастомный блок живёт отдельно и не затирается при каждом изменении настроек.
То есть можно править специфичные правила сайта и не бояться, что панель потом всё перепишет поверх.
Для MODX это особенно полезно. Friendly URLs, защита core, отдельные пути manager и connectors, лимиты, gzip, rate limit, SSL, редиректы, всё должно жить вместе и не превращаться в кашу. Поэтому CMS-специфичная конфигурация доступна к редактированию напрямую, а остальным рулит панель через настройки в Web UI.
.
Контроль над сервером
В панели есть мониторинг, логи, cron-задачи, SSL, PHP-версии, базы, файлы, firewall, DNS доменов (через API Yandex 360 или Cloudflare) и что-то там ещё.
Архитектурно устроено так: API хранит состояние и принимает решения, а системные команды выполняет агент на сервере. Это позволяет держать опасные операции в одном месте и не размазывать прямой доступ к ОС по всему проекту.
Сама панель хранит данные в SQLite файле. Для маленькой self-hosted панели это проще всего: меньше жрёт память, проще бэкапить, проще переносить.
.
Что дальше
Сейчас Meowbox больше всего полезен для MODX.
Но в будущем я хочу добавить удобное управление Node.js сайтами и приложениями: деплой, PM2-процессы, возможно Docker-контейнеры, нормальную поддержку CI/CD.
Ну и, конечно, AI-админа для самых рискованных. Чтобы можно было написать «почини сайт», а он одной командой rm -rf / избавил вас от головной боли.
.
Статус
Meowbox сейчас в разработке.
Это значит, что баги будут точно! Некоторые места ещё будут допиливаться. Часть функций будет меняться. Что-то будет ломаться, чиниться и переписываться по мере боевого использования.
Я делаю панель под свои задачи, в режиме реальной обкатки.
.
P.S.
Используя Meowbox, вы полностью берёте на себя ответственность за свои VPS, сайты, базы и данные.
Панель помогает администрировать сервер, но не отменяет бэкапы, голову и осторожность. Пока проект в активной разработке, это особенно важно.
Ссылка на репозиторий: github.com/gvozdb/meowbox
Комментарии: 61
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Из того что сразу бросается в глаза, странно что imagick который по сути около обязательный для всех сайтов на MODX надо устанавливать дополнительно на PHP
По поводу PHP, стоят от 8.0 и выше, других выбрать нельзя, как поставить на сервер и увидит ли панель не до конца ясно, однако при создании сайта могу поставить 7.4 (будет ошибка и не создаст), тут я бы просто предложил иметь возможность установить 7.4 из выпадающего списка в списке PHP
Откровенно скажу, мне не особо требуется на моих сайтах Imagick, поэтому я его не добавлял в список поставляемых расширений. Хватало фолбэка на GD… Но я добавлю в новой версии Imagick стандартом, а также создам миграцию при апгрейде панельки.
Вот что касается PHP, выглядит так. (в выпадающем списке ток 8.0-8.4)
P.S. Рад, что в остальном понравилось!) Позже будут ещё плюшки, типа управления всеми добавленными серверами (и сайтами на них) через одну мастер-панель.
При создании сайтов на любой версии PHP выкидывает ошибку, вручную так и не получилось у меня справиться с тем что ppa закрылся, ни через прокси, никак.
На Debian вообще панель не встала, на этапе install dependencies просто останавливается процесс. (Пробовал потому что не нашел на гите инфу какая ось поддерживается)
Потому что это проблема глобальная, насколько я понял. Выкатил новый релиз, там уже вшит Yandex Mirror.
Ubuntu — какую именно версию нужно использовать?
Под Debian 13 не будет ли версии ?))
И еще вопрос можно ли блокировать доступ к админке, на уровне ip, ну чтобы вообще не открывалась даже форма авторизации, для ip не из белого списка (как у HESTIACP)
Есть base auth + login:password. В будущих релизах сделаю открытый доступ только по белым IP.
Пробовал вдс от бегета, локация Москва, Литва.
И еще от другого хостера питерский вдс
Везде одно и тоже, не фурычит)
Может я что-то не так делаю?
1) Чистый вдс с Ubuntu 22.04
2) apt-get update && apt-get dist-upgrade
3) reboot
4) 5) reboot
— не открывается, хотя сам myhost пингуется нормально.
— не открывается
А попробуй пока в терминале перейти в папку панели:
и выполнить:
понятное дело, заменив <твой-ip> на реальный
и для достоверности проверить, добавился ли:
Вот в логе в конце что:
Попробуй поставить снова. Можешь удалить папку meowbox полностью и установить по новой:
Попытка 1) Дошло до установки Adminer потом какой-то конфиг не найден и все.
Попытка 2) Переустановил вдс
Доходит до установки
[bootstrap] Узнаю latest release из github.com/gvozdb/meowbox…
[bootstrap] Целевая версия: v0.6.5
[bootstrap] Скачиваю tarball…
и все на этом. Не знаю, опять что-то блокируют со всех сторон, что-ли не пойму. VDS в дата центре селектел в питере. Попробую еще на за бугорном
теперь дальше [bootstrap] Скачиваю tarball… не идет.
Вот теперь так:
И на этом все))
Вот часть лога, самый конец
Можно попробовать новый релиз, там уже всё поправлено.
Для бэкапов на мой взгляд не хватает создания хранилища по sftp, Restic вроде это умеет из коробки.
P.S. Очень рад, что нравится! Если будут идеи улучшения – кидайте под этот пост.
А по поводу, например яндекса, меня «выгнали» из «яндекс диска» за такие бэкапы, правда деньги вернули, лет 7-8 назад, с тех пор не пользуюсь всем этим хозяйством от яндекса. Не знаю может сейчас у них правила поменялись по поводу бэкапов.
у FirstVDS = 2 000 руб. за 1TB
У бегета = 2100 руб за 1TB
У яндекса s3 хранилище 1TB = 2 373 руб.
Не так уж и дешево)
Там же будет SFTP для бекапов, но я его не протестил, поэтому не могу ничего про работоспособность сказать. Если будут баги – дайте знать.
Не создается новый сайт если при создании указать версию php 8.4
Пишет «ошибка создания сайта»
И переключится не получается на php 8.4 если создать сайт с другой версий php
И еще вопрос у меня панель открывается по адресу а вот по этому не открывается Так и задумано? или что-то настроить надо?
С SSL сертами для IP вообще есть проблемы, поэтому пока только http для панели. Но там при инсталле есть возможность указать домен (PANEL_DOMAIN=panel_domain), в этом случае будет выпущен серт и панель станет доступна по https://panel_domain/. В любом случае, я запишу себе решение этой проблемы и вероятно реализую привязку домена в /settings и (на выбор) выпуск self-signed SSL для IP (в этом случае браузер будет ругаться при входе в панель, скорее всего).
Во время установки
сертификат ssl let's encrypt выдается на имя хоста (на то имя, которое в host сервера прописано)
и и также самоподписанный сертификат на ip сервера
Сразу спрошу, а какой командой обновляться через консоль? а то через панель 2-3 попытки надо сделать, чтобы обновиться. Все ошибки да таймауты
Здесь чуть подробнее – github.com/gvozdb/meowbox
Павел, а ты используешь уже эту панель для боевых сайтов?
Вот что не хватает на мой взгляд:
1) Возможность редактировать /etc/mysql/my.cnf через панель (у hestiacp есть)
2) Установку и настройку FAIL2BAN
3) Возможность редактировать: SSH /etc/ssh/sshd_config через панель (у hestiacp есть)
Записал, думаю не сложно будет добавить.
Пока обновился до v0.6.25, три раза запускал обновление.
Не могу зайти в adminer:
Жму на перейти в adminer
получаю: 502 Bad Gateway
Еще по логике обновления, мне вот не нужен php8.1 — я его удалил, но при каждом обновлении опять устанавливается. На мой взгляд как-то не логично.
В темной теме при редактировании конфигов, модалка уж больно прозрачная (на светлой все нормально)
Создал хранилище SFTP
Жму «тест» ошибка:
my: restic init failed: Fatal: create repository at sftp:myuser@мойip:/ftps_files/test/_connection-test_ failed: unable to start the sftp session, error: error receiving version packet from server: read |0: file already closed
устанавливал все по новой на новый vds в чехии.
пробовал удалять и ставит вновь php8.4, нельзя его выбрать для сайта, когда создаю новый сайт или переключить действующий. В разделе PHP все нормально «PHP 8.4 Running», при установке по новой кстати, появляется ошибка связанная с таймаутом.
На S3 на пол дороги зависло создание бэкапа. Как остановить?
В общем сырая панелька, багов много) Функционала много, но толком многое не работает, и видимо даже не тестировалась, Сношу… до лучших времен)