Справочник модулей
MitDev собирает сервер из независимых модулей. Каждый модуль — отдельный файл
в modules/ с единым контрактом (module_install, module_verify,
module_rollback, module_remove — см. DEVELOPER.md).
Эта страница — оглавление. Подробная документация по каждому модулю —
что он делает, как его настраивать, как проверить, что чинить при ошибках —
лежит в docs/modules/. Ссылки в таблице ведут прямо туда.
Обозначения: 🔒 — обязательный (ставится всегда), ☐ — опциональный (выбирается в мастере установки).
Как читать документацию модуля
Каждая страница построена одинаково, поэтому нужный ответ находится быстро:
| Раздел | Отвечает на вопрос |
|---|---|
| Зачем нужен | Нужен ли мне этот модуль вообще |
| Что именно делает | Что изменится на сервере после установки |
| Файлы, службы и порты | Куда смотреть, что слушает сеть |
| Настройка | Какие переменные есть и что они меняют |
| Как переопределить настройки | Как задать своё значение |
| Проверка, что всё работает | Как убедиться, что модуль жив |
| Типовые задачи | Готовые команды для копирования |
| Частые ошибки | Симптом → причина → команда-решение |
| Безопасность и продакшен | Что закрыто, а что осталось на вас |
| Откат и удаление | Как снять модуль и что будет с данными |
Базовая система
| Модуль | Что даёт | Требует | |
|---|---|---|---|
| 01-system | 🔒 | Обновление системы, базовые пакеты, часовой пояс, swap при нехватке RAM | — |
| 02-user | 🔒 | Пользователь для деплоя, sudo, SSH-ключи (Ed25519) | — |
| 03-security | 🔒 | Усиление SSH: порт, запрет root-входа, только ключи | 02-user |
| 11-utils | 🔒 | git, jq, htop, btop, tmux, build-essential и прочие утилиты | — |
| 99-cleanup | 🔒 | apt autoremove --purge, autoclean, опционально docker system prune |
— |
Периметр и доступ
| Модуль | Что даёт | Требует | |
|---|---|---|---|
| 06-nginx | ☐ | Веб-сервер и reverse proxy, security-заголовки, health-endpoint | — |
| 08-certbot | ☐ | Бесплатные TLS-сертификаты Let's Encrypt с автопродлением | 06-nginx |
| 09-firewall | ☐ | UFW: закрыто всё входящее, кроме SSH, 80 и 443 | — |
| 10-fail2ban | ☐ | Автоматический бан брутфорса по SSH | — |
Рантаймы приложений
| Модуль | Что даёт | Требует | |
|---|---|---|---|
| 04-node | ☐ | Node.js (NodeSource), npm, corepack, pnpm, yarn | — |
| 07-pm2 | ☐ | Менеджер процессов PM2, автозапуск после reboot, ротация логов | 04-node |
| 20-php | ☐ | PHP-FPM, типовые расширения, Composer (Laravel, WordPress) | 06-nginx |
| 21-python | ☐ | Python 3, venv, pip, pipx (FastAPI, Django) | — |
| 22-go | ☐ | Официальный дистрибутив Go в /usr/local/go |
— |
| 05-docker | ☐ | Docker CE, Compose, Buildx | — |
Хранилища данных
| Модуль | Что даёт | Требует | |
|---|---|---|---|
| 12-postgresql | ☐ | PostgreSQL, база и роль приложения | — |
| 13-redis | ☐ | Redis на localhost с паролем (requirepass) |
— |
| 14-mongodb | ☐ | MongoDB из официального репозитория ⚠️ без аутентификации | — |
| 16-minio | ☐ | S3-совместимое объектное хранилище | — |
Очереди и оркестрация
| Модуль | Что даёт | Требует | |
|---|---|---|---|
| 15-rabbitmq | ☐ | Брокер сообщений RabbitMQ + management-консоль | — |
| 17-kubernetes | ☐ | Kubernetes (k3s) в режимах single / init / join, kubectl, Helm | — |
| 23-panel | ☐ | Веб-панель управления сервером (mitdevd) |
12-postgresql, 13-redis |
Отказоустойчивость PostgreSQL
| Модуль | Что даёт | Требует | |
|---|---|---|---|
| 18-pgcluster | ☐ | Потоковая репликация, автоматический failover, защита от split-brain | 12-postgresql |
| 19-pgvip | ☐ | Виртуальный IP: одна строка подключения навсегда | 18-pgcluster |
Модули с зависимостями инсталлятор добавляет сам: выбрав pm2, вы получите
и node; выбрав pgvip — pgcluster и postgresql.
Отказоустойчивый app-ingress (Cloudflare)
| Модуль | Что даёт | Требует | |
|---|---|---|---|
| 24-cloudflare | ☐ командный | app-ingress через Cloudflare (туннель/DNS/LB, всё через API) + локальные health-эндпоинт и tunnel-watchdog для честного failover без входящих портов | 06-nginx (фронт), общая БД/Redis |
Модуль 24-cloudflare — командный, не устанавливается галочкой в инсталляторе.
Узел вводится в ingress подкомандами mitdev cf … (login, health install,
watchdog install, tunnel create/config/run, dns, lb, status). Отвечает
на вопрос «как пользователи попадут на живой узел приложения», тогда как
18/19-pg* отвечают за состояние БД. Подробно —
в 24-cloudflare.md.
Общее для всех модулей
Идемпотентность. Повторный запуск установки безопасен: завершённые модули
отмечены маркером /var/lib/mitdev/state/<модуль>.done и пропускаются.
Откат при сбое. Пока модуль работает, он регистрирует обратные действия. Если установка падает, MitDev проигрывает их в обратном порядке — сервер возвращается в исходное состояние.
Пароли. Всё, что MitDev сгенерировал (пароли БД, Redis, RabbitMQ, MinIO),
лежит в /root/.mitdev-credentials с правами 0600:
sudo cat /root/.mitdev-credentials
Журналы. Подробный ход установки — /var/log/mitdev/install.log,
только ошибки с полным выводом команд — /var/log/mitdev/errors.log:
sudo mitdev logs install # весь журнал
sudo mitdev logs errors # только ошибки
sudo mitdev doctor # быстрая диагностика сервера
Удаление. У каждого модуля своя команда — mitdev remove <модуль>
(имя из колонки таблицы без номера: system, pgcluster, pgvip…).
По умолчанию данные сохраняются; флаг --purge удаляет и их.
Полная таблица «что сохраняется / что удаляется» —
в COMMANDS.md → Удаление компонентов.
sudo mitdev remove --list # какие модули установлены
sudo mitdev remove redis # снять Redis, данные оставить
sudo mitdev remove redis --purge # снять Redis вместе с данными
См. также
- INSTALL.md — установка с нуля
- CONFIGURATION.md — все переменные в одном месте
- COMMANDS.md — справочник команд
mitdev - TROUBLESHOOTING.md — что делать, когда сломалось
- ARCHITECTURE.md — как устроен MitDev внутри
- DEVELOPER.md — контракт модуля, если пишете свой