Skip to content

Releases: piqab/nkt

v1.13.21-beta

v1.13.21-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 16:48

v1.13.21 — 2026-10-17

  • Traffic Fly: видно, почему туннель не живой и где теряются пакеты.
    Под шлюзом и на карте у хоста — причина по счётчикам WireGuard с обеих
    сторон: «хост ещё не настроен» (применение не дошло), «нет на шлюзе»,
    «туннель на хосте не поднят», «UDP 51820 блокируется» (хост шлёт, шлюз
    не получает — файрвол провайдера или исходящий UDP), «ключи не сошлись»,
    «связь пропала» — с байтами «хост отправил / шлюз получил».
  • Применение проверяет хосты-цели заранее: nkt на хосте есть и не
    старше 1.13.12 — иначе понятный отказ до любых изменений. Запрос к хосту
    — с пределом 20 секунд и одной повторной попыткой; вместо «context
    deadline exceeded» — «хост … не ответил за 20 с» с советом, что
    проверить. «Сухой прогон» делает то же.

v1.13.20 — 2026-10-17

  • Traffic Fly: список контейнеров и машин в редакторе маршрута — быстро.
    Раньше хаб для каждой строки цели по очереди спрашивал у хоста и
    контейнеры, и виртуальные машины, и LXD — на хосте без libvirt или LXD
    ожидание отказа задерживало весь список. Теперь запрашивается только
    выбранный вид, параллельно и с пределом в 8 секунд, одна загрузка на
    хост для всех строк, хаб помнит список 30 секунд; пока он грузится, в
    поле — «загрузка…», рядом — кнопка «обновить» (↻).

v1.13.19 — 2026-10-17

  • Traffic Fly: «живы 0 из N», когда данных просто нет. Пока шлюз не
    прислал сводку (сразу после «Применить» или если он не ответил на
    очередной опрос) и пока цели ни разу не проверены, таблица и карта
    писали «живы 0 из N» красным, как будто цели мертвы. Теперь — «нет
    данных» серым, а у ещё не проверенной цели в окне маршрута —
    «проверяется».

v1.13.18 — 2026-10-17

  • Traffic Fly: «ключ WireGuard: HTTP 404» на шлюзе, который ещё и хост
    хаба.
    Служба nkt-fly принимала команды на 127.0.0.1:8446 — этот
    порт на том же VPS держит nkt (проброс портов Kubernetes), и команды хаба
    уходили к нему. Теперь nkt-fly слушает 127.0.0.1:8447 (прописан в
    edge.env), установка проверяет, что порт свободен и служба nkt-fly
    не падает, а ответ 404 от шлюза объясняется словами и советует
    «Переустановить». Уже поставленный шлюз — «Переустановить» у шлюза.

v1.13.17 — 2026-10-17

  • Traffic Fly и nkt-edge: установка не срывается из-за чужого пакета.
    Если на хосте есть недонастроенный пакет (часто grub-pc на облачном
    образе), apt завершается с ошибкой, хотя нужные пакеты встали. Теперь
    хаб проверяет сами команды (wg, wg-quick, nft, conntrack,
    certbot): они на месте — установка идёт дальше, а в журнале —
    какие пакеты сломаны и как их донастроить (sudo dpkg --configure -a,
    для grub-pc — sudo dpkg-reconfigure grub-pc).

v1.13.16 — 2026-10-17

  • nkt-edge: «порт 8444 на хосте уже занят: ?» на свободном порту.
    Проверка портов перед установкой считала занятым порт, если команда
    хоть что-то напечатала, — в том числе предупреждение sudo «unable to
    resolve host …» (имени VPS нет в /etc/hosts). Теперь в расчёт идут
    только настоящие слушающие сокеты на этом порту.

v1.13.15 — 2026-10-17

  • Новый хост: пароли не хранятся, вход по паролю выключается.
    • Пароль SSH хаб больше не пишет в базу: он нужен только первой
      установке и до неё живёт в памяти хаба. Установка переводит хост на
      ключ хаба и всегда выключает вход по паролю в sshd (с проверкой
      входа ключом и откатом, если ключ не пустит) — и при «Автонастройке»,
      и при «Ручной».
    • Выбор sudo в окне «Новый хост»: узкий (по умолчанию) или полный
      без пароля.
    • sudo по паролю: хаб проверяет пароль sudo до установки (по
      умолчанию — тот же, что SSH; другой — в отдельном поле), использует
      его один раз и не сохраняет. Не подошёл — окно попросит пароль или
      покажет команду, чтобы дать sudo самому. Сорвалась установка —
      правило sudo возвращается, каким было.
    • Пароль sudo новому пользователю подготовки (по желанию) — чтобы
      после сужения вы сами могли выполнять sudo с паролем.
    • «Ручная»: вместо команд можно один раз ввести пароль SSH — хаб
      сам положит ключ, проверит вход и запустит установку.

v1.13.14 — 2026-10-17

  • Установка nkt-edge при узком sudo. Хаб больше не отказывает по
    устаревшему состоянию: перед отказом sudo хоста проверяется заново —
    если полный sudo уже вернули руками, установка идёт.
  • Если полного sudo нет, в окне установки можно один раз ввести пароль
    sudo
    пользователя: хаб даст полный sudo только на время установки и
    потом вернёт прежнее правило — и при успехе, и при ошибке. Пароль
    хранится только в памяти хаба до старта задания и уходит на хост через
    stdin, не в командную строку.
  • Там же — готовая команда с кнопкой «Копировать», чтобы дать полный
    sudo самому; временный файл в ней — через mktemp.

v1.13.13 — 2026-10-17

  • Traffic Fly: строже к именам файлов и числам. Ключи WireGuard и
    правила хоста записываются только под именем интерфейса известного вида
    (nkt-flyN) и только внутри каталога Traffic Fly — имя из запроса или
    конфигурации хаба не может увести запись за его пределы. Порт WireGuard
    шлюза вне 1…65535 и выход метки соединений из своего диапазона теперь
    отвергаются явно.

v1.13.12 — 2026-10-17

  • Traffic Fly — вход из интернета через свой VPS. Новая вкладка
    «Выкладки» → «Traffic Fly»: дешёвый VPS с белым адресом принимает
    трафик и по туннелям WireGuard отдаёт его контейнерам, виртуальным
    машинам, LXD и службам хостов за NAT.
    • Цель видит настоящий IP клиента: маршруты по порту идут через
      ядро без подмены источника, маршруты по имени передают его через
      PROXY protocol v2.
    • TCP и UDP; 80/443 делятся по именам (SNI и Host, точное
      имя важнее маски); остальные порты — порт в пул.
    • Пулы с балансировкой: меньше соединений, по кругу или липко по
      IP клиента; веса, вывод цели на обслуживание, проверки TCP или HTTP —
      недоступная цель выходит из пула сама.
    • Карта связей шлюз → маршрут → хост → цель: цвет — состояние,
      толщина — соединения. По щелчку на маршрут — цели, трафик и клиенты;
      адреса клиентов видит только администратор и только пока их не больше
      30, остальным — число.
    • Правка — через окно с диффом, каждая запись — версия, есть история с
      возвратом; «Сухой прогон» и «Применить» — заданиями.
    • Шлюз ставится из хаба как nkt-edge с новой ролью fly — без имени
      и сертификата. Шлюз и хосты работают и без хаба: после перезагрузки
      всё поднимается само.
    • Новые оповещения: «цель недоступна / снова жива», «в пуле нет живых
      целей», «туннель упал / поднялся» — в Telegram, Slack, вебхуки, n8n и
      приложение.

