Конфигурация сервера хранится в файле server_config.json в корневой директории сервера. Файл загружается при запуске сервера.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
listen |
string | 0.0.0.0:8001 |
Адрес и порт для прослушивания |
data_dir |
string | ./data |
Директория для хранения данных (agents.json, commands.json и т.д.) |
preset_servers |
string[] | [] |
Список предустановленных серверов host:port для быстрого выбора в UI |
{
"listen": "0.0.0.0:8001",
"data_dir": "./data",
"preset_servers": [
"192.168.14.55:9443",
"192.168.14.71:9443"
]
}
Массив programs описывает приложения, конфигурациями которых управляет система.
| Параметр | Тип | Описание |
|---|---|---|
program_name |
string | Отображаемое имя программы в интерфейсе |
service_name |
string | Имя службы Windows для управления (start/stop/restart) |
required_capability |
string | Необязательная возможность агента, без которой сервер не публикует эту программу |
service_variants |
object[] | Упорядоченные взаимоисключающие варианты службы; агент выбирает первый установленный вариант |
managed_service_names |
string[] | Службы одной подсистемы в порядке запуска; остановка выполняется в обратном порядке |
components |
object[] | Компоненты логической программы: имя, служба или процесс, путь к файлу и команда версии |
ini |
object | Настройки INI-файла для изменения host:port |
json_hostport_sources |
object[] | Упорядоченные JSON-источники адреса: json_filename и корневой строковый key. Запись выполняется атомарно с сохранением остальных ключей. Необязательные last_good_filename и pending_marker_filename всегда задаются парой и включают штатный откат приложения |
terminal_id_sources |
object[] | Источники для чтения Terminal ID |
version_command |
string | Команда для получения версии программы. Плейсхолдер {exe} заменяется на полный путь к исполняемому файлу службы |
Raven задаётся одной программой с двумя взаимоисключающими семействами служб. Agent и Runner проверяются как службы, VServer — как процесс. Все версии читаются из JSON команды --build-info. Возможность managed_programs_v2 скрывает программу от старых агентов, которые ещё не понимают варианты и компоненты.
{
"program_name": "Raven",
"required_capability": "managed_programs_v2",
"service_variants": [
{
"variant_name": "windows",
"service_name": "connection-hub-agent",
"managed_service_names": ["runner-vserver", "connection-hub-agent"],
"components": [
{ "component_name": "Agent", "service_name": "connection-hub-agent", "version_command": "{exe} --build-info", "version_format": "build_info_json" },
{ "component_name": "Runner", "service_name": "runner-vserver", "version_command": "{exe} --build-info", "version_format": "build_info_json" },
{ "component_name": "VServer", "process_name": "vserver.exe", "executable_path": "vserver.exe", "version_command": "{exe} --build-info", "version_format": "build_info_json" }
]
}
],
"json_hostport_sources": [
{ "json_filename": "agent.config.json", "key": "server", "last_good_filename": "agent.config.json.lastgood", "pending_marker_filename": "agent.config.json.pending" }
]
}
| Параметр | Описание |
|---|---|
ini_filename |
Имя INI-файла (ищется рядом с исполняемым файлом службы) |
section |
Секция в INI-файле |
key_hostport |
Ключ, содержащий значение host:port |
{
"programs": [
{
"program_name": "MyApp",
"service_name": "MyAppService",
"ini": {
"ini_filename": "config.ini",
"section": "Network",
"key_hostport": "server"
},
"version_command": "myapp --version"
}
]
}
Terminal ID используется для идентификации терминала в интерфейсе. Можно указать несколько источников - агент проверяет их по порядку до первого найденного значения.
| Параметр | Описание |
|---|---|
file_path |
Полный путь к INI-файлу |
section |
Секция в INI-файле |
key |
Ключ с Terminal ID |
{
"terminal_id_sources": [
{
"file_path": "C:\\Program Files\\MyApp\\config.ini",
"section": "Agent",
"key": "terminal_id"
},
{
"file_path": "C:\\ProgramData\\MyApp\\settings.ini",
"section": "Main",
"key": "login"
}
]
}
Секция agent_settings содержит настройки, которые сервер передаёт агентам. Агенты периодически запрашивают эти настройки и применяют их.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
auto_update_enabled |
boolean | true |
Включить автоматическое обновление агентов |
auto_update_check_interval_minutes |
integer | 1 |
Интервал проверки обновлений в минутах |
command_stdout_fallback_encoding |
string | cp866 |
OEM fallback для stdout, если байты не являются строгим UTF-8 |
command_stderr_fallback_encoding |
string | windows-1251 |
ANSI fallback для stderr, если байты не являются строгим UTF-8 |
{
"agent_settings": {
"auto_update_enabled": true,
"auto_update_check_interval_minutes": 1,
"command_stdout_fallback_encoding": "cp866",
"command_stderr_fallback_encoding": "windows-1251"
}
}
Параметр allowed_networks ограничивает доступ к операциям изменения конфигурации по IP-адресам.
| Формат | Пример | Описание |
|---|---|---|
| Подсеть CIDR | 192.168.0.0/24 |
Все адреса 192.168.0.0 - 192.168.0.255 |
| Один адрес CIDR | 10.0.0.100/32 |
Только адрес 10.0.0.100 |
| Простой IP | 10.0.0.100 |
Эквивалентно /32 |
{
"allowed_networks": [
"192.168.0.0/24",
"10.0.0.100"
],
"trusted_proxy_networks": [
"192.0.2.10/32"
]
}
trusted_proxy_networks задаётся только для известного непосредственного reverse proxy. Он обязан передавать один проверяемый IP в X-Forwarded-For.
{
"listen": "0.0.0.0:8001",
"data_dir": "./data",
"preset_servers": [
"192.168.14.55:9443",
"192.168.14.71:9443",
"192.168.14.72:9443"
],
"allowed_networks": [
"192.168.0.0/24",
"10.0.0.0/8"
],
"agent_settings": {
"auto_update_enabled": true,
"auto_update_check_interval_minutes": 1,
"command_stdout_fallback_encoding": "cp866",
"command_stderr_fallback_encoding": "windows-1251"
},
"programs": [
{
"program_name": "SST Agent",
"service_name": "SSTAgent",
"ini": {
"ini_filename": "sst.ini",
"section": "Agent",
"key_hostport": "server"
},
"terminal_id_sources": [
{
"file_path": "C:\\Program Files\\RDS Commander\\sst.ini",
"section": "Agent",
"key": "login"
},
{
"file_path": "C:\\ProgramData\\RDS Commander\\sst.ini",
"section": "Agent",
"key": "login"
},
{
"file_path": "C:\\Program Files\\RDS Commander\\sst.ini",
"section": "Agent",
"key": "terminal"
}
],
"version_command": "sstagent version"
},
{
"program_name": "SSTXCH Bridge",
"service_name": "sstxch",
"ini": {
"ini_filename": "sstxch.ini",
"section": "agent",
"key_hostport": "host"
},
"hostport_sources": [
{
"ini_filename": "C:\\sstxch\\sstxch.local.ini",
"section": "agent",
"key_hostport": "host"
},
{
"ini_filename": "C:\\sstxch\\sstxch.ini",
"section": "agent",
"key_hostport": "host"
}
],
"terminal_id_sources": [
{
"file_path": "C:\\sstxch\\sstxch.local.ini",
"section": "agent",
"key": "terminal"
},
{
"file_path": "C:\\sstxch\\sstxch.ini",
"section": "agent",
"key": "terminal"
}
],
"version_command": "{exe} -version"
}
]
}
Сервер хранит данные в JSON-файлах в директории data_dir:
| Файл | Описание |
|---|---|
agents.json |
Информация о подключенных агентах и их статусе |
commands.json |
Очередь команд для агентов |
preset_servers.json |
Список пресетов серверов (добавленных через UI) |
packages.json |
Метаданные загруженных пакетов для разворачивания |
deployment_results.json |
Результаты выполнения разворачивания |