Skip to content

Настройка: все переменные ​

Каждая настройка — переменная окружения. У службы хоста они лежат в /etc/netknownsthat/nkt.env, у хаба — в /etc/netknownsthat/hub.env, в Docker — в environment compose-файла или .env рядом с ним. Заготовки с пояснениями — deploy/nkt.env.example и deploy/hub.env.example.

  • Длительности — 30s, 5m, 6h, 720h; голое число — секунды.
  • Списки — через запятую.
  • Логические — true / false.
  • Пустое значение равно отсутствию переменной — берётся умолчание.

Хост под хабом

nkt.env управляемого хоста хаб перезаписывает при каждой установке и обновлении. Настройки такого хоста (порт API, терминал, резервный канал) меняются в форме хоста на хабе, а не правкой файла.

Режим и данные ​

ПеременнаяПо умолчаниюСмысл
NKT_MODElocal на Linux, иначе fixtureslocal — читать настоящий хост, fixtures — снапшот, hub — режим хаба
NKT_DATA_DIR/var/lib/netknownsthat; у хаба /var/lib/netknownsthat-hub; в fixtures — ./dataБаза, история конфигов, TLS, кэши
NKT_FIXTURES_ROOT./fixtures/hostКаталог снапшота для fixtures
NKT_DEMO_BACKFILLtrueВ fixtures засеять 14 дней синтетической истории

Веб и доступ ​

ПеременнаяПо умолчаниюСмысл
NKT_ADDR127.0.0.1:8077Адрес интерфейса и API
NKT_COOKIE_SECUREtrueCookie сессии только по HTTPS; false — для SSH-туннеля по HTTP
NKT_SESSION_TTL12hСрок жизни сессии
NKT_CORS_ORIGINShttp://localhost:5173Дополнительные разрешённые origin (для запросов, меняющих состояние, и CORS)
NKT_TLS_ENABLEDfalseОтдавать HTTPS самому
NKT_TLS_HOSTS127.0.0.1,::1,<имя хоста>Имена и адреса в самоподписанном сертификате
NKT_TLS_CERT, NKT_TLS_KEYпустоСвой сертификат и ключ (оба сразу) вместо самоподписанного
NKT_FORWARD_ADDRхост из NKT_ADDR, порт 8446Отдельный адрес для пробросов портов Kubernetes в браузер; off — выключить (пробросы по пути, в песочнице)
NKT_FORWARD_PUBLIC_URLпустоКак браузер видит адрес пробросов за прокси: https://fwd.example.com

Учётные записи ​

ПеременнаяПо умолчаниюСмысл
NKT_BOOTSTRAP_ADMIN_USERadminЛогин первого администратора
NKT_BOOTSTRAP_ADMIN_PASSWORDпусто — сгенерироватьПароль первого администратора (действует только при первом запуске)
NKT_SYSTEM_LOGINtrue в local, иначе falseВход системной учётной записью хоста (нужен unix_chkpwd, группа sudo/wheel/admin или root). В хабе недоступен

Управление ​

ПеременнаяПо умолчаниюСмысл
NKT_ALLOW_MUTATIONStruefalse — всё приложение только для чтения
NKT_COMMAND_TIMEOUT30sПредел для команд хоста (systemctl, nginx -t…)
NKT_TERMINAL_ENABLEDfalse; у хаба trueВеб-терминал (root-shell в браузере). У хаба — для строки «localhost», то есть машины самого хаба
NKT_TERMINAL_IDLE_TIMEOUT30mЗакрыть терминал без ввода и вывода
NKT_TERMINAL_USERпусто — от имени службыОт чьего имени открывается терминал хоста; хаб ставит сюда своего SSH-пользователя

Что читать на хосте ​

ПеременнаяПо умолчаниюСмысл
NKT_NGINX_ROOT, NKT_NGINX_MAIN_CONFIG/etc/nginx, /etc/nginx/nginx.confКонфигурация nginx
NKT_HAPROXY_ROOT, NKT_HAPROXY_MAIN_CONFIG/etc/haproxy, /etc/haproxy/haproxy.cfgКонфигурация haproxy
NKT_CADDY_ROOT, NKT_CADDY_MAIN_CONFIG/etc/caddy, /etc/caddy/CaddyfileКонфигурация Caddy
NKT_FAIL2BAN_ROOT/etc/fail2banКонфигурация fail2ban
NKT_SYSTEMD_UNIT_ROOT/etc/systemd/systemЮниты в «Конфигурациях»
NKT_NETPLAN_ROOT/etc/netplanNetplan
NKT_SSH_ROOT/etc/sshsshd
NKT_SYSCTL_ROOT/etc/sysctl.dsysctl
NKT_CRON_ROOT/etc/cron.dcron
NKT_COMPOSE_FILES/srv/docker/docker-compose.yml,/opt/stacks/docker-compose.ymlCompose-файлы, которые показывать и править
NKT_FILES_ROOTS/home,/srv,/opt,/var/wwwКорни проводника «Диски → Файлы» (показываются только существующие; /tmp — всегда)
NKT_NGINX_ACCESS_LOGS/var/log/nginx/access.logЛоги доступа nginx для нагрузки
NKT_HAPROXY_ACCESS_LOGS/var/log/haproxy.logЛоги доступа haproxy
NKT_DOCKER_SOCKET/var/run/docker.sockСокет Docker
NKT_PODMAN_SOCKET/run/podman/podman.sockСокет Podman
NKT_LIBVIRT_URIqemu:///systemПодключение к libvirt