v1.13.21 — 2026-10-17

  • Traffic Fly: you can see why a tunnel is down and where packets get
    lost.
    Under the gateway and at the host on the map, the reason comes
    from WireGuard counters on both sides: “not configured yet” (Apply did
    not reach it), “not on gateway”, “tunnel down on the host”, “UDP 51820
    blocked” (the host sends, the gateway gets nothing: provider firewall or
    outbound UDP), “key mismatch”, “link lost”, with “host sent / gateway
    got” bytes.
  • Apply checks target hosts first: nkt is installed and at least
    1.13.12, otherwise a clear refusal before any change. Requests to a host
    have a 20-second limit and one retry; instead of “context deadline
    exceeded” you get “host … did not answer within 20 s” with what to
    check. Dry run does the same.

v1.13.20 — 2026-10-17

  • Traffic Fly: the container and VM list in the route editor is fast.
    For every target row the hub used to ask the host for containers, VMs
    and LXD one after another, so on a host without libvirt or LXD waiting
    for a refusal held up the whole list. Now only the chosen kind is
    fetched, in parallel with an 8-second limit, once per host for all rows,
    and the hub keeps the list for 30 seconds; while loading the field says
    “loading…”, with a refresh button (↻) next to it.

v1.13.19 — 2026-10-17

  • Traffic Fly: “0 of N alive” when there is simply no data. Until the
    gateway sent its summary (right after Apply, or when it missed a poll)
    and until targets were checked at least once, the table and the map
    showed “0 of N alive” in red, as if the targets were dead. Now it is “no
    data” in grey, and a target not checked yet shows “checking” in the
    route window.

v1.13.18 — 2026-10-17

  • Traffic Fly: “WireGuard key: HTTP 404” on a gateway that is also a
    hub host.
    The nkt-fly service took commands on 127.0.0.1:8446,
    which nkt on the same VPS holds (Kubernetes port forwards), so the hub's
    commands went to nkt. nkt-fly now listens on 127.0.0.1:8447 (written
    to edge.env); the installation checks that the port is free and that
    nkt-fly does not crash, and a 404 from the gateway is explained in
    words with a hint to reinstall. For a gateway already installed, press
    “Reinstall” for it.

v1.13.17 — 2026-10-17

  • Traffic Fly and nkt-edge: installation no longer fails over another
    package.
    If the host has a half-configured package (often grub-pc on
    a cloud image), apt exits with an error even though the needed packages
    were installed. The hub now checks the commands themselves (wg,
    wg-quick, nft, conntrack, certbot): if they are there, the
    installation goes on, and the log names the broken packages and how to
    finish them (sudo dpkg --configure -a, for grub-pc
    sudo dpkg-reconfigure grub-pc).

v1.13.16 — 2026-10-17

  • nkt-edge: “port 8444 on the host is already taken: ?” on a free
    port.
    The pre-install port check treated a port as taken whenever the
    command printed anything, including the sudo warning “unable to resolve
    host …” (the VPS name missing from /etc/hosts). Now only real
    listening sockets on that port count.

v1.13.15 — 2026-10-17

  • New hosts: passwords are not stored, password login is turned off.
    • The hub no longer writes the SSH password to its databas...
Read more

v1.13.20-beta

v1.13.20-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 15:22

v1.13.20 — 2026-10-17

  • Traffic Fly: список контейнеров и машин в редакторе маршрута — быстро.
    Раньше хаб для каждой строки цели по очереди спрашивал у хоста и
    контейнеры, и виртуальные машины, и LXD — на хосте без libvirt или LXD
    ожидание отказа задерживало весь список. Теперь запрашивается только
    выбранный вид, параллельно и с пределом в 8 секунд, одна загрузка на
    хост для всех строк, хаб помнит список 30 секунд; пока он грузится, в
    поле — «загрузка…», рядом — кнопка «обновить» (↻).

v1.13.19 — 2026-10-17

  • Traffic Fly: «живы 0 из N», когда данных просто нет. Пока шлюз не
    прислал сводку (сразу после «Применить» или если он не ответил на
    очередной опрос) и пока цели ни разу не проверены, таблица и карта
    писали «живы 0 из N» красным, как будто цели мертвы. Теперь — «нет
    данных» серым, а у ещё не проверенной цели в окне маршрута —
    «проверяется».

v1.13.18 — 2026-10-17

  • Traffic Fly: «ключ WireGuard: HTTP 404» на шлюзе, который ещё и хост
    хаба.
    Служба nkt-fly принимала команды на 127.0.0.1:8446 — этот
    порт на том же VPS держит nkt (проброс портов Kubernetes), и команды хаба
    уходили к нему. Теперь nkt-fly слушает 127.0.0.1:8447 (прописан в
    edge.env), установка проверяет, что порт свободен и служба nkt-fly
    не падает, а ответ 404 от шлюза объясняется словами и советует
    «Переустановить». Уже поставленный шлюз — «Переустановить» у шлюза.

v1.13.17 — 2026-10-17

  • Traffic Fly и nkt-edge: установка не срывается из-за чужого пакета.
    Если на хосте есть недонастроенный пакет (часто grub-pc на облачном
    образе), apt завершается с ошибкой, хотя нужные пакеты встали. Теперь
    хаб проверяет сами команды (wg, wg-quick, nft, conntrack,
    certbot): они на месте — установка идёт дальше, а в журнале —
    какие пакеты сломаны и как их донастроить (sudo dpkg --configure -a,
    для grub-pc — sudo dpkg-reconfigure grub-pc).

v1.13.16 — 2026-10-17

  • nkt-edge: «порт 8444 на хосте уже занят: ?» на свободном порту.
    Проверка портов перед установкой считала занятым порт, если команда
    хоть что-то напечатала, — в том числе предупреждение sudo «unable to
    resolve host …» (имени VPS нет в /etc/hosts). Теперь в расчёт идут
    только настоящие слушающие сокеты на этом порту.

v1.13.15 — 2026-10-17

  • Новый хост: пароли не хранятся, вход по паролю выключается.
    • Пароль SSH хаб больше не пишет в базу: он нужен только первой
      установке и до неё живёт в памяти хаба. Установка переводит хост на
      ключ хаба и всегда выключает вход по паролю в sshd (с проверкой
      входа ключом и откатом, если ключ не пустит) — и при «Автонастройке»,
      и при «Ручной».
    • Выбор sudo в окне «Новый хост»: узкий (по умолчанию) или полный
      без пароля.
    • sudo по паролю: хаб проверяет пароль sudo до установки (по
      умолчанию — тот же, что SSH; другой — в отдельном поле), использует
      его один раз и не сохраняет. Не подошёл — окно попросит пароль или
      покажет команду, чтобы дать sudo самому. Сорвалась установка —
      правило sudo возвращается, каким было.
    • Пароль sudo новому пользователю подготовки (по желанию) — чтобы
      после сужения вы сами могли выполнять sudo с паролем.
    • «Ручная»: вместо команд можно один раз ввести пароль SSH — хаб
      сам положит ключ, проверит вход и запустит установку.

v1.13.14 — 2026-10-17

  • Установка nkt-edge при узком sudo. Хаб больше не отказывает по
    устаревшему состоянию: перед отказом sudo хоста проверяется заново —
    если полный sudo уже вернули руками, установка идёт.
  • Если полного sudo нет, в окне установки можно один раз ввести пароль
    sudo
    пользователя: хаб даст полный sudo только на время установки и
    потом вернёт прежнее правило — и при успехе, и при ошибке. Пароль
    хранится только в памяти хаба до старта задания и уходит на хост через
    stdin, не в командную строку.
  • Там же — готовая команда с кнопкой «Копировать», чтобы дать полный
    sudo самому; временный файл в ней — через mktemp.

