Справочник конфигурации
Здесь собраны все переменные разом. Что именно каждая из них меняет в
конкретном модуле, когда её стоит трогать и чем это грозит — описано на
странице этого модуля в docs/modules/ (оглавление —
MODULES.md).
Все параметры живут в config/defaults.conf и могут быть переопределены
переменными окружения перед запуском инсталлятора:
sudo NODE_MAJOR=24 SWAP_SIZE_MB=4096 ./install.sh
Файл сорсится bash'ем — допустимы только строки KEY=VALUE и комментарии.
Каждая переменная объявлена в форме VAR="${VAR:-значение}", поэтому
значение из окружения всегда выигрывает.
Брендинг #
| Переменная |
По умолчанию |
Назначение |
BRAND_NAME |
MITDEV SERVER SETUP |
Заголовок в шапке TUI и диалогах |
Требования к платформе #
| Переменная |
По умолчанию |
Назначение |
REQUIRED_UBUNTU_VERSION |
22.04 |
Ожидаемая версия Ubuntu; иная версия — предупреждение, не Ubuntu — отказ |
MIN_DISK_GB |
10 |
Минимум свободного места на /; меньше — отказ |
MIN_RAM_MB |
1024 |
Минимум RAM; меньше — предупреждение + swap |
Модуль system #
| Переменная |
По умолчанию |
Назначение |
TIMEZONE |
UTC |
Часовой пояс (timedatectl set-timezone) |
SWAP_FILE |
/swapfile |
Путь swap-файла |
SWAP_SIZE_MB |
2048 |
Размер создаваемого swap |
SWAP_RAM_THRESHOLD_MB |
2048 |
Swap создаётся только при RAM ниже порога и отсутствии swap |
Пользователь деплоя #
| Переменная |
По умолчанию |
Назначение |
DEPLOY_USER_DEFAULT |
deploy |
Имя, подставляемое в диалог |
DEPLOY_HOME_DIRS |
apps docker logs backups scripts |
Каталоги в домашней директории (0750) |
SSH / безопасность #
| Переменная |
По умолчанию |
Назначение |
SSH_PORT_DEFAULT |
22 |
Порт, подставляемый в диалог |
SSH_MAX_AUTH_TRIES |
3 |
MaxAuthTries в drop-in sshd |
SSH_LOGIN_GRACE_TIME |
30 |
LoginGraceTime (секунды) |
GENERATE_SSH_KEYS_DEFAULT |
yes |
Предлагать генерацию Ed25519-ключей для deploy-пользователя и root |
GENERATE_DEPLOY_SSH_KEY_DEFAULT |
yes |
Совместимый alias для старых неинтерактивных запусков |
GENERATED_SSH_KEY_DIR |
/root/.mitdev-keys |
Root-only каталог приватных ключей для импорта в Termius/SSH-клиенты |
Файрвол и Fail2Ban #
| Переменная |
По умолчанию |
Назначение |
UFW_EXTRA_PORTS |
80/tcp 443/tcp |
Порты, открываемые помимо SSH (через пробел) |
F2B_BANTIME |
1h |
Длительность бана |
F2B_FINDTIME |
10m |
Окно подсчёта неудачных попыток |
F2B_MAXRETRY |
5 |
Попыток до бана |
Node.js #
| Переменная |
По умолчанию |
Назначение |
NODE_MAJOR |
24 |
Мажорная версия NodeSource-репозитория |
Базы данных и службы #
| Переменная |
По умолчанию |
Назначение |
POSTGRES_DB_DEFAULT |
app |
Имя базы, подставляемое в вопрос инсталлятора |
MONGO_VERSION |
8.0 |
Ветка официального репозитория MongoDB |
REDIS_BIND |
пусто |
Значение bind в redis.conf. Пусто = модуль сам определит loopback. Синтаксис -::1 поддерживают только Redis 6.2+/7 — на Redis 6.0.x (Ubuntu 22.04) он ломает старт, поэтому задавайте вручную только осознанно |
Redis HA / Sentinel (mitdev redis cluster-init / join) #
| Переменная |
По умолчанию |
Назначение |
REDIS_PORT |
6379 |
Порт Redis. Должен быть открыт между всеми узлами кластера |
REDIS_SENTINEL_PORT |
26379 |
Порт Sentinel. Тоже между всеми узлами |
REDIS_SENTINEL_DOWN_AFTER |
10000 |
Мс без ответа, после которых Sentinel считает master упавшим. Значения около 5000 на публичной сети дают ложные срабатывания |
REDIS_SENTINEL_FAILOVER_TIMEOUT |
180000 |
Мс на весь failover, включая переконфигурацию реплик, и минимальный интервал до следующей попытки. Малое значение обрывает синхронизацию реплики и разрешает немедленный повторный failover — два Sentinel'а начинают бесконечно повышать разные узлы. Не опускайте ниже времени полной синхронизации вашей базы |
REDIS_SENTINEL_PARALLEL_SYNCS |
1 |
Сколько реплик синхронизируются с новым master одновременно |
REDIS_PEERS_FILE |
/etc/default/mitdev-redis |
Список узлов кластера (пишется командами, не руками) |
База, пользователь и пароль БД задаются вопросами инсталлятора
(или окружением: PG_APP_DB, PG_APP_USER, PG_APP_PASSWORD;
пустой пароль — сгенерировать).
Кластер PostgreSQL (pgcluster) #
| Переменная |
По умолчанию |
Назначение |
PG_REPLICATION_USER |
replicator |
Имя роли репликации |
PG_MAX_WAL_SENDERS |
10 |
max_wal_senders на primary |
PG_MAX_REPLICATION_SLOTS |
10 |
max_replication_slots на primary |
PG_WAL_KEEP_SIZE |
512MB |
wal_keep_size на primary |
PG_WATCHDOG_INTERVAL |
5 |
Период проверки primary watchdog'ом (сек) |
PG_WATCHDOG_THRESHOLD |
6 |
Подряд неудач до автоматического promote |
PG_WATCHDOG_PROMOTE_DELAY |
0 |
Задержка перед promote (сек) — приоритет между репликами |
PG_VIP_VRID |
51 |
VRRP virtual_router_id (уникален в пределах L2-сегмента) |
PG_ROLE_PORT |
8008 |
Порт эндпоинта роли (200 primary / 503 replica) на DB-узлах |
PG_PROXY_PORT |
5432 |
Локальный порт HAProxy на серверах приложений (pg proxy) |
VIP-адрес, пиры и интерфейс задаются интерактивно (или окружением:
PG_VIP_ADDRESS=10.0.0.100/24, PG_VIP_PEERS="ip1 ip2", PG_VIP_IFACE).
Роль узла и адрес primary задаются интерактивно (или окружением:
PG_CLUSTER_ROLE=primary|replica, PG_PRIMARY_HOST, PG_REPLICATION_PASSWORD,
PG_REPLICA_IPS="ip1 ip2", PG_CLUSTER_PEERS="ip1 ip2" — пиры для
самовосстановления, PG_AUTO_FAILOVER=yes|no).
Kubernetes (kubernetes) #
Режим кластера задаётся интерактивно (или окружением):
K8S_CLUSTER_MODE=single|init|join, K8S_SERVER_URL=https://<ip>:6443,
K8S_TOKEN (из mitdev k8s token), K8S_PEERS="ip1 ip2" — IP остальных
серверов кластера для точечных правил файрвола.
MinIO #
| Переменная |
По умолчанию |
Назначение |
MINIO_DATA_DIR |
/var/lib/minio |
Каталог данных |
MINIO_PORT |
9000 |
Порт S3-API |
MINIO_CONSOLE_PORT |
9001 |
Порт веб-консоли |
Cloudflare app-ingress (mitdev cf) #
Командный модуль 24-cloudflare: ingress через
Cloudflare (туннель/DNS/LB) + локальные health-эндпоинт и tunnel-watchdog.
Секреты (CF_API_TOKEN) задаются перед mitdev cf login и сохраняются в креды —
в config/defaults.conf они пусты по умолчанию.
| Переменная |
По умолчанию |
Назначение |
CF_API_TOKEN |
пусто |
Scoped API-токен Cloudflare (Tunnel/DNS/LB Edit + Account Read). Только в кредах, никогда в argv/лог |
CF_ACCOUNT_ID |
пусто |
ID аккаунта Cloudflare (нужен для tunnel/lb) |
CF_ZONE_ID |
пусто |
ID зоны (нужен для dns/lb) |
CF_INGRESS_MODE |
lb-over-tunnel |
Режим ingress: tunnel-only / lb-only / lb-over-tunnel |
CF_HEALTH_PORT |
8009 |
Порт health-эндпоинта узла |
CF_HEALTH_BIND_IP |
127.0.0.1 |
Bind health-эндпоинта (loopback/WG-адрес). Никогда 0.0.0.0 — сигнал failover не должен светить наружу |
CF_APP_PORT |
80 |
Порт локального фронта, который проверяет health |
CF_HEALTH_HOST_PREFIX |
health |
Префикс скрытого health-хоста <prefix>.<домен> (публичной DNS-записи на него нет) |
CF_TUNNEL_UNIT |
mitdev-cf-tunnel |
Имя systemd-юнита cloudflared, которым управляет watchdog |
CF_TUNNEL_FAIL_THRESHOLD |
3 |
Сколько 503 подряд до снятия узла из ротации |
CF_TUNNEL_RESTORE_THRESHOLD |
2 |
Сколько 200 подряд до возврата узла |
CF_TUNNEL_CHECK_INTERVAL |
5 |
Интервал опроса health tunnel-watchdog'ом, с |
CF_TUNNEL_CURL_TIMEOUT |
3 |
Таймаут одной пробы health, с |
CF_LB_MONITOR_INTERVAL |
60 |
Период пробы LB-монитора, с (второй эшелон) |
CF_LB_MONITOR_TIMEOUT |
5 |
Таймаут пробы LB-монитора, с |
CF_LB_MONITOR_RETRIES |
2 |
Провалов подряд до «origin мёртв» (анти-флаппинг) |
Пути #
| Переменная |
По умолчанию |
Назначение |
MITDEV_PREFIX |
/opt/mitdev |
Куда копируется проект |
MITDEV_STATE_DIR |
/var/lib/mitdev |
Маркеры состояния, стек отката, install.env, манифесты k8s |
MITDEV_LOG_DIR |
/var/log/mitdev |
Журналы |
Очистка #
| Переменная |
По умолчанию |
Назначение |
PRUNE_DOCKER |
no |
yes — выполнять docker system prune -f в модуле cleanup |
Прочие переменные окружения #
| Переменная |
Назначение |
NO_COLOR=1 |
Отключить цветной вывод |
LOG_FILE, ERROR_LOG |
Переопределить пути журналов |
Файлы состояния (генерируются, не редактируются вручную) #
| Файл |
Содержимое |
/var/lib/mitdev/state/<модуль>.done |
Маркер выполнения модуля (unix-время) |
/var/lib/mitdev/rollback.stack |
Стек команд отката текущей установки |
/var/lib/mitdev/install.env |
Факты установки: DEPLOY_USER, SSH_PORT, компоненты, роль PG, MITDEV_URL (для self-update) |
/root/.mitdev-credentials |
Сгенерированные пароли служб (0600) |
/etc/default/mitdev-pg-watchdog |
Конфиг watchdog самовосстановления (PEERS, пороги) |
~postgres/.mitdev-repl-pass |
Пароль репликации для авто-восстановления (0600, postgres) |
~postgres/.mitdev-pg-primary |
Текущий primary после авто-перецепления |
/etc/sudoers.d/mitdev-pg-watchdog |
Узкое право postgres на systemctl stop/start/restart postgresql |
/opt/mitdev.prev |
Прежняя версия после self-update (ручной откат) |
/root/.mitdev-keys/<user>_ed25519 |
Сгенерированный приватный SSH-ключ deploy-пользователя (0600) |
/root/.mitdev-keys/root_ed25519 |
Сгенерированный приватный SSH-ключ root (0600) |