Наблюдение ​

ПеременнаяПо умолчаниюСмысл
NKT_SCHEDULER_ENABLEDtrueФоновые пробы, метрики, сканы; без него нет истории
NKT_PROBE_INTERVAL1mКак часто проверять доступность
NKT_PROBE_TIMEOUT5sПредел одной пробы
NKT_METRICS_INTERVAL1mСбор нагрузки (счётчики, контейнеры, машины)
NKT_LOG_SCAN_INTERVAL5mРазбор логов доступа
NKT_INVENTORY_INTERVAL5mПолный скан хоста
NKT_DRIFT_INTERVAL1hСверка хоста с профилями; 0 — не сверять
NKT_RETENTION720h (30 дней)Сколько хранить историю проб и метрик

Сертификаты ​

ПеременнаяПо умолчаниюСмысл
NKT_AUTO_RENEW_CERTSfalseПродлевать сертификаты certbot по расписанию (на время продления сайт останавливается)
NKT_AUTO_RENEW_INTERVAL6hКак часто проверять
NKT_AUTO_RENEW_WITHIN720h (30 дней)За сколько до истечения продлевать
NKT_CERTBOT_TIMEOUT3mПредел certbot (сетевой вызов к Let's Encrypt)
NKT_CERTBOT_EMAILпустоПочта для Let's Encrypt при выпуске

Хаб ​

ПеременнаяПо умолчаниюСмысл
NKT_HUB_MASTER_KEYпусто — сгенерировать в NKT_DATA_DIR/hub.keyКлюч шифрования секретов (AES-256, base64: openssl rand -base64 32)
NKT_HUB_SOURCE_ROOTрабочий каталогКлон исходников для кросс-компиляции nkt под хосты; нет исходников — хаб качает релиз
NKT_HUB_GO_BINgoКаким Go собирать; не работает — хаб ставит свой в NKT_DATA_DIR/go-toolchain
NKT_HUB_RELEASE_REPOpiqab/nktОткуда качать релизы (для форков)
NKT_HUB_GITHUB_APIhttps://api.github.comAPI GitHub (для GitHub Enterprise или стенда)
NKT_HUB_HOST_API_PORT8077Порт API nkt на хостах (loopback)
NKT_HUB_TUNNEL_PORT8078Порт резервного канала на хостах
NKT_HUB_FINDINGS_POLL_INTERVAL60sОпрос хостов: доступность и счётчики находок
NKT_HUB_UPDATE_CHECK_INTERVAL6hПроверка новых релизов (только бейдж)
NKT_HUB_VULNDB_REFRESH_INTERVAL12hПроверка свежести общей базы trivy
NKT_HUB_CLAMDB_REFRESH_INTERVAL24hОбновление копии базы ClamAV; 0 — не обновлять
NKT_HUB_APTCACHE_MAX_GB20Лимит кэша пакетов; 0 — без лимита (значение из интерфейса важнее)
NKT_HUB_APTCACHE_PORT3142Порт кэша на хостах (loopback)
NKT_HUB_EXPORT_PASSWORDпустоПароль файла для nkt hub delete -export и nkt hub import без терминала

Хаб читает и общие переменные выше (NKT_ADDR, TLS, учётные записи, терминал для «localhost», пробросы).

Служебные ​

Задаются самим nkt или хабом — вручную их не ставят:

ПеременнаяКто ставит
NKT_HUB_TUNNEL_LISTEN_ADDR, NKT_HUB_TUNNEL_TOKENхаб в nkt.env хоста с резервным каналом
NKT_GIT_SECRET, NKT_CONSOLE_USERnkt для дочерних процессов (git, консоли контейнеров)
NKT_FAKE_BIN, NKT_FAKE_VM_BIN, NKT_TEST_*тесты и стенды, см. Разработку

nkt-edge ​

Переменные EDGE_* — на странице nkt-edge.