v1.13.13 — 2026-10-17

  • Traffic Fly: строже к именам файлов и числам. Ключи WireGuard и
    правила хоста записываются только под именем интерфейса известного вида
    (nkt-flyN) и только внутри каталога Traffic Fly — имя из запроса или
    конфигурации хаба не может увести запись за его пределы. Порт WireGuard
    шлюза вне 1…65535 и выход метки соединений из своего диапазона теперь
    отвергаются явно.

v1.13.12 — 2026-10-17

  • Traffic Fly — вход из интернета через свой VPS. Новая вкладка
    «Выкладки» → «Traffic Fly»: дешёвый VPS с белым адресом принимает
    трафик и по туннелям WireGuard отдаёт его контейнерам, виртуальным
    машинам, LXD и службам хостов за NAT.
    • Цель видит настоящий IP клиента: маршруты по порту идут через
      ядро без подмены источника, маршруты по имени передают его через
      PROXY protocol v2.
    • TCP и UDP; 80/443 делятся по именам (SNI и Host, точное
      имя важнее маски); остальные порты — порт в пул.
    • Пулы с балансировкой: меньше соединений, по кругу или липко по
      IP клиента; веса, вывод цели на обслуживание, проверки TCP или HTTP —
      недоступная цель выходит из пула сама.
    • Карта связей шлюз → маршрут → хост → цель: цвет — состояние,
      толщина — соединения. По щелчку на маршрут — цели, трафик и клиенты;
      адреса клиентов видит только администратор и только пока их не больше
      30, остальным — число.
    • Правка — через окно с диффом, каждая запись — версия, есть история с
      возвратом; «Сухой прогон» и «Применить» — заданиями.
    • Шлюз ставится из хаба как nkt-edge с новой ролью fly — без имени
      и сертификата. Шлюз и хосты работают и без хаба: после перезагрузки
      всё поднимается само.
    • Новые оповещения: «цель недоступна / снова жива», «в пуле нет живых
      целей», «туннель упал / поднялся» — в Telegram, Slack, вебхуки, n8n и
      приложение.

v1.13.20 — 2026-10-17

  • Traffic Fly: the container and VM list in the route editor is fast.
    For every target row the hub used to ask the host for containers, VMs
    and LXD one after another, so on a host without libvirt or LXD waiting
    for a refusal held up the whole list. Now only the chosen kind is
    fetched, in parallel with an 8-second limit, once per host for all rows,
    and the hub keeps the list for 30 seconds; while loading the field says
    “loading…”, with a refresh button (↻) next to it.

v1.13.19 — 2026-10-17

  • Traffic Fly: “0 of N alive” when there is simply no data. Until the
    gateway sent its summary (right after Apply, or when it missed a poll)
    and until targets were checked at least once, the table and the map
    showed “0 of N alive” in red, as if the targets were dead. Now it is “no
    data” in grey, and a target not checked yet shows “checking” in the
    route window.

v1.13.18 — 2026-10-17

  • Traffic Fly: “WireGuard key: HTTP 404” on a gateway that is also a
    hub host.
    The nkt-fly service took commands on 127.0.0.1:8446,
    which nkt on the same VPS holds (Kubernetes port forwards), so the hub's
    commands went to nkt. nkt-fly now listens on 127.0.0.1:8447 (written
    to edge.env); the installation checks that the port is free and that
    nkt-fly does not crash, and a 404 from the gateway is explained in
    words with a hint to reinstall. For a gateway already installed, press
    “Reinstall” for it.

v1.13.17 — 2026-10-17

  • Traffic Fly and nkt-edge: installation no longer fails over another
    package.
    If the host has a half-configured package (often grub-pc on
    a cloud image), apt exits with an error even though the needed packages
    were installed. The hub now checks the commands themselves (wg,
    wg-quick, nft, conntrack, certbot): if they are there, the
    installation goes on, and the log names the broken packages and how to
    finish them (sudo dpkg --configure -a, for grub-pc
    sudo dpkg-reconfigure grub-pc).

v1.13.16 — 2026-10-17

  • nkt-edge: “port 8444 on the host is already taken: ?” on a free
    port.
    The pre-install port check treated a port as taken whenever the
    command printed anything, including the sudo warning “unable to resolve
    host …” (the VPS name missing from /etc/hosts). Now only real
    listening sockets on that port count.

v1.13.15 — 2026-10-17

  • New hosts: passwords are not stored, password login is turned off.
    • The hub no longer writes the SSH password to its database: only the
      first installation needs it, and until then it lives in the hub's
      memory. The installation switches the host to the hub key and
      always turns sshd password login off (checking key login and
      rolling back if the key does not get in), in both Automatic and Manual
      modes.
    • A sudo choice in the New host window: narrow (default) or full,
      passwordless.
    • Password sudo: the hub checks the sudo password before installing
      (the SSH one by default; a different one goes in its own field), uses
      it once and does not store it. If it does not work, a window asks for
      it or shows a command to grant sudo yourself. If the installation
      fails, the sudo rule goes back to what it was.
    • A sudo password for the preparation's new user (optional), so you
      can run sudo with a password yourself after narrowing.
    • Manual mode: instead of the commands you can enter the SSH
      password once — the hub places the key, checks login and starts the
      installation.

v1.13.14 — 2026-10-17

  • Installing nkt-edge with narrow sudo. The hub no longer refuses on a
    stale state: before refusing it checks the host's sudo again, so if full
    sudo was given back by hand, the installation goes ahead.
  • Without full sudo, the install window lets you enter the user's sudo
    password once
    : the hub grants full sudo only for the installation and
    then puts the previous rule back, on success and on failure alike. The
    password lives only in the hub's memory until the job starts and reaches
    the host t...
Read more

v1.13.18-beta

v1.13.18-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 14:32

v1.13.18 — 2026-10-17

  • Traffic Fly: «ключ WireGuard: HTTP 404» на шлюзе, который ещё и хост
    хаба.
    Служба nkt-fly принимала команды на 127.0.0.1:8446 — этот
    порт на том же VPS держит nkt (проброс портов Kubernetes), и команды хаба
    уходили к нему. Теперь nkt-fly слушает 127.0.0.1:8447 (прописан в
    edge.env), установка проверяет, что порт свободен и служба nkt-fly
    не падает, а ответ 404 от шлюза объясняется словами и советует
    «Переустановить». Уже поставленный шлюз — «Переустановить» у шлюза.

v1.13.17 — 2026-10-17

  • Traffic Fly и nkt-edge: установка не срывается из-за чужого пакета.
    Если на хосте есть недонастроенный пакет (часто grub-pc на облачном
    образе), apt завершается с ошибкой, хотя нужные пакеты встали. Теперь
    хаб проверяет сами команды (wg, wg-quick, nft, conntrack,
    certbot): они на месте — установка идёт дальше, а в журнале —
    какие пакеты сломаны и как их донастроить (sudo dpkg --configure -a,
    для grub-pc — sudo dpkg-reconfigure grub-pc).

v1.13.16 — 2026-10-17

  • nkt-edge: «порт 8444 на хосте уже занят: ?» на свободном порту.
    Проверка портов перед установкой считала занятым порт, если команда
    хоть что-то напечатала, — в том числе предупреждение sudo «unable to
    resolve host …» (имени VPS нет в /etc/hosts). Теперь в расчёт идут
    только настоящие слушающие сокеты на этом порту.

