Установка на Linux
Требования
Заголовок раздела «Требования»- Linux x86_64 или aarch64 с systemd.
- Root-доступ на время установки. Служба агента тоже работает от root — почему, объяснено ниже.
- Исходящий доступ по HTTPS/WSS к
nx.3fe.ru. Входящие порты не нужны. - Токен регистрации
nyxet_…из кабинета («Админ → Агенты → Токены подключения»). - Бинарник
nythronix-agent. В кабинете пока нет ссылки на сборку для Linux — получите её у команды Nythronix вместе с доступом к бете.
Для сессий tmux и zellij соответствующая программа должна быть установлена на машине — агент сообщит о ней панели сам.
Команда из кабинета
Заголовок раздела «Команда из кабинета»После создания токена кабинет показывает одну готовую команду. Выполните её от root, предварительно положив бинарник в PATH:
sudo install -m 0755 ./nythronix-agent /usr/local/bin/sudo nythronix-agent enroll --token nyxet_… --url wss://nx.3fe.ru/agent/wsenroll обменивает токен на постоянные учётные данные и пишет их вместе с ключом проверки обновлений в /etc/nythronix/agent.json (права 0600). Вывод выглядит так:
enrolled as agent-… (agent 3f1c…); 1 trusted key(s); config saved to /etc/nythronix/agent.jsonФлаг --hostname NAME задаёт имя, под которым машина будет показана в кабинете; по умолчанию берётся hostname системы.
Служба systemd
Заголовок раздела «Служба systemd»Создайте юнит:
[Unit]Description=Nythronix agentAfter=network-online.targetWants=network-online.target
[Service]ExecStart=/usr/local/bin/nythronix-agentRestart=on-failureRestartSec=5s
[Install]WantedBy=multi-user.targetи включите его:
sudo systemctl daemon-reloadsudo systemctl enable --now nythronix-agentБез подкоманды nythronix-agent запускает демон и читает учётные данные из /etc/nythronix/agent.json. Не добавляйте в юнит DynamicUser, NoNewPrivileges или ProtectSystem=strict — они ломают смену пользователя и запись sudoers, описанные ниже.
Непривилегированный пользователь
Заголовок раздела «Непривилегированный пользователь»Демон работает от root, но не выполняет команды воркеров от root. Создайте системного пользователя:
sudo useradd --system --home-dir /var/lib/nyx-worker --create-home \ --shell /usr/sbin/nologin nyx-workerЕсли пользователь существует, агент переключается в него (runuser) для каждой команды AI-воркера и сообщает об этом панели — в «Админ → Агенты» у машины появится отметка как nyx-worker. Root нужен демону ровно для трёх вещей: сменить пользователя, записать файл sudoers и заменить собственный бинарник при обновлении.
Терминалы операторов по умолчанию открываются от пользователя, под которым запущен агент. Администратор может назначить оператору другой локальный логин («Админ → Операторы → Терминал → юзер») — тогда его сессии будут стартовать как login-shell этого пользователя.
Sudo по запросу
Заголовок раздела «Sudo по запросу»По умолчанию у nyx-worker нет sudo. Когда воркеру действительно нужен root, администратор в «Админ → Агенты → Root воркера» нажимает «Выдать root» и выбирает срок: 15 минут, 1, 4 или 8 часов. Агент проверяет политику через visudo -cf и записывает /etc/sudoers.d/nyx-worker; по истечении срока файл удаляется самим агентом, даже если связь с панелью потеряна. Кнопка «Отозвать» снимает право досрочно. Вариант список ограничивает sudo перечнем команд.
Владелец машины может ограничить это локально файлом /etc/nythronix/agent-policy.json, который панель не видит и изменить не может:
{ "allow_remote_sudo": false, "max_sudo_policy": "list", "terminal_login_lock": "deploy"}allow_remote_sudo: false— отклонять любые выдачи sudo.max_sudo_policy— потолок:none<list<all.terminal_login_lock— все терминалы всегда открываются от этого пользователя.
Скрипт enroll-agent.sh записывает этот файл флагами --no-remote-sudo, --max-sudo none|list|all, --terminal-lock LOGIN.
Проверка подключения
Заголовок раздела «Проверка подключения»systemctl status nythronix-agentjournalctl -u nythronix-agent -fВ журнале должна появиться запись об успешном подключении, а на дашборде — карточка машины со статусом Online. При обрыве связи агент переподключается сам с нарастающей паузой от 1 до 30 секунд.
Типичные причины неудачи: токен уже использован или истёк (создайте новый), опечатка в --url, отсутствие исходящего доступа к nx.3fe.ru.
Обновление
Заголовок раздела «Обновление»В «Админ → Агенты» задайте машине Update policy: auto — применять релизы сразу, auto_idle_only — только когда нет активных сессий, manual (по умолчанию) — только уведомлять. Агент скачивает новый бинарник, сверяет SHA-256 и подпись Ed25519 ключом, полученным при регистрации, заменяет файл и перезапускается сам. Сессии tmux/zellij при этом переживают перезапуск и подхватываются заново.
Удаление
Заголовок раздела «Удаление»sudo systemctl disable --now nythronix-agentsudo rm /etc/systemd/system/nythronix-agent.service /usr/local/bin/nythronix-agentsudo rm -rf /etc/nythronixsudo rm -f /etc/sudoers.d/nyx-workerЗатем удалите запись машины в «Админ → Агенты», чтобы её учётные данные перестали действовать.