Справочник модулей

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 вместе с данными

См. также