add yml config file, client now does not depends on .env

This commit is contained in:
2026-06-24 04:42:00 +03:00
parent 25ae509d52
commit fe2db1b6e9
13 changed files with 325 additions and 167 deletions
+19 -8
View File
@@ -32,15 +32,26 @@ client -> server: hello!, i'm $(hostname), uuid= , ts=, stdout= , stderr= , ...
## Разрешённые команды
Клиент исполняет только локально разрешённые command presets. Базовая
настройка задаётся переменной окружения `NEXUS_SYNC_ALLOWED_COMMANDS`.
Клиент исполняет только команды, описанные в локальном YAML config-файле.
Серверу отправляются только `name` и `description`; поле `cmd` остаётся только
на клиенте и не управляется сервером.
Примеры:
Пример:
```bash
NEXUS_SYNC_ALLOWED_COMMANDS=hostname,network_interfaces
NEXUS_SYNC_ALLOWED_COMMANDS=full_access
```yaml
server_url: "http://127.0.0.1:5852"
client_id: "linux-client"
client_token: "change-me-client-token"
allowed_commands:
- name: hostname
description: "Get the hostname of the client machine"
cmd: "hostname"
- name: network_interfaces
description: "Get network interface information"
cmd: "ip addr show"
logging_level: "INFO"
```
`full_access` означает доступ ко всем локально зарегистрированным presets. Это
не разрешает выполнение произвольных shell-строк от сервера.
Файл ищется как `nexus.yml`/`nexus.yaml` в текущей директории, затем в
`$XDG_CONFIG_HOME`, затем в `~/.config`, затем как
`~/.config/nexus/config.yml`/`.yaml`.