v1.13.15 — 2026-10-17

  • Новый хост: пароли не хранятся, вход по паролю выключается.
    • Пароль SSH хаб больше не пишет в базу: он нужен только первой
      установке и до неё живёт в памяти хаба. Установка переводит хост на
      ключ хаба и всегда выключает вход по паролю в sshd (с проверкой
      входа ключом и откатом, если ключ не пустит) — и при «Автонастройке»,
      и при «Ручной».
    • Выбор sudo в окне «Новый хост»: узкий (по умолчанию) или полный
      без пароля.
    • sudo по паролю: хаб проверяет пароль sudo до установки (по
      умолчанию — тот же, что SSH; другой — в отдельном поле), использует
      его один раз и не сохраняет. Не подошёл — окно попросит пароль или
      покажет команду, чтобы дать sudo самому. Сорвалась установка —
      правило sudo возвращается, каким было.
    • Пароль sudo новому пользователю подготовки (по желанию) — чтобы
      после сужения вы сами могли выполнять sudo с паролем.
    • «Ручная»: вместо команд можно один раз ввести пароль SSH — хаб
      сам положит ключ, проверит вход и запустит установку.

v1.13.14 — 2026-10-17

  • Установка nkt-edge при узком sudo. Хаб больше не отказывает по
    устаревшему состоянию: перед отказом sudo хоста проверяется заново —
    если полный sudo уже вернули руками, установка идёт.
  • Если полного sudo нет, в окне установки можно один раз ввести пароль
    sudo
    пользователя: хаб даст полный sudo только на время установки и
    потом вернёт прежнее правило — и при успехе, и при ошибке. Пароль
    хранится только в памяти хаба до старта задания и уходит на хост через
    stdin, не в командную строку.
  • Там же — готовая команда с кнопкой «Копировать», чтобы дать полный
    sudo самому; временный файл в ней — через mktemp.

v1.13.13 — 2026-10-17

  • Traffic Fly: строже к именам файлов и числам. Ключи WireGuard и
    правила хоста записываются только под именем интерфейса известного вида
    (nkt-flyN) и только внутри каталога Traffic Fly — имя из запроса или
    конфигурации хаба не может увести запись за его пределы. Порт WireGuard
    шлюза вне 1…65535 и выход метки соединений из своего диапазона теперь
    отвергаются явно.

v1.13.12 — 2026-10-17

  • Traffic Fly — вход из интернета через свой VPS. Новая вкладка
    «Выкладки» → «Traffic Fly»: дешёвый VPS с белым адресом принимает
    трафик и по туннелям WireGuard отдаёт его контейнерам, виртуальным
    машинам, LXD и службам хостов за NAT.
    • Цель видит настоящий IP клиента: маршруты по порту идут через
      ядро без подмены источника, маршруты по имени передают его через
      PROXY protocol v2.
    • TCP и UDP; 80/443 делятся по именам (SNI и Host, точное
      имя важнее маски); остальные порты — порт в пул.
    • Пулы с балансировкой: меньше соединений, по кругу или липко по
      IP клиента; веса, вывод цели на обслуживание, проверки TCP или HTTP —
      недоступная цель выходит из пула сама.
    • Карта связей шлюз → маршрут → хост → цель: цвет — состояние,
      толщина — соединения. По щелчку на маршрут — цели, трафик и клиенты;
      адреса клиентов видит только администратор и только пока их не больше
      30, остальным — число.
    • Правка — через окно с диффом, каждая запись — версия, есть история с
      возвратом; «Сухой прогон» и «Применить» — заданиями.
    • Шлюз ставится из хаба как nkt-edge с новой ролью fly — без имени
      и сертификата. Шлюз и хосты работают и без хаба: после перезагрузки
      всё поднимается само.
    • Новые оповещения: «цель недоступна / снова жива», «в пуле нет живых
      целей», «туннель упал / поднялся» — в Telegram, Slack, вебхуки, n8n и
      приложение.

v1.13.18 — 2026-10-17

  • Traffic Fly: “WireGuard key: HTTP 404” on a gateway that is also a
    hub host.
    The nkt-fly service took commands on 127.0.0.1:8446,
    which nkt on the same VPS holds (Kubernetes port forwards), so the hub's
    commands went to nkt. nkt-fly now listens on 127.0.0.1:8447 (written
    to edge.env); the installation checks that the port is free and that
    nkt-fly does not crash, and a 404 from the gateway is explained in
    words with a hint to reinstall. For a gateway already installed, press
    “Reinstall” for it.

v1.13.17 — 2026-10-17

  • Traffic Fly and nkt-edge: installation no longer fails over another
    package.
    If the host has a half-configured package (often grub-pc on
    a cloud image), apt exits with an error even though the needed packages
    were installed. The hub now checks the commands themselves (wg,
    wg-quick, nft, conntrack, certbot): if they are there, the
    installation goes on, and the log names the broken packages and how to
    finish them (sudo dpkg --configure -a, for grub-pc
    sudo dpkg-reconfigure grub-pc).

v1.13.16 — 2026-10-17

  • nkt-edge: “port 8444 on the host is already taken: ?” on a free
    port.
    The pre-install port check treated a port as taken whenever the
    command printed anything, including the sudo warning “unable to resolve
    host …” (the VPS name missing from /etc/hosts). Now only real
    listening sockets on that port count.

v1.13.15 — 2026-10-17

  • New hosts: passwords are not stored, password login is turned off.
    • The hub no longer writes the SSH password to its database: only the
      first installation needs it, and until then it lives in the hub's
      memory. The installation switches the host to the hub key and
      always turns sshd password login off (checking key login and
      rolling back if the key does not get in), in both Automatic and Manual
      modes.
    • A sudo choice in the New host window: narrow (default) or full,
      passwordless.
    • Password sudo: the hub checks the sudo password before installing
      (the SSH one by default; a different one goes in its own field), uses
      it once and does not store it. If it does not work, a window asks for
      it or shows a command to grant sudo yourself. If the installation
      fails, the sudo rule goes back to what it was.
    • A sudo password for the preparation's new user (optional), so you
      can run sudo with a password yourself after narrowing.
    • Manual mode: instead of the commands you can enter the SSH
      password once — the hub places the key, checks login and starts the
      installation.

v1.13.14 — 2026-10-17

  • Installing nkt-edge with narrow sudo. The hub no longer refuses on a
    stale state: before refusing it checks the host's sudo again, so if full
    sudo was given back by hand, the installation goes ahead.
  • Without full sudo, the install window lets you enter the user's sudo
    password once
    : the hub grants full sudo only for the installation and
    then puts the previous rule back, on success and on failure alike. The
    password lives only in the hub's memory until the job starts and reaches
    the host through stdin, never the command line.
  • The same window shows a ready command with a Copy button to grant
    full sudo yourself; its temporary file comes from mktemp.

v1.13.13 — 2026-10-17

  • Traffic Fly: stricter about file names and numbers. WireGuard keys
    and host rules are written only under an interface name of the known
    form (nkt-flyN) and only inside the Traffic Fly directory — a name from
    a request or the hub config can't lead a write outside it. A gateway
    WireGuard port outside 1…65535 and a connection mark leaving its range
    are now rejected explicitly.

v1.13.12 — 2026-10-17

  • Traffic Fly — inbound internet traffic through your own VPS. A new
    tab, Deployments → Traffic Fly: a cheap VPS with a public address
    receives traffic and passes it over WireGuard tunnels to containers,
    virtual machines, LXD and host services behind NAT.
    • Targets see the real client IP: routes by port go through the
      kernel without source rewrite, routes by name pass it via PROXY
      protocol v2.
    • TCP and UDP; 80/443 are split by name (SNI and Host, an
      exact name beats a wildcard); other ports go port-to-pool.
    • Pools with load balancing: least connections, round robin or
      sticky by client IP; weights, draining a target for maintenance, TCP
      or HTTP checks — a down target leaves the pool by itself.
    • Link map gateway → route → host → target: color is state,
      thickness is connections. Click a route for targets, traffic and
      clients; client addresses are shown to admins only and only while
      there are at most 30, everyone else sees a count.
    • Edits go through a diff window, every save is a version, history
      allows restoring; Dry run and Apply run as jobs.
    • The gateway is installed from the hub as nkt-edge wi...
