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

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

См. также