Read more

v1.13.17-beta

v1.13.17-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 14:10

v1.13.17 — 2026-10-17

  • Traffic Fly и nkt-edge: установка не срывается из-за чужого пакета.
    Если на хосте есть недонастроенный пакет (часто grub-pc на облачном
    образе), apt завершается с ошибкой, хотя нужные пакеты встали. Теперь
    хаб проверяет сами команды (wg, wg-quick, nft, conntrack,
    certbot): они на месте — установка идёт дальше, а в журнале —
    какие пакеты сломаны и как их донастроить (sudo dpkg --configure -a,
    для grub-pc — sudo dpkg-reconfigure grub-pc).

v1.13.16 — 2026-10-17

  • nkt-edge: «порт 8444 на хосте уже занят: ?» на свободном порту.
    Проверка портов перед установкой считала занятым порт, если команда
    хоть что-то напечатала, — в том числе предупреждение sudo «unable to
    resolve host …» (имени VPS нет в /etc/hosts). Теперь в расчёт идут
    только настоящие слушающие сокеты на этом порту.

v1.13.15 — 2026-10-17

  • Новый хост: пароли не хранятся, вход по паролю выключается.
    • Пароль SSH хаб больше не пишет в базу: он нужен только первой
      установке и до неё живёт в памяти хаба. Установка переводит хост на
      ключ хаба и всегда выключает вход по паролю в sshd (с проверкой
      входа ключом и откатом, если ключ не пустит) — и при «Автонастройке»,
      и при «Ручной».
    • Выбор sudo в окне «Новый хост»: узкий (по умолчанию) или полный
      без пароля.
    • sudo по паролю: хаб проверяет пароль sudo до установки (по
      умолчанию — тот же, что SSH; другой — в отдельном поле), использует
      его один раз и не сохраняет. Не подошёл — окно попросит пароль или
      покажет команду, чтобы дать sudo самому. Сорвалась установка —
      правило sudo возвращается, каким было.
    • Пароль sudo новому пользователю подготовки (по желанию) — чтобы
      после сужения вы сами могли выполнять sudo с паролем.
    • «Ручная»: вместо команд можно один раз ввести пароль SSH — хаб
      сам положит ключ, проверит вход и запустит установку.

v1.13.14 — 2026-10-17

  • Установка nkt-edge при узком sudo. Хаб больше не отказывает по
    устаревшему состоянию: перед отказом sudo хоста проверяется заново —
    если полный sudo уже вернули руками, установка идёт.
  • Если полного sudo нет, в окне установки можно один раз ввести пароль
    sudo
    пользователя: хаб даст полный sudo только на время установки и
    потом вернёт прежнее правило — и при успехе, и при ошибке. Пароль
    хранится только в памяти хаба до старта задания и уходит на хост через
    stdin, не в командную строку.
  • Там же — готовая команда с кнопкой «Копировать», чтобы дать полный
    sudo самому; временный файл в ней — через mktemp.

v1.13.13 — 2026-10-17

  • Traffic Fly: строже к именам файлов и числам. Ключи WireGuard и
    правила хоста записываются только под именем интерфейса известного вида
    (nkt-flyN) и только внутри каталога Traffic Fly — имя из запроса или
    конфигурации хаба не может увести запись за его пределы. Порт WireGuard
    шлюза вне 1…65535 и выход метки соединений из своего диапазона теперь
    отвергаются явно.

v1.13.12 — 2026-10-17

  • Traffic Fly — вход из интернета через свой VPS. Новая вкладка
    «Выкладки» → «Traffic Fly»: дешёвый VPS с белым адресом принимает
    трафик и по туннелям WireGuard отдаёт его контейнерам, виртуальным
    машинам, LXD и службам хостов за NAT.
    • Цель видит настоящий IP клиента: маршруты по порту идут через
      ядро без подмены источника, маршруты по имени передают его через
      PROXY protocol v2.
    • TCP и UDP; 80/443 делятся по именам (SNI и Host, точное
      имя важнее маски); остальные порты — порт в пул.
    • Пулы с балансировкой: меньше соединений, по кругу или липко по
      IP клиента; веса, вывод цели на обслуживание, проверки TCP или HTTP —
      недоступная цель выходит из пула сама.
    • Карта связей шлюз → маршрут → хост → цель: цвет — состояние,
      толщина — соединения. По щелчку на маршрут — цели, трафик и клиенты;
      адреса клиентов видит только администратор и только пока их не больше
      30, остальным — число.
    • Правка — через окно с диффом, каждая запись — версия, есть история с
      возвратом; «Сухой прогон» и «Применить» — заданиями.
    • Шлюз ставится из хаба как nkt-edge с новой ролью fly — без имени
      и сертификата. Шлюз и хосты работают и без хаба: после перезагрузки
      всё поднимается само.
    • Новые оповещения: «цель недоступна / снова жива», «в пуле нет живых
      целей», «туннель упал / поднялся» — в Telegram, Slack, вебхуки, n8n и
      приложение.

v1.13.17 — 2026-10-17

  • Traffic Fly and nkt-edge: installation no longer fails over another
    package.
    If the host has a half-configured package (often grub-pc on
    a cloud image), apt exits with an error even though the needed packages
    were installed. The hub now checks the commands themselves (wg,
    wg-quick, nft, conntrack, certbot): if they are there, the
    installation goes on, and the log names the broken packages and how to
    finish them (sudo dpkg --configure -a, for grub-pc
    sudo dpkg-reconfigure grub-pc).

v1.13.16 — 2026-10-17

  • nkt-edge: “port 8444 on the host is already taken: ?” on a free
    port.
    The pre-install port check treated a port as taken whenever the
    command printed anything, including the sudo warning “unable to resolve
    host …” (the VPS name missing from /etc/hosts). Now only real
    listening sockets on that port count.

v1.13.15 — 2026-10-17

  • New hosts: passwords are not stored, password login is turned off.
    • The hub no longer writes the SSH password to its database: only the
      first installation needs it, and until then it lives in the hub's
      memory. The installation switches the host to the hub key and
      always turns sshd password login off (checking key login and
      rolling back if the key does not get in), in both Automatic and Manual
      modes.
    • A sudo choice in the New host window: narrow (default) or full,
      passwordless.
    • Password sudo: the hub checks the sudo password before installing
      (the SSH one by default; a different one goes in its own field), uses
      it once and does not store it. If it does not work, a window asks for
      it or shows a command to grant sudo yourself. If the installation
      fails, the sudo rule goes back to what it was.
    • A sudo password for the preparation's new user (optional), so you
      can run sudo with a password yourself after narrowing.
    • Manual mode: instead of the commands you can enter the SSH
      password once — the hub places the key, checks login and starts the
      installation.

v1.13.14 — 2026-10-17

  • Installing nkt-edge with narrow sudo. The hub no longer refuses on a
    stale state: before refusing it checks the host's sudo again, so if full
    sudo was given back by hand, the installation goes ahead.
  • Without full sudo, the install window lets you enter the user's sudo
    password once
    : the hub grants full sudo only for the installation and
    then puts the previous rule back, on success and on failure alike. The
    password lives only in the hub's memory until the job starts and reaches
    the host through stdin, never the command line.
  • The same window shows a ready command with a Copy button to grant
    full sudo yourself; its temporary file comes from mktemp.

v1.13.13 — 2026-10-17

  • Traffic Fly: stricter about file names and numbers. WireGuard keys
    and host rules are written only under an interface name of the known
    form (nkt-flyN) and only inside the Traffic Fly directory — a name from
    a request or the hub config can't lead a write outside it. A gateway
    WireGuard port outside 1…65535 and a connection mark leaving its range
    are now rejected explicitly.

v1.13.12 — 2026-10-17

  • Traffic Fly — inbound internet traffic through your own VPS. A new
    tab, Deployments → Traffic Fly: a cheap VPS with a public address
    receives traffic and passes it over WireGuard tunnels to containers,
    virtual machines, LXD and host services behind NAT.
    • Targets see the real client IP: routes by port go through the
      kernel without source rewrite, routes by name pass it via PROXY
      protocol v2.
    • TCP and UDP; 80/443 are split by name (SNI and Host, an
      exact name beats a wildcard); other ports go port-to-pool.
    • Pools with load balancing: least connections, round robin or
      sticky by client IP; weights, draining a target for maintenance, TCP
      or HTTP checks — a down target leaves the pool by itself.
    • Link map gateway → route → host → target: color is state,
      thickness is connections. Click a route for targets, traffic and
      clients; client addresses are shown to admins only and only while
      there are at most 30, everyone else sees a count.
    • Edits go through a diff window, every save is a version, history
      allows restoring; Dry run and Apply run as jobs.
    • The gateway is installed from the hub as nkt-edge with the new
      fly role — no name or certificate needed. The gateway and hosts
      work without the hub too: everything comes back after a reboot.
    • New alerts: “target down / back up”, “no live targets in pool”,
      “tunnel down / up” — to Telegram, Slack, webhooks, n8n and the app.

v1.13.16-beta

v1.13.16-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 13:52

v1.13.16 — 2026-10-17

  • nkt-edge: «порт 8444 на хосте уже занят: ?» на свободном порту.
    Проверка портов перед установкой считала занятым порт, если команда
    хоть что-то напечатала, — в том числе предупреждение sudo «unable to
    resolve host …» (имени VPS нет в /etc/hosts). Теперь в расчёт идут
    только настоящие слушающие сокеты на этом порту.

v1.13.15 — 2026-10-17

  • Новый хост: пароли не хранятся, вход по паролю выключается.
    • Пароль SSH хаб больше не пишет в базу: он нужен только первой
      установке и до неё живёт в памяти хаба. Установка переводит хост на
      ключ хаба и всегда выключает вход по паролю в sshd (с проверкой
      входа ключом и откатом, если ключ не пустит) — и при «Автонастройке»,
      и при «Ручной».
    • Выбор sudo в окне «Новый хост»: узкий (по умолчанию) или полный
      без пароля.
    • sudo по паролю: хаб проверяет пароль sudo до установки (по
      умолчанию — тот же, что SSH; другой — в отдельном поле), использует
      его один раз и не сохраняет. Не подошёл — окно попросит пароль или
      покажет команду, чтобы дать sudo самому. Сорвалась установка —
      правило sudo возвращается, каким было.
    • Пароль sudo новому пользователю подготовки (по желанию) — чтобы
      после сужения вы сами могли выполнять sudo с паролем.
    • «Ручная»: вместо команд можно один раз ввести пароль SSH — хаб
      сам положит ключ, проверит вход и запустит установку.

v1.13.14 — 2026-10-17

  • Установка nkt-edge при узком sudo. Хаб больше не отказывает по
    устаревшему состоянию: перед отказом sudo хоста проверяется заново —
    если полный sudo уже вернули руками, установка идёт.
  • Если полного sudo нет, в окне установки можно один раз ввести пароль
    sudo
    пользователя: хаб даст полный sudo только на время установки и
    потом вернёт прежнее правило — и при успехе, и при ошибке. Пароль
    хранится только в памяти хаба до старта задания и уходит на хост через
    stdin, не в командную строку.
  • Там же — готовая команда с кнопкой «Копировать», чтобы дать полный
    sudo самому; временный файл в ней — через mktemp.

v1.13.13 — 2026-10-17

  • Traffic Fly: строже к именам файлов и числам. Ключи WireGuard и
    правила хоста записываются только под именем интерфейса известного вида
    (nkt-flyN) и только внутри каталога Traffic Fly — имя из запроса или
    конфигурации хаба не может увести запись за его пределы. Порт WireGuard
    шлюза вне 1…65535 и выход метки соединений из своего диапазона теперь
    отвергаются явно.

v1.13.12 — 2026-10-17

  • Traffic Fly — вход из интернета через свой VPS. Новая вкладка
    «Выкладки» → «Traffic Fly»: дешёвый VPS с белым адресом принимает
    трафик и по туннелям WireGuard отдаёт его контейнерам, виртуальным
    машинам, LXD и службам хостов за NAT.
    • Цель видит настоящий IP клиента: маршруты по порту идут через
      ядро без подмены источника, маршруты по имени передают его через
      PROXY protocol v2.
    • TCP и UDP; 80/443 делятся по именам (SNI и Host, точное
      имя важнее маски); остальные порты — порт в пул.
    • Пулы с балансировкой: меньше соединений, по кругу или липко по
      IP клиента; веса, вывод цели на обслуживание, проверки TCP или HTTP —
      недоступная цель выходит из пула сама.
    • Карта связей шлюз → маршрут → хост → цель: цвет — состояние,
      толщина — соединения. По щелчку на маршрут — цели, трафик и клиенты;
      адреса клиентов видит только администратор и только пока их не больше
      30, остальным — число.
    • Правка — через окно с диффом, каждая запись — версия, есть история с
      возвратом; «Сухой прогон» и «Применить» — заданиями.
    • Шлюз ставится из хаба как nkt-edge с новой ролью fly — без имени
      и сертификата. Шлюз и хосты работают и без хаба: после перезагрузки
      всё поднимается само.
    • Новые оповещения: «цель недоступна / снова жива», «в пуле нет живых
      целей», «туннель упал / поднялся» — в Telegram, Slack, вебхуки, n8n и
      приложение.

v1.13.16 — 2026-10-17

  • nkt-edge: “port 8444 on the host is already taken: ?” on a free
    port.
    The pre-install port check treated a port as taken whenever the
    command printed anything, including the sudo warning “unable to resolve
    host …” (the VPS name missing from /etc/hosts). Now only real
    listening sockets on that port count.

v1.13.15 — 2026-10-17

  • New hosts: passwords are not stored, password login is turned off.
    • The hub no longer writes the SSH password to its database: only the
      first installation needs it, and until then it lives in the hub's
      memory. The installation switches the host to the hub key and
      always turns sshd password login off (checking key login and
      rolling back if the key does not get in), in both Automatic and Manual
      modes.
    • A sudo choice in the New host window: narrow (default) or full,
      passwordless.
    • Password sudo: the hub checks the sudo password before installing
      (the SSH one by default; a different one goes in its own field), uses
      it once and does not store it. If it does not work, a window asks for
      it or shows a command to grant sudo yourself. If the installation
      fails, the sudo rule goes back to what it was.
    • A sudo password for the preparation's new user (optional), so you
      can run sudo with a password yourself after narrowing.
    • Manual mode: instead of the commands you can enter the SSH
      password once — the hub places the key, checks login and starts the
      installation.

v1.13.14 — 2026-10-17

  • Installing nkt-edge with narrow sudo. The hub no longer refuses on a
    stale state: before refusing it checks the host's sudo again, so if full
    sudo was given back by hand, the installation goes ahead.
  • Without full sudo, the install window lets you enter the user's sudo
    password once
    : the hub grants full sudo only for the installation and
    then puts the previous rule back, on success and on failure alike. The
    password lives only in the hub's memory until the job starts and reaches
    the host through stdin, never the command line.
  • The same window shows a ready command with a Copy button to grant
    full sudo yourself; its temporary file comes from mktemp.

v1.13.13 — 2026-10-17

  • Traffic Fly: stricter about file names and numbers. WireGuard keys
    and host rules are written only under an interface name of the known
    form (nkt-flyN) and only inside the Traffic Fly directory — a name from
    a request or the hub config can't lead a write outside it. A gateway
    WireGuard port outside 1…65535 and a connection mark leaving its range
    are now rejected explicitly.

v1.13.12 — 2026-10-17

  • Traffic Fly — inbound internet traffic through your own VPS. A new
    tab, Deployments → Traffic Fly: a cheap VPS with a public address
    receives traffic and passes it over WireGuard tunnels to containers,
    virtual machines, LXD and host services behind NAT.
    • Targets see the real client IP: routes by port go through the
      kernel without source rewrite, routes by name pass it via PROXY
      protocol v2.
    • TCP and UDP; 80/443 are split by name (SNI and Host, an
      exact name beats a wildcard); other ports go port-to-pool.
    • Pools with load balancing: least connections, round robin or
      sticky by client IP; weights, draining a target for maintenance, TCP
      or HTTP checks — a down target leaves the pool by itself.
    • Link map gateway → route → host → target: color is state,
      thickness is connections. Click a route for targets, traffic and
      clients; client addresses are shown to admins only and only while
      there are at most 30, everyone else sees a count.
    • Edits go through a diff window, every save is a version, history
      allows restoring; Dry run and Apply run as jobs.
    • The gateway is installed from the hub as nkt-edge with the new
      fly role — no name or certificate needed. The gateway and hosts
      work without the hub too: everything comes back after a reboot.
    • New alerts: “target down / back up”, “no live targets in pool”,
      “tunnel down / up” — to Telegram, Slack, webhooks, n8n and the app.

v1.13.14-beta

v1.13.14-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 13:34

v1.13.14 — 2026-10-17

  • Установка nkt-edge при узком sudo. Хаб больше не отказывает по
    устаревшему состоянию: перед отказом sudo хоста проверяется заново —
    если полный sudo уже вернули руками, установка идёт.
  • Если полного sudo нет, в окне установки можно один раз ввести пароль
    sudo
    пользователя: хаб даст полный sudo только на время установки и
    потом вернёт прежнее правило — и при успехе, и при ошибке. Пароль
    хранится только в памяти хаба до старта задания и уходит на хост через
    stdin, не в командную строку.
  • Там же — готовая команда с кнопкой «Копировать», чтобы дать полный
    sudo самому; временный файл в ней — через mktemp.

v1.13.13 — 2026-10-17

  • Traffic Fly: строже к именам файлов и числам. Ключи WireGuard и
    правила хоста записываются только под именем интерфейса известного вида
    (nkt-flyN) и только внутри каталога Traffic Fly — имя из запроса или
    конфигурации хаба не может увести запись за его пределы. Порт WireGuard
    шлюза вне 1…65535 и выход метки соединений из своего диапазона теперь
    отвергаются явно.

v1.13.12 — 2026-10-17

  • Traffic Fly — вход из интернета через свой VPS. Новая вкладка
    «Выкладки» → «Traffic Fly»: дешёвый VPS с белым адресом принимает
    трафик и по туннелям WireGuard отдаёт его контейнерам, виртуальным
    машинам, LXD и службам хостов за NAT.
    • Цель видит настоящий IP клиента: маршруты по порту идут через
      ядро без подмены источника, маршруты по имени передают его через
      PROXY protocol v2.
    • TCP и UDP; 80/443 делятся по именам (SNI и Host, точное
      имя важнее маски); остальные порты — порт в пул.
    • Пулы с балансировкой: меньше соединений, по кругу или липко по
      IP клиента; веса, вывод цели на обслуживание, проверки TCP или HTTP —
      недоступная цель выходит из пула сама.
    • Карта связей шлюз → маршрут → хост → цель: цвет — состояние,
      толщина — соединения. По щелчку на маршрут — цели, трафик и клиенты;
      адреса клиентов видит только администратор и только пока их не больше
      30, остальным — число.
    • Правка — через окно с диффом, каждая запись — версия, есть история с
      возвратом; «Сухой прогон» и «Применить» — заданиями.
    • Шлюз ставится из хаба как nkt-edge с новой ролью fly — без имени
      и сертификата. Шлюз и хосты работают и без хаба: после перезагрузки
      всё поднимается само.
    • Новые оповещения: «цель недоступна / снова жива», «в пуле нет живых
      целей», «туннель упал / поднялся» — в Telegram, Slack, вебхуки, n8n и
      приложение.

v1.13.14 — 2026-10-17

  • Installing nkt-edge with narrow sudo. The hub no longer refuses on a
    stale state: before refusing it checks the host's sudo again, so if full
    sudo was given back by hand, the installation goes ahead.
  • Without full sudo, the install window lets you enter the user's sudo
    password once
    : the hub grants full sudo only for the installation and
    then puts the previous rule back, on success and on failure alike. The
    password lives only in the hub's memory until the job starts and reaches
    the host through stdin, never the command line.
  • The same window shows a ready command with a Copy button to grant
    full sudo yourself; its temporary file comes from mktemp.

v1.13.13 — 2026-10-17

  • Traffic Fly: stricter about file names and numbers. WireGuard keys
    and host rules are written only under an interface name of the known
    form (nkt-flyN) and only inside the Traffic Fly directory — a name from
    a request or the hub config can't lead a write outside it. A gateway
    WireGuard port outside 1…65535 and a connection mark leaving its range
    are now rejected explicitly.

v1.13.12 — 2026-10-17

  • Traffic Fly — inbound internet traffic through your own VPS. A new
    tab, Deployments → Traffic Fly: a cheap VPS with a public address
    receives traffic and passes it over WireGuard tunnels to containers,
    virtual machines, LXD and host services behind NAT.
    • Targets see the real client IP: routes by port go through the
      kernel without source rewrite, routes by name pass it via PROXY
      protocol v2.
    • TCP and UDP; 80/443 are split by name (SNI and Host, an
      exact name beats a wildcard); other ports go port-to-pool.
    • Pools with load balancing: least connections, round robin or
      sticky by client IP; weights, draining a target for maintenance, TCP
      or HTTP checks — a down target leaves the pool by itself.
    • Link map gateway → route → host → target: color is state,
      thickness is connections. Click a route for targets, traffic and
      clients; client addresses are shown to admins only and only while
      there are at most 30, everyone else sees a count.
    • Edits go through a diff window, every save is a version, history
      allows restoring; Dry run and Apply run as jobs.
    • The gateway is installed from the hub as nkt-edge with the new
      fly role — no name or certificate needed. The gateway and hosts
      work without the hub too: everything comes back after a reboot.
    • New alerts: “target down / back up”, “no live targets in pool”,
      “tunnel down / up” — to Telegram, Slack, webhooks, n8n and the app.

v1.13.12-beta

v1.13.12-beta Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Oct 11:19

v1.13.12 — 2026-10-17

  • Traffic Fly — вход из интернета через свой VPS. Новая вкладка
    «Выкладки» → «Traffic Fly»: дешёвый VPS с белым адресом принимает
    трафик и по туннелям WireGuard отдаёт его контейнерам, виртуальным
    машинам, LXD и службам хостов за NAT.
    • Цель видит настоящий IP клиента: маршруты по порту идут через
      ядро без подмены источника, маршруты по имени передают его через
      PROXY protocol v2.
    • TCP и UDP; 80/443 делятся по именам (SNI и Host, точное
      имя важнее маски); остальные порты — порт в пул.
    • Пулы с балансировкой: меньше соединений, по кругу или липко по
      IP клиента; веса, вывод цели на обслуживание, проверки TCP или HTTP —
      недоступная цель выходит из пула сама.
    • Карта связей шлюз → маршрут → хост → цель: цвет — состояние,
      толщина — соединения. По щелчку на маршрут — цели, трафик и клиенты;
      адреса клиентов видит только администратор и только пока их не больше
      30, остальным — число.
    • Правка — через окно с диффом, каждая запись — версия, есть история с
      возвратом; «Сухой прогон» и «Применить» — заданиями.
    • Шлюз ставится из хаба как nkt-edge с новой ролью fly — без имени
      и сертификата. Шлюз и хосты работают и без хаба: после перезагрузки
      всё поднимается само.
    • Новые оповещения: «цель недоступна / снова жива», «в пуле нет живых
      целей», «туннель упал / поднялся» — в Telegram, Slack, вебхуки, n8n и
      приложение.

v1.13.12 — 2026-10-17

  • Traffic Fly — inbound internet traffic through your own VPS. A new
    tab, Deployments → Traffic Fly: a cheap VPS with a public address
    receives traffic and passes it over WireGuard tunnels to containers,
    virtual machines, LXD and host services behind NAT.
    • Targets see the real client IP: routes by port go through the
      kernel without source rewrite, routes by name pass it via PROXY
      protocol v2.
    • TCP and UDP; 80/443 are split by name (SNI and Host, an
      exact name beats a wildcard); other ports go port-to-pool.
    • Pools with load balancing: least connections, round robin or
      sticky by client IP; weights, draining a target for maintenance, TCP
      or HTTP checks — a down target leaves the pool by itself.
    • Link map gateway → route → host → target: color is state,
      thickness is connections. Click a route for targets, traffic and
      clients; client addresses are shown to admins only and only while
      there are at most 30, everyone else sees a count.
    • Edits go through a diff window, every save is a version, history
      allows restoring; Dry run and Apply run as jobs.
    • The gateway is installed from the hub as nkt-edge with the new
      fly role — no name or certificate needed. The gateway and hosts
      work without the hub too: everything comes back after a reboot.
    • New alerts: “target down / back up”, “no live targets in pool”,
      “tunnel down / up” — to Telegram, Slack, webhooks, n8n and the app.

v1.13.11

Choose a tag to compare

@github-actions github-actions released this 14 Oct 13:51

v1.13.11 — 2026-10-14

  • ИБП: подключение вместо UPSilon доведено до рабочего.
    • «Найти ИБП» видит процесс UPSilon rupsd (раньше искался только
      upsilon — работающий UPSilon считался остановленным), его автозапуск
      (служба, init.d, rc.local, cron), порт из его настроек и
      переходники USB-COM (PL2303, CH340, FTDI, CP210x) с их портом.
    • «Подключить ИБП» сразу предлагает драйвер и порт по найденному
      (nutdrv_qx + /dev/ttyUSB0); поле порта больше не исчезает молча —
      у usbhid-ups оно неактивно с объяснением.
    • Задание останавливает rupsd, выключает автозапуск UPSilon,
      перебирает варианты драйвера и порта, пишет в журнал ответ драйвера,
      не зависает на запуске служб; ни один не подошёл — возвращает всё,
      включая автозапуск и сам UPSilon. Журнал — без распечатки сценария.

v1.13.11 — 2026-10-14

  • UPS: connecting instead of UPSilon now works end to end.
    • “Find UPS” sees the UPSilon rupsd process (only upsilon was looked
      for — a running UPSilon showed as stopped), its autostart (service,
      init.d, rc.local, cron), the port from its settings and USB-COM
      adapters (PL2303, CH340, FTDI, CP210x) with their port.
    • “Connect UPS” preselects the driver and port from what was found
      (nutdrv_qx + /dev/ttyUSB0); the port field no longer disappears
      silently — for usbhid-ups it is disabled with an explanation.
    • The job stops rupsd, disables the UPSilon autostart, tries driver and
      port variants, logs the driver's answer, doesn't hang on starting
      services; if none works, it puts everything back, the autostart and
      UPSilon itself included. The log no longer prints the script.

v1.13.10

Choose a tag to compare

@github-actions github-actions released this 14 Oct 12:39

v1.13.10 — 2026-10-14

  • ИБП через NUT — «Железо» → «ИБП».
    • «Найти ИБП» ищет ИБП на USB и COM-портах (Megatec/Cypress — Ippon,
      SVEN, Powercom и прочие, с которыми работает UPSilon 2000; APC, Eaton,
      CyberPower) и следы UPSilon, ничего не меняя.
    • «Подключить ИБП» — фоновым заданием: останавливает UPSilon, ставит
      nut, описывает ИБП, upsd только на 127.0.0.1; ИБП не ответил —
      всё возвращается как было. По галочке — выключение хоста при садящейся
      батарее.
    • Состояние, заряд, нагрузка, время на батарее, график за сутки; находки
      «пропало питание», «батарея садится», «нет связи», «заменить батарею»;
      пороги оповещений — с диффом и историей.
    • Хаб: события «пропало питание», «питание вернулось», «батарея ИБП
      садится», «нет связи с ИБП» — в журнал, Telegram, Slack и вебхуки;
      значок ИБП в строке хоста. В приложении — ИБП на обзоре хоста.

v1.13.10 — 2026-10-14

  • UPS via NUT — “Hardware” → “UPS”.
    • “Find UPS” looks for a UPS on USB and COM ports (Megatec/Cypress —
      Ippon, SVEN, Powercom and others UPSilon 2000 works with; APC, Eaton,
      CyberPower) and for UPSilon traces, changing nothing.
    • “Connect UPS” — as a background job: stops UPSilon, installs nut,
      describes the UPS, upsd on 127.0.0.1 only; if the UPS doesn't answer,
      everything is put back. Optionally the host shuts down on low battery.
    • State, charge, load, runtime on battery, a 24-hour chart; findings
      “power lost”, “battery low”, “no link”, “replace battery”; alert
      thresholds — with a diff and history.
    • Hub: “power lost”, “power restored”, “UPS battery low”, “no link to UPS”
      events — to the journal, Telegram, Slack and webhooks; a UPS icon in the
      host row. In the app — the UPS on the host overview.

v1.13.9

Choose a tag to compare

@github-actions github-actions released this 10 Oct 13:44

v1.13.9 — 2026-10-10

  • Список хостов: значок состояния в первом столбце — по центру, с равными
    отступами слева и справа; столбец уже, освободившееся место отдано имени.

v1.13.8 — 2026-10-10

  • Значок вкладки виден и в Safari: кроме SVG — favicon.ico (16, 32,
    48 px), PNG 32 px и apple-touch-icon для закладок на iPhone и iPad.
    Раньше Safari, не показывающий SVG-значки, оставался без значка.

v1.13.9 — 2026-10-10

  • Host list: the status icon in the first column is centred with equal
    space on both sides; the column is narrower, the freed space goes to the
    name.

v1.13.8 — 2026-10-10

  • The tab icon shows in Safari too: besides the SVG — favicon.ico (16,
    32, 48 px), a 32 px PNG and an apple-touch-icon for iPhone and iPad
    bookmarks. Safari, which doesn't show SVG icons, used to get none.