Перейти к основному содержанию Перейти к навигации Перейти к нижнему колонтитулу

CLI-приложение

Полное руководство по использованию интерфейса командной строки Rediacc для управления платформой

Справочник CLI Rediacc

Обзор

**Rediacc CLI** (`rdc`) — это интерфейс командной строки для управления самостоятельно размещаемой инфраструктурой: машинами, репозиториями, хранилищем, резервными копиями и многим другим.

Установка

Загрузите последний бинарный файл для вашей платформы со [страницы релизов Rediacc](https://www.rediacc.com) или установите через ваш менеджер пакетов:

# macOS / Linux
curl -fsSL https://www.rediacc.com | sh

# Or use the packaged binary directly
./rdc --help

Глобальные параметры

Каждая команда поддерживает эти глобальные флаги:

ФлагОписание
--outputФормат вывода (table|json|yaml|csv). Переопределить по умолчанию через REDIACC_DEFAULT_OUTPUT.
--configИспользовать конкретную конфигурацию для этой команды
--langПереопределение языка ({{languages}})
--forceПропустить подсказки подтверждения

1. Управление конфигурацией

Управление файлами конфигурации: создание, переключение, редактирование, сверка состояния и сквозные функции (поля, аудит, SSH-ключи, удалённая синхронизация).

Файлы конфигурации хранят данные подключения (URL API, учётные данные, команда/регион/мост по умолчанию), что позволяет быстро переключаться между средами.

1.1 prune

Удаляет лишний груз из локального файла конфигурации по адресу ~/.config/rediacc/<config>.json. Очищаются три категории, все чисто локально (без вызовов SSH/renet): (1) записи кэша сертификатов ACME, чей якорь GUID/репо/машина больше не в активной конфигурации; (2) архивированные репозитории с истёкшим льготным периодом (по умолчанию 7 дней, см. defaults.pruneGraceDays); (3) висячие перекрёстные ссылки (machine→strategy, strategy→repo). Используемые ресурсы, учётные данные, токены хранилища и known-hosts никогда не затрагиваются. По умолчанию изменения применяются; используйте --dry-run для предпросмотра.

rdc config prune [options]
ФлагОписаниеОбязательноПо умолчанию
--dry-runПредпросмотр того, что будет удалено, без изменения файла конфигурации. Отражает семантику по умолчанию-выкл других команд prune.Нет-
--certs-onlyОграничить корзиной кэша сертификатов ACME. Пропускает очистку архивов и перекрёстных ссылок. Взаимоисключающее с --archives-only и --refs-only.Нет-
--archives-onlyОграничить очисткой просроченных архивов. Пропускает кэш сертификатов и очистку перекрёстных ссылок. Исключающее с --certs-only и --refs-only.Нет-
--refs-onlyОграничить висячими перекрёстными ссылками (machine→strategy, strategy→repo excludes/includes). Пропускает кэш сертификатов и архивы. Взаимоисключающе с --certs-only и --archives-only.Нет-
--purge-archivedУдалить ВСЕ архивированные репозитории независимо от возраста, а не только те, что прошли льготный период. Эквивалентно выполнению 'rdc repo admin archive purge' для каждого архивного репозитория. Используйте только когда вы уверены, что вам не понадобятся сохранённые учётные данные для восстановления.Нет-
--orphan-reposУдаляет записи репозитория, не размещённые ни на одной машине. Каждая запись хранит учётные данные и SSH-ключ этого репозитория, поэтому это необратимо. Сначала выполните 'rdc config reconcile', чтобы размещение отражало ваши машины.Нет-
--grace-days <days>Переопределяет окно льготного периода архива (в днях) для этого вызова. Откатывается к defaults.pruneGraceDays в конфигурации, затем к 7, если ничего не задано.Нет-

1.2 init

Создать новый именованный файл конфигурации

В локальном режиме можно добавлять машины напрямую:

rdc config init [name] [options]
ФлагОписаниеОбязательноПо умолчанию
--ssh-key <path>Путь к SSH приватному ключу (например, ~/.ssh/id_rsa)Нет-
--renet-path <path>Путь к двоичному файлу renet (по умолчанию: renet в PATH)Нет-
--master-password <password>Зашифровать ресурсы с помощью мастер-пароляНет-
--server <url>URL сервера аккаунтаНет-

1.3 list

Список всех файлов конфигурации

rdc config list

1.4 show

Показать детали текущей конфигурации

rdc config show [options]
ФлагОписаниеОбязательноПо умолчанию
--revealПоказать открытый текст для конфиденциальных значений (только интерактивный режим)Нет-

1.5 current

Показать активную конфигурацию: имя, файл, определённый сервер и канал, состояние токена

rdc config current

1.6 delete

Удалить файл конфигурации

rdc config delete <name>

1.7 set

Задать значение по умолчанию (команда, регион, мост)

rdc config set <key> <value>

1.8 clear

Сбросить значения по умолчанию (все или конкретный ключ)

rdc config clear [key]

1.9 recover

Восстановить конфигурацию из файла резервной копии (.bak)

rdc config recover [name] [options]
ФлагОписаниеОбязательноПо умолчанию
-y, --yesПропустить подсказку подтвержденияНет-

1.10 ssh

Управление конфигурацией SSH-ключа

set

Задать SSH-ключ для текущей конфигурации

rdc config ssh set [options]
ФлагОписаниеОбязательноПо умолчанию
--key <path>Путь к файлу закрытого SSH-ключаДа-
--embedВстроить содержимое ключа в конфигурацию вместо сохранения путиНет-

show

Показать текущую конфигурацию SSH-ключа

rdc config ssh show

remove

Удалить SSH-ключ из текущей конфигурации

rdc config ssh remove

1.11 remote

Управление подключением к удалённому хранилищу конфигурации

enable

Привязать эту конфигурацию к удалённому зашифрованному хранилищу

rdc config remote enable [options]
ФлагОписаниеОбязательноПо умолчанию
--headlessИспользовать поток кода устройства (для серверов без интерфейса)Нет-
--passwordЗарегистрироваться в безголовом режиме с заранее выданным password slot (без браузера)Нет-
--api-url <url>URL сервера аккаунтаНет-
--forceЗаменить отличающееся локальное содержимое копией с сервера без подтвержденияНет-

disable

Отключиться от удалённого хранилища и сохранить конфигурацию локально

rdc config remote disable

status

Показать состояние удалённого подключения

rdc config remote status

refresh

Принудительно загрузить конфигурацию из удалённого хранилища

rdc config remote refresh

1.12 field

Операции над полями конфигурации по JSON-указателю (get/set/unset/rotate/list). Указатели JSON (RFC 6901), например /credentials/cfDnsApiToken.

get

Прочитать значение конфигурации по указателю JSON. Секретные поля скрываются, если не указан --reveal (только для человека).

rdc config field get [options]
ФлагОписаниеОбязательноПо умолчанию
--pointer <pointer>JSON Pointer к полю (например, /credentials/cfDnsApiToken)Да-
--revealПоказать секретные значения в открытом виде (только интерактивный TTY; аудируется)Нет-
--digestВывести дайджест SHA-256 вместо значения (безопасно для агентов)Нет-

set

Записать значение конфигурации по JSON-указателю. Для секретных путей требуется --current (шлюз знаний).

rdc config field set [options]
ФлагОписаниеОбязательноПо умолчанию
--pointer <pointer>JSON Pointer к полю (например, /credentials/cfDnsApiToken)Да-
--new <value>Новое значение (парсится как JSON, если начинается с {, [, " или равно true/false/null/числу)Да-
--current <value>Текущее значение в открытом виде — обязательно для изменения секретных путей (доказательство знания)Нет-

unset

Удалить значение конфигурации по JSON-указателю. Для секретных путей требуется --current.

rdc config field unset [options]
ФлагОписаниеОбязательноПо умолчанию
--pointer <pointer>JSON Pointer к полю (например, /credentials/cfDnsApiToken)Да-
--current <value>Текущее значение в открытом виде — обязательно для удаления секретных путейНет-

rotate

Ротация секретного значения без --current. Только интерактивный TTY; подробно аудируется.

rdc config field rotate [options]
ФлагОписаниеОбязательноПо умолчанию
--pointer <pointer>JSON Pointer к конфиденциальному полю (например, /credentials/cfDnsApiToken)Да-
--new <value>Новое значениеДа-

list

Показать все зарегистрированные шаблоны указателей с типом и политикой commit/шифрования.

rdc config field list [options]
ФлагОписаниеОбязательноПо умолчанию
--sensitiveПоказать только секретные (непубличные) шаблоныНет-

1.13 edit

Открыть активную конфигурацию в $EDITOR как редактированную JSONC-проекцию. Только для человека; агенты отклоняются.

rdc config edit [options]
ФлагОписаниеОбязательноПо умолчанию
--revealПоказать секретные значения в открытом виде (только интерактивный TTY; аудируется)Нет-
--dumpВывести текущую конфигурацию в stdout как JSONC вместо открытия редактора (только чтение; безопасно для агентов при редактировании)Нет-
--apply <file>Применить отредактированный файл JSONC (пропуская запуск $EDITOR)Нет-
--current-secrets <file>JSON-файл, сопоставляющий указатель→старый открытый текст для шлюза знаний при --applyНет-
--editor <cmd>Команда редактора (следует порядку git: --editor > $GIT_EDITOR > git config core.editor > $VISUAL > $EDITOR)Нет-

1.14 audit

Проверка журнала аудита конфигурации (JSONL с хеш-цепочкой в ~/.config/rediacc/audit.log.jsonl)

log

Вывести недавние записи аудита в формате JSON

rdc config audit log [options]
ФлагОписаниеОбязательноПо умолчанию
--since <spec>Показать только записи новее (например '24h', '7d', ISO-временная метка)Нет-
--path <glob>Фильтровать по шаблону JSON-указателя (например /credentials/*)Нет-
--actor <kind>Фильтровать по виду участника (human|agent)Нет-

tail

Стримить новые записи по мере появления (Ctrl+C — остановка)

rdc config audit tail

verify

Проверить целостность SHA-256-цепочки по всем записям аудита

rdc config audit verify

1.15 reconcile

Восстановить состояние времени выполнения на основе фактических данных с машин. Исправляет устаревшие данные подключения и маршрутизации.

rdc config reconcile [options]
ФлагОписаниеОбязательноПо умолчанию
--machine <m...>Ограничить сверку этими машинамиНет-
--dry-runПоказать действия без внесения измененийНет-
--accept-observedПереписать заявленное размещение так, чтобы оно соответствовало фактическому расположению образа, но только если это однозначно (обнаружено ровно на одной машине). Дубликаты остаются конфликтами.Нет-

1.16 rotate-cek

Ротировать ключ шифрования конфигурации организации

rdc config rotate-cek [options]
ФлагОписаниеОбязательноПо умолчанию
--api-url <url>URL сервера аккаунтаНет-

2. Управление хранилищем данных

Именованные пулы хранения, содержащие репозитории. Хранилище данных мобильно (подключается к одной машине, можно переместить на другую) и однопользовательское (в каждый момент им владеет ровно одна машина). Неявное хранилище данных по умолчанию на каждой машине здесь не управляется.

2.1 resize

Увеличить или уменьшить хранилище данных. Это офлайн-операция: репозитории внутри него должны быть остановлены.

rdc datastore resize <datastore> [options]
ФлагОписаниеОбязательноПо умолчанию
--size <size>Новый размер (например, 200G)Да-
--debugВключить отладочный вывод (локальный режим)Нет-

2.2 fork

Форкнуть хранилище данных методом copy-on-write. Форк выполняется мгновенно, и его стоимость не растёт с размером пула. Требует бэкенд rbd: у хранилища данных local нет блочного клонирования, поэтому репозитории внутри него форкаются по одному через reflink (rdc repo fork).

rdc datastore fork <datastore> [options]
ФлагОписаниеОбязательноПо умолчанию
--tag <tag>Тег для форка (результат — имя:тег)Да-
--attach-to <machine>Сразу подключить форк к этой машине (требует --writes)Нет-
--writes <disposition>Куда идёт запись форка: local (мгновенно, временно) или ceph (долговечный клон)Нет-
--cow-size <size>Размер оверлея для --writes localНет-
--debugВключить отладочный вывод (локальный режим)Нет-

2.3 status

Показать одно хранилище данных: его бэкенд, подключение, использование, репозитории и снимки. Отключённое хранилище данных всё равно отображает свою запись.

rdc datastore status <datastore> [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-

2.4 create

Создать дополнительное именованное хранилище данных на машине. Бэкенд local — это пул на основе файла на этой машине, который остаётся на ней. Бэкенд rbd находится в Ceph, поэтому может переместиться на любую машину, имеющую доступ к тому же кластеру. Передайте --cluster, чтобы сделать его хранилищем данных мира kubernetes; эта обратная ссылка фиксируется при создании.

rdc datastore create <datastore> [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Машина, на которой создать хранилище данныхДа-
--size <size>Размер хранилища данных (например, 100G)Да-
--backend <type>Бэкенд хранилища: local (на основе файла, остаётся на этой машине) или rbd (Ceph, перемещаемый)Нетlocal
--pool <name>Пул Ceph для бэкенда rbd (по умолчанию: rbd)Нет-
--image <name>Имя RBD-образа для бэкенда rbd (по умолчанию: имя хранилища данных)Нет-
--cluster <name>Кластер Kubernetes, которому принадлежит это хранилище данных. Если задан — только репозитории kubernetes; если нет — только репозитории docker. Фиксируется при создании.Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

2.5 list

Список именованных хранилищ данных, мест их подключения и содержимого.

rdc datastore list [place]

2.6 attach

Подключить хранилище данных к машине. В каждый момент времени хранилищем данных владеет ровно одна машина, поэтому подключение его в другом месте перемещает его: прежний владелец сначала отказывается от него, а при неудачной передаче исходное подключение остаётся нетронутым. Для форка необходимо указать, куда идёт запись.

rdc datastore attach <datastore> [options]
ФлагОписаниеОбязательноПо умолчанию
--to <machine>Машина, к которой подключить хранилище данныхДа-
--writes <disposition>Куда идёт запись форка: local (мгновенно, временно, теряется при отключении) или ceph (долговечный клон в пуле). Обязателен для форка.Нет-
--cow-size <size>Размер оверлея для --writes localНет-
--no-autoНе подключать это хранилище данных автоматически при загрузкеНет-
--forceИзолировать (fence) устаревшего владельца, который не освободил хранилище данных корректноНет-
--debugВключить отладочный вывод (локальный режим)Нет-

2.7 detach

Отключить хранилище данных от его машины. Репозитории внутри него сначала останавливаются. Форку, подключённому с --writes local, некуда записать обратно свой оверлей, поэтому при отключении оверлей отбрасывается и требуется --discard.

rdc datastore detach <datastore> [options]
ФлагОписаниеОбязательноПо умолчанию
--discardОтбросить форк с локальной записью и его оверлей. Данные невозможно восстановить.Нет-
-y, --yesПропустить подсказку подтвержденияНет-
--debugВключить отладочный вывод (локальный режим)Нет-

2.8 snapshot

Создание и просмотр списка моментальных снимков хранилища данных. Снимок ничего не стоит в состоянии покоя, и именно из него клонируется форк.

create

Сделать снимок хранилища данных на определённый момент времени. Ничего не останавливается. Этот момент согласован при сбое, но не согласован на уровне приложения: если вам нужно, чтобы конкретная запись попала в снимок, сначала синхронизируйте её.

rdc datastore snapshot create <datastore> [options]
ФлагОписаниеОбязательноПо умолчанию
--snapshot <label>Метка снимка (по умолчанию: метка времени UTC)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

list

Список снимков хранилища данных.

rdc datastore snapshot list <datastore> [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-

2.9 delete

Уничтожить хранилище данных и всё, что в нём находится. Сначала выполняется отключение; если оно не может отключиться корректно, удаление завершится ошибкой, а не оставит смонтированный пул осиротевшим.

rdc datastore delete <datastore> [options]
ФлагОписаниеОбязательноПо умолчанию
-y, --yesПропустить подсказку подтвержденияНет-
--forceУдалить, даже если на него всё ещё указывают репозитории. Их данные будут удалены вместе с ним.Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

3. Управление машинами

Просмотр состояния удалённой машины: системные ресурсы, запущенные контейнеры, сервисы systemd, развёрнутые репозитории и диагностика здоровья. Только запросы на чтение — для изменения репозиториев используйте `repo`. Основные подкоманды: status (полное состояние, сужается флагами --system, --containers, --repositories, --services), health, list, add, remove, setup, prune, provision, deprovision.

3.1 list

Список машин

rdc machine list [options]
ФлагОписаниеОбязательноПо умолчанию
--search <text>Поиск в {{field}}Нет-
--sort <field>Сортировать по полюНет-
--descСортировка в обратном порядкеНет-

3.2 health

Проверить состояние машины для CI/CD пайплайнов

Команда health выводит системные метрики, статус контейнеров, стабильность сервисов и информацию о хранилище — полезно для проверок CI/CD-конвейеров.

rdc machine health <name> [options]
ФлагОписаниеОбязательноПо умолчанию
-t, --team <name>Имя командыНет-

3.3 provision

Создать новую машину у облачного провайдера с помощью OpenTofu

rdc machine provision <name> [options]
ФлагОписаниеОбязательноПо умолчанию
--provider <name>Имя облачного провайдера (из machine provider add)Да-
--region <region>Переопределить регион по умолчаниюНет-
--type <type>Переопределить тип инстанса по умолчаниюНет-
--image <image>Переопределить образ ОС по умолчаниюНет-
--ssh-user <user>Имя пользователя SSH для новой ВМ (по умолчанию: root)Нет-
--base-domain <domain>Базовый домен для инфраструктуры (напр. example.com). Подразумевает --infraНет-
--no-infraПропустить настройку инфраструктуры (прокси + DNS)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

3.4 deprovision

Уничтожить облачную машину и удалить из конфигурации

rdc machine deprovision <name> [options]
ФлагОписаниеОбязательноПо умолчанию
--forceПропустить подсказку подтвержденияНет-
--debugВключить отладочный вывод (локальный режим)Нет-

3.5 prune

Удалить осиротевшие ресурсы хранилища данных и устаревшие снапшоты с машины

rdc machine prune <name> [options]
ФлагОписаниеОбязательноПо умолчанию
--dry-runПоказать, что будет удалено, без внесения измененийНет-
--orphaned-reposУдалить на машине каждый образ репозитория, отсутствующий в вашей локальной конфигурации CLI. Грубый режим — также удаляет форки, созданные другими инструментами и не имеющие записи в локальной конфигурации, даже если их зеркало renet корректно определяет их как форки. Используйте --prune-unknown для более точного поведения, учитывающего зеркало.Нет-
--prune-unknownУдалить только репо, которые зеркало renet .interim/state не может классифицировать (не в локальной конфигурации И без отмеченного как форк зеркала). Строго уже, чем --orphaned-repos: форки без конфигурации сохраняются, когда зеркало их идентифицирует. Pre-mirror унаследованные сироты и устаревшие grands, чья конфигурационная запись была удалена, оба попадают в эту корзину.Нет-
--force-delete-mountedПереопределить предполётную проверку монтирования и удалить репозитории, даже если они в данный момент смонтированы или имеют запущенные контейнеры Docker. Отличается от --force (который переопределяет только льготный период архива). Применяется как к --orphaned-repos, так и к --prune-unknown.Нет-
--forceПропустить подсказки подтвержденияНет-
--grace-days <days>Период отсрочки в днях для недавно архивированных репозиториев (по умолчанию: 7)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

3.6 add

Добавить машину в текущую конфигурацию

rdc machine add <name> [options]
ФлагОписаниеОбязательноПо умолчанию
--ip <address>IP-адрес или имя хоста машиныДа-
--user <username>Имя пользователя SSHДа-
--port <port>Порт SSHНет22

3.7 infra

Управление конфигурацией инфраструктуры (прокси, DNS, сертификаты)

cert

Управление кэшированными TLS-сертификатами

clear:

Удалить кэш сертификатов

rdc machine infra cert clear

pull:

Скачать и кэшировать TLS-сертификаты с машины

rdc machine infra cert pull <machine> [options]
ФлагОписаниеОбязательноПо умолчанию
--no-pruneПропустить очистку устаревших сертификатов сетевых IDНет-
--debugВключить отладочный вывод (локальный режим)Нет-

push:

Загрузить кэшированные TLS-сертификаты на машину

rdc machine infra cert push <machine> [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-

status:

Показать инвентарь кэшированных сертификатов

rdc machine infra cert status

push

Отправить конфигурацию инфраструктуры на машину (Traefik-прокси, маршрутизатор, Cloudflare DNS). Сначала выполните 'machine infra set <machine>'

rdc machine infra push <machine> [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-

set

Настройка инфраструктуры машины (для машины: IP, домен, порты; общие: email сертификата, CF DNS-токен)

rdc machine infra set <machine> [options]
ФлагОписаниеОбязательноПо умолчанию
--public-ipv4 <ip>Публичный IPv4-адрес (для каждой машины)Нет-
--public-ipv6 <ip>Публичный IPv6-адрес (для каждой машины)Нет-
--base-domain <domain>Базовый домен для приложений (для каждой машины)Нет-
--cert-email <email>Email для уведомлений о TLS-сертификатах (общий для всех машин)Нет-
--cf-dns-token <token>Cloudflare DNS API-токен для ACME DNS-01 проверки (общий для всех машин)Нет-
--tcp-ports <ports>TCP-порты для проброса (через запятую, например, 25,143,465)Нет-
--udp-ports <ports>UDP-порты для проброса (через запятую, например, 53)Нет-

show

Показать конфигурацию инфраструктуры для машины

rdc machine infra show <machine>

3.8 provider

Управление облачными провайдерами для автоматического создания машин

add

Добавить облачного провайдера

rdc machine provider add <name> [options]
ФлагОписаниеОбязательноПо умолчанию
--provider <source>Известный источник провайдера (например, linode/linode, hetznercloud/hcloud)Нет-
--source <source>Пользовательский источник провайдера OpenTofu (например, vultr/vultr)Нет-
--token <token>API-токен для облачного провайдераДа-
--region <region>Регион по умолчанию для новых машинНет-
--type <type>Тип/размер инстанса по умолчаниюНет-
--image <image>Образ ОС по умолчаниюНет-
--ssh-user <user>SSH-пользователь для новых ВМ (по умолчанию: root)Нет-
--resource <type>Пользовательский: тип ресурса OpenTofu для ВМНет-
--label-attr <attr>Пользовательский: имя атрибута метки ВМНет-
--region-attr <attr>Пользовательский: имя атрибута регионаНет-
--size-attr <attr>Пользовательский: имя атрибута типа инстансаНет-
--image-attr <attr>Пользовательский: имя атрибута образа ОСНет-
--ipv4-output <attr>Пользовательский: атрибут вывода IPv4-адресаНет-
--ipv6-output <attr>Пользовательский: атрибут вывода IPv6-адресаНет-
--ssh-key-attr <attr>Пользовательский: имя атрибута SSH-ключейНет-
--ssh-key-format <format>Пользовательский: формат SSH-ключа (inline_list или resource_id)Нет-
--ssh-key-resource <type>Пользовательский: тип ресурса OpenTofu для SSH-ключейНет-

list

Показать список настроенных облачных провайдеров

rdc machine provider list

remove

Удалить конфигурацию облачного провайдера

rdc machine provider remove <name>

3.9 remove

Удалить машину из текущей конфигурации

rdc machine remove <name> [options]
ФлагОписаниеОбязательноПо умолчанию
-y, --yesПропустить подсказку подтвержденияНет-
--forceУдалить машину, даже если на ней ещё размещены репозитории, оставив эти размещения висячими.Нет-

3.10 scan-keys

Сканировать SSH-ключи хостов для машин в текущей конфигурации

rdc machine scan-keys [name]

3.11 setup

Подготовить удалённую машину для репозиториев (устанавливает renet, настраивает Docker, хранилище BTRFS). Идемпотентно. Требуется после config machine add и перед repo create

rdc machine setup <name> [options]
ФлагОписаниеОбязательноПо умолчанию
--datastore-path <path>Путь к хранилищу данных на удалённой машинеНет/mnt/rediacc
--datastore-size <size>Размер хранилища данных (напр.: 95%, 100G)Нет95%
--debugВключить отладочный вывод (локальный режим)Нет-

3.12 status

Показать полный статус машины (система, репозитории, контейнеры, сервисы)

rdc machine status [name] [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-
--systemВключить только информацию о системеНет-
--repositoriesВключить только репозиторииНет-
--containersВключить только контейнерыНет-
--servicesВключить только сервисыНет-
--networkВключить только сетевые интерфейсыНет-
--block-devicesВключить только блочные устройстваНет-
--licensesВключить статусы лицензий репозиториевНет-
--storage-healthПоказать фрагментацию BTRFS и экономию reflink по репозиториямНет-
--datastoresПоказать подключённые хранилища данных (монтирование, подключение, использование)Нет-
--health-checkРежим проверки состояния - завершается с кодом 2 при наличии нездоровыхНет-
--stability-checkРежим проверки стабильности - завершается с кодом 2 при наличии сбойных/перезапускающихсяНет-
--search <text>Фильтровать репозитории по имениНет-
--sync-certsТакже получить кэш сертификатов ACME с машины после запросаНет-
--strictЗавершиться с ненулевым кодом (код 2), если какой-либо контейнер превысил порог отклонения здоровьяНет-

4. Управление кластерами

Провизия и управление кластерами: именованные наборы пулов узлов (ceph, k8s-server, k8s-agent, hyperconverged) в частной сети. Участники пулов материализуются в машины, поэтому на них работают все команды -m.

4.1 create

Объявить и провизировать кластер: машины, пулы Ceph и Kubernetes. Передайте --provider и --pool, чтобы объявить кластер за один шаг; create без параметров провизирует уже объявленный кластер.

rdc cluster create <cluster> [options]
ФлагОписаниеОбязательноПо умолчанию
--provider <provider>Провайдер: ключ cloudProviders или 'kvm'Нет-
--pool <spec...>Спецификация пула имя:роль:количество[:размер] (роль: ceph|k8s-server|k8s-agent|hyperconverged)Нет-
--declare-onlyЗаписать кластер в конфигурацию без провизииНет-
--network-cidr <cidr>CIDR частной сети (например, 10.0.0.0/24)Нет-
--network-primitive <primitive>Сетевой примитив (например, vlan, vpc, network)Нет-
--control-node <machine>Явная машина управляющего узла (по умолчанию: первый участник k8s-server)Нет-
--net-name <name>KVM: сеть libvirt для этого кластера (например, renet12)Нет-
--net-base <prefix>KVM: сетевой префикс, первые три октета (например, 192.168.112)Нет-
--net-offset <n>KVM: смещение, добавляемое к id каждой VM при вычислении её адресаНет-
--control-id <n>KVM: id VM узла управления и реестра (по умолчанию: 1)Нет-
--docker-registry <endpoint>KVM: конечная точка реестра Docker внутри VM для этого кластераНет-
--ssh-user <user>SSH-пользователь для провизируемых участниковНет-
--base-domain <domain>Базовый домен для публичного DNS кластера (иначе наследуется от соседней машины)Нет-
--control-ds-size <size>Размер якорного управляющего хранилища данных (по умолчанию 10G)Нет-
--control-ds-backend <backend>Бэкенд опорного управляющего хранилища данных: local | ceph (по умолчанию: ceph, если в кластере есть ceph, иначе local)Нет-
--control-ds-pool <pool>Пул Ceph rbd для якорного управляющего хранилища данных (backend ceph)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

4.2 status

Вывести список всех кластеров или показать полную конфигурацию одного кластера с --name.

rdc cluster status [cluster]

4.3 scale

Изменить количество участников пула (добавляет/удаляет машины, присоединяет/выводит узлы). Пулы k8s-agent масштабируются на месте; рост пула ceph выполняется напрямую через cephadm.

rdc cluster scale <cluster> [options]
ФлагОписаниеОбязательноПо умолчанию
--pool <pool>Имя пулаДа-
--count <n>Желаемое количество участниковДа-
--debugВключить отладочный вывод (локальный режим)Нет-

4.4 destroy

Демонтировать провизированных участников и удалить кластер и его машины из конфигурации.

rdc cluster destroy <cluster> [options]
ФлагОписаниеОбязательноПо умолчанию
--forceПропустить подтверждение и продолжить, несмотря на ошибки демонтажаНет-
--debugВключить отладочный вывод (локальный режим)Нет-

4.5 kubeconfig

Получить kubeconfig с управляющего узла кластера по SSH и закешировать его локально (0600) для kubectl.

rdc cluster kubeconfig <cluster>

4.6 fork

Клонировать целый кластер, включая данные его репозиториев, в новый кластер: скоординированный copy-on-write образов кластера и PV, затем переписывание идентичности узлов, чтобы форк поднялся на новых адресах. Родитель продолжает работать.

rdc cluster fork <cluster> [options]
ФлагОписаниеОбязательноПо умолчанию
--tag <tag>Тег форкаДа-
--to <dest-cluster>Целевой кластер, чьи узлы примут форк (его управляющий узел и агенты); кластер не может форкнуться на собственные машины, так как два k3s не могут разделять одно сетевое пространство имён хостаДа-
--writes <disposition>Режим записи форка: local (временный оверлей dm-COW, не расходует место в Ceph) | ceph (долговечный клон). По умолчанию localНет-
--upПоднять репозитории форка и проверить работоспособность кластера после его запускаНет-
--debugВключить отладочный вывод (локальный режим)Нет-

4.7 migrate

Перенести целый кластер, включая данные его репозиториев, на другую машину или в дата-центр с коротким переключением (горячее предварительное копирование, затем остановка-и-перезапуск на месте назначения).

rdc cluster migrate <cluster> [options]
ФлагОписаниеОбязательноПо умолчанию
--to <dest-cluster>Место назначенияДа-
--debugВключить отладочный вывод (локальный режим)Нет-

4.8 join

Подключить уже зарегистрированную машину к кластеру как агентский узел Kubernetes, используя тот же CA-токен присоединения, что и при закреплении (anchor) и повторном присоединении (rejoin).

rdc cluster join <machine> [options]
ФлагОписаниеОбязательноПо умолчанию
--cluster <name>Кластер для присоединения машиныДа-
--debugВключить отладочный вывод (локальный режим)Нет-

4.9 evict

Вывести узел из работы, удалить его объект Node и очистить его членство в кластере. Кластер определяется по машине; машина, у которой всё ещё подключено хранилище данных, будет отклонена.

rdc cluster evict <machine> [options]
ФлагОписаниеОбязательноПо умолчанию
--forceПропустить вывод узла, если он уже не отвечаетНет-
--debugВключить отладочный вывод (локальный режим)Нет-

4.10 rehearse

Отрепетировать релиз или обновление: форкнуть кластер на целевое место как эфемерную одноразовую копию (writes=local, без секретов, role=rehearsal), поднять её, проверить работоспособность, затем удалить. Родитель никогда не затрагивается.

rdc cluster rehearse <cluster> [options]
ФлагОписаниеОбязательноПо умолчанию
--on <dest-cluster>Целевой кластер для запуска одноразовой репетицииДа-
--tag <tag>Необязательный тег для репетиционного форка (по умолчанию: с меткой времени)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

4.11 snapshot

Моментальные снимки всего кластера на определённый момент времени. Один согласованный при сбое (crash-consistent) момент для всех хранилищ данных на бэкенде rbd, которыми владеет кластер, выполняемый через групповой снимок Ceph: ничего не останавливается, и кластер этого не замечает. У хранилищ данных с бэкендом local нет блочного группового примитива, поэтому они не входят в этот момент и отмечаются как таковые. Этот момент согласован при сбое, но не согласован на уровне приложения: если вам нужно, чтобы конкретная запись попала в снимок, сначала синхронизируйте её.

create

Создать снимок всех хранилищ данных на бэкенде rbd в кластере в ОДИН момент времени. Ничего не останавливается. Любое хранилище данных с бэкендом local в кластере указывается как находящееся вне этого момента: оно не входит в снимок. Этот момент согласован при сбое, но не согласован на уровне приложения: если вам нужно, чтобы конкретная запись попала в снимок, сначала синхронизируйте её.

rdc cluster snapshot create <cluster> [options]
ФлагОписаниеОбязательноПо умолчанию
--snapshot <label>Метка снимка (по умолчанию: метка времени UTC)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

list

Список групповых снимков кластера.

rdc cluster snapshot list <cluster> [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-

5. Сервер MCP

Сервер Model Context Protocol для AI-агентов

5.1 serve

Запустить MCP-сервер (транспорт stdio)

rdc mcp serve [options]
ФлагОписаниеОбязательноПо умолчанию
--config <name>Имя конфигурации для всех командНет-
--timeout <ms>Тайм-аут команды по умолчанию в миллисекундахНет120000

6. Жизненный цикл репозиториев

Развёртывание и управление зашифрованными репозиториями на машинах. Основные подкоманды: create, up (развернуть), down (остановить), fork (мгновенный CoW-клон), delete, push/pull (резервное копирование), sync (передача файлов). Жизненный цикл: repo create → repo up → repo down. Подробности об архитектуре, маршрутизации и переменных окружения см. в разделе Key Concepts в rdc --help.

6.1 up

Развернуть или обновить репозиторий (монтирование, запуск Rediaccfile up, вызывающего renet compose). Машина определяется из места размещения ссылки. Прокси-маршруты становятся активны примерно через 3с после развёртывания. По завершении выводится шаблон URL для служб, доступных по HTTP (метка rediacc.service_port). Первое развёртывание и форки монтируются автоматически. Восстановление контрольной точки CRIU определяется автоматически; используйте --skip-checkpoint для принудительного чистого запуска. Используйте --all --machine <m>, чтобы развернуть все репозитории на машине.

rdc repo up [ref] [options]
ФлагОписаниеОбязательноПо умолчанию
--no-startСмонтировать и подготовить репозиторий без выполнения его шагов up() (объединяет упразднённую 'repo mount': открытие LUKS и, для репозиториев кластера, генерацию PV).Нет-
--skip-checkpointПропустить восстановление из checkpoint CRIU, даже если данные checkpoint существуют (принудительный чистый запуск)Нет-
--tlsЗапросить выделенный TLS-сертификат для этого репозитория (форки по умолчанию используют общий сертификат машины)Нет-
--no-waitВернуться сразу после запуска контейнеров; проверки работоспособности продолжаются в фонеНет-
--allРазвернуть все репозитории, чей дом — --machine (пакетная форма)Нет-
-m, --machine <name>С --all: машина, репозитории которой нужно обработать пакетноНет-
--include-forksТакже монтировать/запускать форкнутые репозиторииНет-
--parallelЗапускать репозитории параллельноНет-
--concurrency <n>Максимум параллельных репозиториев (по умолчанию: 3)Нет3
-y, --yesПропустить подтверждение для пакетных операцийНет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-
--dry-runПоказать действия без внесения измененийНет-

6.2 down

Остановить Docker-контейнеры репозитория (выполняет Rediaccfile down через renet compose). Машина определяется из места размещения ссылки. НЕ размонтирует зашифрованный том — репозиторий остаётся смонтированным и может быть перезапущен командой 'repo up'. Используйте --unmount, чтобы также закрыть контейнер LUKS после остановки (объединяет упразднённую 'repo unmount'). Используйте --checkpoint, чтобы сохранить состояние процесса CRIU перед остановкой (следующий 'repo up' восстановит его автоматически). Используйте --all --machine <m>, чтобы остановить все репозитории на машине.

rdc repo down [ref] [options]
ФлагОписаниеОбязательноПо умолчанию
--unmountТакже размонтировать (закрыть контейнер LUKS) после остановки. Требуется перед 'repo resize' или для полной защиты томаНет-
--checkpointСоздать checkpoint CRIU перед остановкой (сохранить состояние памяти процессов для последующего восстановления через 'repo up')Нет-
--allОстановить все репозитории, чей дом — --machine (пакетная форма)Нет-
-m, --machine <name>С --all: машина, репозитории которой нужно обработать пакетноНет-
--parallelЗапускать репозитории параллельноНет-
--concurrency <n>Максимум параллельных репозиториев (по умолчанию: 3)Нет3
-y, --yesПропустить подтверждение для пакетных операцийНет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-
--dry-runПоказать действия без внесения измененийНет-

6.3 status

Получить статус репозитория

rdc repo status <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.4 cat

Прочитать ограниченный фрагмент файла внутри репозитория и записать его в stdout (ограничение на стороне сервера; диагностика выводится в stderr)

rdc repo cat <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--remote-file <path>Путь к файлу для чтения, относительно корня монтирования репозиторияДа-
--max-bytes <n>Максимальное количество байтов для чтения и вывода (по умолчанию 1 MiB, жёсткий лимит 50 MiB)Нет-
--offset <n>Смещение в байтах, с которого начинается чтениеНет-
--head <lines>Вывести только первые N строк (нельзя сочетать с диапазоном байтов)Нет-
--tail <lines>Вывести только последние N строк (нельзя сочетать с диапазоном байтов)Нет-
--statВывести только размер, тип и время изменения; содержимое не читатьНет-
--force-binaryРазрешить чтение бинарного (содержащего NUL) содержимогоНет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.5 diff

Сравнение на уровне файлов в стиле git между двумя репозиториями, форкнутыми с копированием при записи. Сообщает о добавленных, изменённых, удалённых и переименованных файлах. Сравнивает репозиторий, указанный --name (целевая/новая сторона), с его родителем, разрешённым из локальной конфигурации, либо с явным --base репозиторием (базовая/старая сторона). Только метаданные и не зависит от размера: сравнивает зашифрованные образы LUKS на уровне блоков без расшифровки, поэтому репозиторий 1 ГБ и 100 ГБ сравниваются за те же миллисекунды.

rdc repo diff <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--base <ref>Репозиторий для сравнения (базовая/старая сторона); по умолчанию родитель --nameНет-
--name-onlyПечатать только пути изменённых файлов, по одному в строке (без букв состояния)Нет-
--statПоказать величину изменения по файлам (дельты байтов и блоков) и итогиНет-
--content [path]Показать унифицированный текстовый diff для одного файла (требует путь к файлу)Нет-
--fastДоверять блочному фильтру; пропустить подтверждение по хешу содержимого (может завышать число "Изменённых")Нет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.6 list

Список репозиториев на машине

rdc repo list [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныНет-
--datastore <name>Список репозиториев в этом хранилище данных (разрешается до машины, которая владеет им в данный момент)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.7 create

Создать новый репозиторий. Укажите его дом один раз: машину или хранилище данных.

rdc repo create <name> [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныНет-
--datastore <name>Именованное хранилище данных, содержащее репозиторий (уровень docker или кластерная форма)Нет-
--size <size>Размер репозитория (напр. 10G, 100G, 1T)Нет-
--no-dockerНе запускать Docker-демон после созданияНет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.8 delete

Удалить репозиторий и его данные. Запись конфигурации сохраняется; используйте --archive-config, чтобы переместить учётные данные в deletedRepositories для восстановления через 'repo admin archive restore'. Принимает позиционный <ref>; голое имя разрешается в главную (grand) линию и отклоняется, если несколько репозиториев используют одно базовое имя — в этом случае передайте имя:тег, чтобы указать конкретный форк.

rdc repo delete <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--archive-configПереместить запись конфигурации в deletedRepositories для последующего восстановленияНет-
-y, --yesПропустить подсказку подтвержденияНет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-
--dry-runПоказать действия без внесения измененийНет-

6.9 commit

Зафиксировать текущее состояние смонтированного рабочего fork в новый неизменяемый commit (как в git). Commit сохраняет своё сообщение, автора, метку времени и родителя внутри тома (поэтому они переносятся при push) и помечается как доступный только для чтения — он не допускает монтирования. Рабочий fork остаётся без изменений, подобно тому как git оставляет рабочее дерево нетронутым. Чтобы получить записываемую копию, выполните checkout commit командой 'rdc repo checkout'.

rdc repo commit <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--message <msg>Сообщение commitДа-
--author <author>Автор commitНет-
--debugВключить отладочный вывод (локальный режим)Нет-

6.10 branch

Создать именованную ссылку branch, указывающую на текущий commit рабочего fork (его вершину). Ссылки branch хранятся в конфигурации CLI (machine = хранилище объектов, config = хранилище ссылок).

rdc repo branch <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--branch <branch>Имя новой веткиДа-

6.11 checkout

Клонировать неизменяемый commit (или вершину branch) через reflink в новый записываемый рабочий fork и направить на него HEAD. Почти мгновенно и с постоянным временем (reflink BTRFS).

rdc repo checkout <commit-or-branch-ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--tag <name>Имя для нового записываемого рабочего forkДа-
--from <workingFork>Интерпретировать позиционный аргумент <commit-or-branch-ref> как имя ветки в этом рабочем форкеНет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.12 log

Вывести историю commit, доступную от текущего commit рабочего fork (или от ссылки на commit), проходя по цепочке родителей, записанной командой 'rdc repo commit'. Чтение выполняется из зеркала вне тома, поэтому ни один commit не разблокируется.

rdc repo log <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-

6.13 merge

Выполнить merge исходного commit или fork в целевой рабочий fork. Активная цель никогда не изменяется на месте: результат собирается в reflink-клоне и атомарно подставляется. Подмонтированная или запущенная цель отклоняется без --force, который сначала корректно останавливает её. Без --resolve выполняется take-theirs для образа целиком (цель становится копией источника); с --resolve ours|theirs выполняется пофайловое трёхстороннее слияние относительно общего предка: уникальные изменения каждой стороны переносятся, а двусторонние конфликты разрешаются согласно флагу.

rdc repo merge <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--from <source>Исходный commit или fork, из которого выполняется mergeДа-
--forceСначала остановить подмонтированную/запущенную цель, затем выполнить merge (никогда не изменяет активное монтирование)Нет-
`—resolve <ourstheirs>`Пофайловое разрешение конфликтов при three-way merge: 'ours' сохраняет версию цели, 'theirs' берёт версию источника. Опустите для fast-forward образа целиком (take-theirs).Нет
--base <guid>GUID коммита общего предка для трёхстороннего слияния (используется с --resolve). По умолчанию — родитель исходного коммита или текущий коммит цели.Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

6.14 gc

Удаляет объекты неизменяемых коммитов на машине, до которых не дотягивается ни одна ветка или HEAD (GC по достижимости). Машина — это хранилище объектов; конфиг CLI — хранилище ссылок. По умолчанию пробный запуск: передайте --apply для удаления. Никогда не затрагивает смонтированный объект или рабочий форк.

rdc repo gc [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныДа-
--applyДействительно удалить недостижимые коммиты (по умолчанию — пробный просмотр)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

6.15 fork

Создать CoW-форк (копирование при записи) репозитория. ФОРК ПОЧТИ МГНОВЕННЫЙ И ВЫПОЛНЯЕТСЯ ЗА ПОСТОЯННОЕ ВРЕМЯ независимо от размера репозитория: BTRFS reflink клонирует базовый образ, поэтому репозиторий на 100 ГБ и на 1 ГБ форкаются за одни и те же ~секунды. Форк получает НОВЫЙ GUID, networkId, диапазон IP и домен автомаршрутизации ({service}-fork-{tag}.{repo}.{machine}.{baseDomain}) и является полностью независимой копией. Поддерживается онлайн-форк, родитель может продолжать работать. Форк автоматически наследует учётные данные шифрования родителя. Используйте --checkpoint, чтобы захватить состояние процесса CRIU перед форком — форк автоматически восстановится при первом 'repo up' (состояние в памяти сохраняется). ФОРК МЕЖДУ МАШИНАМИ: сначала форкните локально, затем перенесите: (1) rdc repo fork <parent-ref> --tag <name>, (2) rdc repo push <fork-ref> --to <target-machine>, (3) rdc backup restore <fork-ref> --as <fork-name> -m <target-machine> --up. ПРЕДУПРЕЖДЕНИЕ: НЕ используйте один только "repo push" для форка — это создаёт необработанную копию с ТЕМ ЖЕ GUID (а не независимый форк). Всегда форкайте сначала, чтобы получить новую идентичность. Автомаршрутизация использует имя репозитория, поэтому каждый форк автоматически получает уникальный домен.

rdc repo fork <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--tag <name>Тег для форка (создаёт имя:тег)Да-
--checkpointСоздать checkpoint CRIU на источнике перед fork (захватить состояние памяти процессов для восстановления в fork)Нет-
--immutableПомечает форк как доступный только для чтения: он отказывается монтироваться, сохраняя свой образ побайтово стабильным навсегда (замороженный коммит/база для межмашинной дельта-отправки)Нет-
--upМонтировать и запустить сервисы после форка (fork + mount + up одной командой)Нет-
--no-waitС --up: возвращается сразу после запуска контейнеров; healthcheck продолжаются в фоне (идеально для одноразовых форков)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.16 replicate

Создать N реплик репозитория для чтения за секунды, независимо от размера базы данных. Делает ОДИН снимок хранилища данных, затем выполняет N присоединений форков за постоянное время (copy-on-write, одноразовые локальные записи), распределённых по узлам кластера, и применяет сгенерированный оверлей: один закреплённый PersistentVolume на реплику, StatefulSet и два Service ({repo}-rw к primary, {repo}-ro по всем репликам). Реплики - это копии на момент времени: нет потока репликации, нет гарантии read-your-writes; каждая реплика перед началом обслуживания проходит один цикл восстановления после сбоя (crash-recovery). Обновляйте их командой 'repo replicate refresh'. Наборы реплик - управляемое состояние: смотрите 'repo replicate status' и удаляйте командой 'repo replicate remove'.

status

Показать управляемые наборы реплик: реплики, узлы размещения, форкнутые хранилища данных, снимок и метки времени обновления.

rdc repo replicate status <ref>

remove

Удалить набор реплик: удалить сгенерированные объекты k8s (по меткам), отбросить его форкнутые хранилища данных, удалить его снимок и забыть состояние. Инфраструктурные шаги выполняются по принципу best-effort, поэтому удаление доводится до конца даже на частично утраченном кластере.

rdc repo replicate remove <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-

refresh

Перевести каждую реплику на свежий снимок на момент времени, ПО ОДНОЙ: перезапустить под реплики, отбросить и заново форкнуть его хранилище данных по тому же пути и дать проверке готовности (readiness) снова допустить его к работе. Всё это время N-1 реплик продолжают обслуживать запросы.

rdc repo replicate refresh <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-

6.17 canary

Запустить НОВЫЙ образ рядом со стабильным и разделить живой трафик между ними по проценту (ступень 2 лестницы релиза). Создаёт один канареечный Deployment + Service на ТЕХ ЖЕ живых данных (без форка: пользователи канареечной версии на форкнутых данных читали бы устаревшие данные и писали бы в обречённую копию) и указывает прокси Rediacc направить заданный процент трафика стабильного хоста на него. Вес 0 держит канареечную версию без трафика (dark), вес 100 - это blue/green-переключение. Перед каждым изменением канареечной версии автоматически делается групповой снимок хранилищ данных кластера (ступень 0 лестницы релиза) как универсальная отмена. Совместимость схемы между двумя версиями (expand-contract) - ответственность приложения. Для релизов, ЛОМАЮЩИХ схему, используйте вместо этого blue/green: форкните репозиторий (мгновенно, включая данные), направьте Service форка сюда с весом 100 и откатитесь, перезапустив нетронутый родительский репозиторий; записи, сделанные после переключения, существуют только в новой копии, поэтому окно отката определяется политикой.

status

Показать управляемые канареечные наборы: вес, образы, стабильный service и последний снимок для отмены релиза.

rdc repo canary status <ref>

weight

Изменить процент трафика, направляемого на канареечную версию. Сначала делает свежий групповой снимок для отмены релиза, затем повторно применяет оверлей; прокси подхватывает новое разделение на следующем цикле обновления. Вес 100 отправляет весь трафик на новую версию (blue/green-переключение).

rdc repo canary weight <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--weight <percent>Процент трафика, направляемого на канареечную версию (целое число 0-100; 0 = без трафика, 100 = полное переключение)Да-
--debugВключить отладочный вывод (локальный режим)Нет-

remove

Удалить Deployment и Service канареечной версии (по меткам); стабильный Service снова обслуживает 100% трафика. Снимки для отмены релиза сохраняются; удаляйте их командами снимков хранилища данных.

rdc repo canary remove <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-

create

Запустить НОВЫЙ образ рядом со стабильным и направить на него процент живого трафика. Канареечная версия использует общие живые данные репозитория (без форка), поэтому совместимость схемы между двумя версиями — ответственность приложения. Сначала делается групповой снимок хранилищ данных кластера как средство отмены.

rdc repo canary create <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--image <image>Новый образ, который запускает канареечный Deployment (на тех же боевых данных)Да-
--port <port>Порт, на котором работает приложение (должен совпадать со стабильным Service)Да-
--weight <percent>Процент трафика, направляемого на канареечную версию (целое число 0-100; 0 = без трафика, 100 = полное переключение)Да-
--service <name>Стабильный Service, с которым разделяется трафик (по умолчанию: имя репозитория)Нет-
--replicas <n>Количество реплик канареечного Deployment (по умолчанию: 1)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

6.18 resize

Изменить размер репозитория офлайн (поддерживает увеличение и уменьшение)

rdc repo resize <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--size <size>Новый размер репозитория (напр. 10G, 100G, 1T)Да-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.19 expand

Расширить смонтированный репозиторий онлайн (без простоя)

rdc repo expand <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--size <size>Новый размер репозитория (напр. 10G, 100G, 1T)Да-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.20 trim

Возвращает в пул хранилища данных место из смонтированных репозиториев (онлайн, без простоя). Освобождает удалённые внутри репозиториев блоки обратно в пул через fstrim. Без ссылки обрабатываются все смонтированные репозитории на -m и само хранилище данных. Для репозиториев с активным резервным копированием fstrim пропускается, но очистка --docker всё равно выполняется

rdc repo trim [ref] [options]
ФлагОписаниеОбязательноПо умолчанию
--dockerОсвободить место Docker (остановленные контейнеры, висячие образы, кэш сборки); выполняется даже при активном снимке резервной копииНет-
--docker-volumesДополнительно удалить неиспользуемые тома DockerНет-
--report-onlyПоказать состояние discard и оценку возвращаемого места без измененийНет-
-m, --machine <name>Имя целевой машиныНет-
--debugВключить отладочный вывод (локальный режим)Нет-

6.21 policy

Управляет автоматической политикой размера, применяемой обслуживателем хранилища машины: увеличивает квоту репозитория онлайн при заполнении (никогда выше max-quota и не при нехватке места в пуле) и выполняет плановые trim. Автоматического уменьшения нет; для этого используйте 'repo resize'. Без ссылки задействуется общемашинная политика по умолчанию на -m

set

Задаёт поля политики размера. Меняются только переданные флаги; остальные сохранённые поля остаются прежними. Для авторостa требуется --max-quota: потолок — это явное согласие на переподписку пула

rdc repo policy set [ref] [options]
ФлагОписаниеОбязательноПо умолчанию
--auto-grow <bool>Включить автоматический онлайн-рост квоты (true/false)Нет-
--max-quota <size>Потолок авторостa (например 200G); обязателен для авторостaНет-
--grow-threshold <percent>% заполнения файловой системы, запускающий рост (по умолчанию 85)Нет-
--grow-step <step>Шаг роста: абсолютный (10G) или процент от квоты (20%)Нет-
--auto-trim <bool>Включить плановый trim (true/false)Нет-
--trim-interval <hours>Минимальный интервал между автоматическими trim в часах (по умолчанию 24)Нет-
-m, --machine <name>Имя целевой машиныНет-
--debugВключить отладочный вывод (локальный режим)Нет-

get

Показывает сохранённое умолчание машины, переопределение репозитория (со ссылкой) и итоговую объединённую политику, по которой действует обслуживатель

rdc repo policy get [ref] [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныНет-
--debugВключить отладочный вывод (локальный режим)Нет-

6.22 push

Отправить репозиторий на удалённый ресурс (машину или хранилище). Тип цели определяется автоматически из конфигурации. При передаче между машинами зашифрованный образ репозитория копируется с тем же GUID — это резервное копирование/миграция, а не форк. Для создания независимого форка сначала используйте 'repo fork', затем push. Отправленная копия оседает как резервный АРТЕФАКТ: разверните его на целевой машине командой 'backup restore <ref> --as <name> -m <target> --up'

rdc repo push <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--to <remote>Имя целевой машины или хранилища (определяется автоматически из конфигурации)Нет-
--to-machine <machine>Нет-
--provision <provider>Автоматически создать целевую машину через облачного провайдера, если она не существуетНет-
--checkpointСоздать контрольную точку CRIU перед резервным копированием (захват состояния памяти процессов для живой миграции)Нет-
--forceПринудительно перезаписать существующую резервную копиюНет-
-w, --watchСледить за изменениямиНет-
--bwlimit <limit>Ограничение пропускной способности rsync (напр., "6M", "10M")Нет-
--delta-base <guid>GUID неизменяемой базы, побайтно идентичной на обеих машинах; передавать только изменённые блоки (для машины-цели). Опустите для автоматического выбора базыНет-
--strategy <strategy>Стратегия блочной дельты при использовании базы дельты: auto, physical или sharedНет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.23 pull

Получить репозиторий с удалённого ресурса (машины или хранилища). Опустите имя для получения всех репозиториев. Тип источника определяется автоматически из конфигурации. Используйте --up для развёртывания после pull

rdc repo pull <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--from <remote>Имя исходной машины или хранилища (определяется автоматически из конфигурации)Нет-
--from-machine <machine>Нет-
--forceПринудительно перезаписать существующий репозиторийНет-
--upПосле pull смонтировать и развернуть репозиторий на этой машинеНет-
-w, --watchСледить за изменениямиНет-
--bwlimit <limit>Ограничение пропускной способности rsync (напр., "6M", "10M")Нет-
--delta-base <guid>GUID неизменяемой базы, побайтно идентичной на обеих машинах; получать только изменённые блоки (для машины-источника)Нет-
--strategy <strategy>Стратегия блочной дельты при использовании базы дельты: auto, physical или sharedНет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.24 migrate

Живая миграция репозитория с одной машины на другую с минимальным простоем. Двухфазный rsync: массовая передача во время работы, затем короткая остановка для дельта-синхронизации. Переносит весь репозиторий целиком (маршрутизация перенаправляется на новое место), и после успешного переноса удаляет исходные образы (используйте --keep-source, чтобы сохранить их). Поддерживает checkpoint CRIU для миграции состояния памяти процессов и автоматическое развёртывание целевых машин

rdc repo migrate <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--to <place>Целевая машина или кластерДа-
--provision <provider>Автоматическое создание целевой машины через облачного провайдера (напр., hetzner, linode)Нет-
--bwlimit <limit>Ограничение пропускной способности rsync (напр., 10M)Нет-
--checkpointЖивая миграция CRIU: захват и восстановление состояния памяти процессаНет-
--delta-base <guid>GUID неизменяемой базы для дельты переключения (для опытных пользователей; по умолчанию — база Фазы 1)Нет-
--strategy <strategy>Стратегия блочной дельты для переключения: auto, physical или sharedНет-
--skip-dnsПропустить переключение DNS-записей после миграцииНет-
--keep-sourceСохранить исходные образы после успешного переноса (по умолчанию они удаляются; оставшиеся копии не адресуемы ни одной записью конфигурации, и reconcile помечает их как бесхозные)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

6.25 sync

Синхронизация репозиториев и файлов (массовый push/pull, передача файлов)

upload

Загрузить файлы в репозиторий

rdc repo sync upload <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--local <paths...>Один или несколько локальных путей к файлу или каталогу (по умолчанию: текущий каталог)Нет-
--remote <path>Путь к удаленной поддиректории в репозиторииНет-
--remote-file <path>Путь к одному удалённому файлу (относительно корня репозитория) для загрузки. Несовместим с --remote.Нет-
--mirrorРежим зеркала - удалить удаленные файлы, отсутствующие локальноНет-
--verifyПроверить файлы с помощью контрольных сумм после синхронизацииНет-
--confirmПредпросмотр изменений и запрос подтверждения перед синхронизациейНет-
--exclude <patterns...>Шаблоны для исключения из синхронизацииНет-
--dry-runПоказать действия без внесения измененийНет-

download

Скачать файлы из репозитория

rdc repo sync download <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--local <path>Путь к локальной директории (по умолчанию: текущая директория)Нет-
--remote <path>Путь к удаленной поддиректории в репозиторииНет-
--remote-file <path>Путь к удалённому файлу в репозитории (альтернатива --remote для передачи одного файла)Нет-
--mirrorРежим зеркала - удалить локальные файлы, отсутствующие на удаленной машинеНет-
--verifyПроверить файлы с помощью контрольных сумм после синхронизацииНет-
--confirmПредпросмотр изменений и запрос подтверждения перед синхронизациейНет-
--exclude <patterns...>Шаблоны для исключения из синхронизацииНет-
--dry-runПоказать действия без внесения измененийНет-

status

Проверить статус синхронизации и сравнить локальные/удалённые файлы

rdc repo sync status <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--local <path>Путь к локальной директории (по умолчанию: текущая директория)Нет-
--remote <path>Путь к удаленной поддиректории в репозиторииНет-
--remote-file <path>Путь к удалённому файлу в репозитории (альтернатива --remote для передачи одного файла)Нет-

6.26 tunnel

Создать SSH-туннель с перенаправлением портов к порту контейнера на удалённой машине. Автоматически определяет контейнер и порт, если они однозначны. Туннель остаётся открытым до нажатия Ctrl+C

rdc repo tunnel <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
-c, --container <name>Имя контейнера (определяется автоматически, если запущен только один)Нет-
--port <port>Порт удалённого контейнера для перенаправленияНет-
--local <port>Локальный порт (по умолчанию совпадает с удалённым)Нет-
--url-onlyВывести только локальный URL когда туннель готов (для автоматизации)Нет-

6.27 secret

Управление секретами для каждого репозитория, внедряемыми во время развёртывания. Только запись: get возвращает только дайджест (значение никогда не возвращается), set/unset требуют совпадения дайджеста --current либо --rotate-secret. Два режима доставки: env (REDIACC_SECRET_<KEY>) и file (tmpfs по пути /var/run/rediacc/secrets/<networkId>/<KEY> через `secrets:` в compose). Секреты никогда не попадают в зашифрованный образ LUKS; форки их не наследуют.

get

Показать SHA-256-дайджест секрета. Значение в открытом виде по замыслу никогда не возвращается (только запись). Используйте --current в последующем set/unset, чтобы подтвердить уже известное значение, либо выполните ротацию через `set --rotate-secret`.

rdc repo secret get <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--key <KEY>Секретный ключ в формате UPPER_SNAKE_CASE (максимум 64 символа). Будет доступен как REDIACC_SECRET_<KEY> для режима env или /run/secrets/<key> в контейнерах для режима file.Да-

list

Перечислить ключи и режимы секретов (никогда не значения, никогда не дайджесты).

rdc repo secret list <ref>

set

Установить или перезаписать секрет. Форки не наследуют; устанавливайте на форк явно. В контексте агента требуется совпадение дайджеста --current (стиль passwd).

rdc repo secret set <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--key <KEY>Секретный ключ в формате UPPER_SNAKE_CASE (максимум 64 символа). Будет доступен как REDIACC_SECRET_<KEY> для режима env или /run/secrets/<key> в контейнерах для режима file.Да-
--value <value>Секретное значение. Передайте `-` для чтения из stdin (избегает раскрытия в истории оболочки).Да-
--mode <mode>Режим доставки: 'env' (видим в среде контейнера, docker inspect) или 'file' (файл tmpfs, никогда не в env). По умолчанию: file.Нетfile
--current <value>Предыдущее значение в открытом виде (предусловие в стиле passwd). Обязательно для перезаписи/удаления; взаимоисключающе с --rotate-secret.Нет-
--rotate-secretПодтвердить ротацию; пропустить предусловие --current (аудировано как ротация). Использовать при намеренной ротации без проверки предыдущего значения.Нет-

unset

Удалить секрет. В контексте агента требуется совпадение дайджеста --current.

rdc repo secret unset <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--key <KEY>Секретный ключ в формате UPPER_SNAKE_CASE (максимум 64 символа). Будет доступен как REDIACC_SECRET_<KEY> для режима env или /run/secrets/<key> в контейнерах для режима file.Да-
--current <value>Предыдущее значение в открытом виде (предусловие в стиле passwd). Обязательно для перезаписи/удаления; взаимоисключающе с --rotate-secret.Нет-
--rotate-secretПодтвердить ротацию; пропустить предусловие --current (аудировано как ротация). Использовать при намеренной ротации без проверки предыдущего значения.Нет-

6.28 admin

Команды администрирования и обслуживания репозиториев.

archive

Учёт записей об архивированных репозиториях.

list:

Показать список архивированных учётных данных репозиториев

rdc repo admin archive list

purge:

Безвозвратно удалить все архивированные учётные данные

rdc repo admin archive purge [name] [options]
ФлагОписаниеОбязательноПо умолчанию
-y, --yesПропустить подсказку подтвержденияНет-

restore:

Восстановить архивированные учётные данные репозитория

rdc repo admin archive restore <name> [options]
ФлагОписаниеОбязательноПо умолчанию
--new-name <name>Новое имя ресурсаНет-

validate

Проверить целостность репозитория

rdc repo admin validate <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

fsck

Проверяет ссылки конфига CLI (ветки, HEAD) на соответствие объектам, фактически присутствующим на машине. Сообщает о висячих ссылках (ссылка указывает на отсутствующий объект) и осиротевших коммитах (неизменяемый коммит, до которого не дотягивается ни одна ссылка). Только чтение.

rdc repo admin fsck [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныДа-

ownership

Изменить владельца каталога репозитория

rdc repo admin ownership <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--uid <uid>UID владельца (по умолчанию: 7111)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

autostart

Управление автозапуском репозиториев при загрузке

enable:

Включить автозапуск для репозитория

rdc repo admin autostart enable [ref] [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

disable:

Отключить автозапуск для репозитория

rdc repo admin autostart disable [ref] [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

list:

Показать репозитории с включённым автозапуском

rdc repo admin autostart list [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныДа-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

template

Применить шаблон к репозиторию

list:

Список всех встроенных шаблонов развёртывания CLI

rdc repo admin template list

apply:

Применить шаблон к репозиторию. Используйте имя встроенного шаблона (например, app-postgres) или --file для пользовательского JSON-шаблона. Жизненный цикл Rediaccfile: up() запускает контейнеры (здесь выполняется pull образов, генерация конфигов), down() останавливает. Минимальный Rediaccfile: up() { renet compose -- pull; renet compose -- up -d; } down() { renet compose -- down; }. ВАЖНО: Rediaccfile ДОЛЖЕН использовать 'renet compose': 'docker compose' отклоняется. ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ: два уровня: (a) оболочка Rediaccfile: ${SVCNAME_IP} (например, APP_IP), ${REDIACC_WORKING_DIR}, ${REDIACC_NETWORK_ID}. (b) Внутри контейнеров: renet автоматически внедряет переменные SERVICE_IP и REDIACC_NETWORK_ID. Переписывание bind через eBPF прозрачно обеспечивает изоляцию IP, поэтому приложения могут биндиться на 0.0.0.0, а ядро переписывает адрес на нужный loopback IP. Проверки здоровья могут использовать localhost. network_mode:host внедряется автоматически, а ports: игнорируется. ХРАНИЛИЩЕ: и bind-монтирования ${REDIACC_WORKING_DIR}/..., и именованные тома Docker безопасны: корень данных Docker находится внутри зашифрованного LUKS-тома. ПОЛИТИКА ПЕРЕЗАПУСКА: политики перезапуска безопасны: renet автоматически удаляет их для совместимости с CRIU, а watchdog обеспечивает восстановление. Compose: НЕ добавляйте network_mode или метки rediacc.* (renet внедряет их сам). Мультипроект: разместите каждый подпроект в собственной поддиректории с собственным Rediaccfile: renet автоматически обнаруживает их и запускает по порядку. HTTPS-маршрутизация: (A) Автомаршрут (дружественный к форкам, рекомендуется): НЕ добавляйте traefik.enable. Renet автоматически генерирует https://{serviceName}.{repoName}.{machineName}.{baseDomain}. Добавьте метку rediacc.service_port=<port> для портов, отличных от 80. Каждый форк получает уникальный домен. (B) Метки Traefik (собственный домен, НЕ дружественный к форкам): traefik.enable=true, traefik.http.routers.<n>.rule=Host(`domain`), traefik.http.routers.<n>.entrypoints=websecure,websecure-v6, traefik.http.routers.<n>.tls.certresolver=letsencrypt, traefik.http.services.<n>.loadbalancer.server.port=<port>. Для TCP/UDP: rediacc.tcp_ports=3306 / rediacc.udp_ports=53

rdc repo admin template apply <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--template <name>Шаблон для примененияДа-
--file <path>Путь к пользовательскому файлу шаблона JSON ({"version":"2","files":{"Rediaccfile":"...","docker-compose.yml":"..."}}): переопределяет имя встроенного шаблонаНет-
--grand <name>Имя главного репозитория (автоматически разрешается в GUID)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.29 promote

Заменить данные главного репозитория данными форка. Главный сохраняет свою идентичность (GUID, networkId, домены, автозапуск, цепочку резервных копий), но получает обновлённые данные форка. Старые производственные данные сохраняются как резервный форк. Использование: протестировать обновление на форке → проверить → перенести в продакшн.

rdc repo promote <fork-ref> [options]
ФлагОписаниеОбязательноПо умолчанию
-y, --yesПропустить подсказку подтвержденияНет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

6.30 logs

Показать журналы приложений из контейнеров репозитория. Docker-репозитории читают их из собственного Docker-демона репозитория; kubernetes-репозитории читают журналы подов в пространстве имён репозитория. Если в репозитории запущено больше одного контейнера, укажите нужный через --container.

rdc repo logs <ref> [options]
ФлагОписаниеОбязательноПо умолчанию
-c, --container <name>Контейнер для чтения (нужен только если в репозитории запущено больше одного)Нет-
-f, --followНепрерывно выводить новые строки до прерыванияНет-
--lines <n>Сколько строк истории показать (по умолчанию: 100)Нет100
--timestampsДобавлять метку времени перед каждой строкойНет-
--debugВключить отладочный вывод (локальный режим)Нет-

6.31 exec

Выполнить команду внутри контейнера репозитория. Код завершения самой команды передаётся без изменений, поэтому это работает в скриптах и условных конструкциях. Docker-репозитории выполняют её через Docker-демон репозитория; kubernetes-репозитории — в пространстве имён репозитория.

rdc repo exec <ref> <cmd...> [options]
ФлагОписаниеОбязательноПо умолчанию
-c, --container <name>Контейнер для выполнения (нужен только если в репозитории запущено больше одного)Нет-
-i, --interactiveВыделить терминал (для команды, которая его ожидает)Нет-
-u, --user <user>Пользователь, от имени которого выполнить командуНет-
--debugВключить отладочный вывод (локальный режим)Нет-

7. Отсоединённые задачи

Управление отсоединёнными задачами на машине: просмотр списка, проверка статуса, воспроизведение или отслеживание журнала событий, отмена задачи, удаление завершённых. Отсоединённая задача выполняется под systemd на машине, поэтому она переживает разрыв соединения и к ней можно позже подключиться повторно.

7.1 list

Список отсоединённых задач на машине, сначала новые

rdc job list [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныДа-

7.2 status

Показать статус отсоединённой задачи

rdc job status <job-id> [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныДа-

7.3 logs

Воспроизвести или отслеживать журнал событий отсоединённой задачи

rdc job logs <job-id> [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныДа-
-f, --followТранслировать поток до завершения задачиНет-
--since-line <n>Продолжить после этого количества строк (сколько вы уже получили)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

7.4 cancel

Отменить выполняющуюся отсоединённую задачу

rdc job cancel <job-id> [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныДа-
-y, --yesПропустить подсказку подтвержденияНет-

7.5 gc

Удалить завершённые задачи и их журналы

rdc job gc [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныДа-
--older-than <duration>Удалять задачи, завершённые более этого количества часов назад (по умолчанию: 168)Нет-
-y, --yesПропустить подсказку подтвержденияНет-

8. Резервное копирование и восстановление

Управление стратегиями резервного копирования, их плановыми запусками и артефактами, которые они создают: объявите стратегию для репозитория, запускайте или восстанавливайте её по требованию и просматривайте архивы, записанные в конечную точку хранилища.

8.1 schedule

Развернуть расписание резервного копирования на удалённой машине (таймеры systemd)

rdc backup schedule [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя машиныДа-
--dry-runПредварительный просмотр сгенерированных юнитов без развёртыванияНет-
--forceПродолжить, даже если в данный момент выполняется резервное копирование (новый юнит применится при следующем срабатывании таймера; запущенный вызов сохранит старый юнит)Нет-
--reset-failedСбрасывать состояние failed у затронутых сервисов после успешного развёртывания (по умолчанию выключено, сохраняет сигнал об ошибках)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

8.2 cancel

Отменить выполняемое резервное копирование на удалённой машине

rdc backup cancel [strategy] [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя машиныДа-
--debugВключить отладочный вывод (локальный режим)Нет-

8.3 list

Список артефактов резервного копирования на машине или в хранилище.

rdc backup list [artifact-ref] [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя машиныНет-
--storage <name>Список артефактов на этой конечной точке хранилищаНет-
--path <subdir>Подкаталог внутри корня хранилища. Если не указан, выводятся и объединяются hot/ и cold/.Нет-
-w, --watchСледить за изменениямиНет-
--debugВключить отладочный вывод (локальный режим)Нет-

8.4 restore

Превратить артефакт резервной копии в действующий репозиторий. Место размещения указывается здесь.

rdc backup restore <artifact-ref> [options]
ФлагОписаниеОбязательноПо умолчанию
--as <name>Имя для восстановленного репозитория (по умолчанию — имя артефакта)Нет-
-m, --machine <name>Имя машиныНет-
--datastore <name>Восстановить в это именованное хранилище данных (его размещает подключённая к нему машина)Нет-
--upРазвернуть восстановленный репозиторий после передачиНет-
--health-window <seconds>Общее окно проверки работоспособности в секундах (по умолчанию 300)Нет-
--health-timeout <seconds>Тайм-аут одной попытки проверки работоспособности в секундах (по умолчанию 30)Нет-
-y, --yesПропустить подсказку подтвержденияНет-
--debugВключить отладочный вывод (локальный режим)Нет-

8.5 run

Немедленно запустить резервное копирование на удалённой машине

rdc backup run [strategy] [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя машиныДа-
-w, --watchСледить за изменениямиНет-
--debugВключить отладочный вывод (локальный режим)Нет-

8.6 status

Показать статус резервного копирования и состояние таймера на удалённой машине

rdc backup status [strategy] [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя машиныДа-
--debugВключить отладочный вывод (локальный режим)Нет-

8.7 strategy

Управление именованными стратегиями резервного копирования (горячий/холодный режимы, назначения, расписание)

set

Создать или обновить стратегию резервного копирования

rdc backup strategy set <strategy> [options]
ФлагОписаниеОбязательноПо умолчанию
--destination <name>Имя назначения в рамках стратегииНет-
--storage <name>Имя конфигурации хранилища (учётные данные rclone)Нет-
--cron <expression>Расписание cron (напр. "0 * * * *" для ежечасного запуска)Нет-
--mode <mode>Режим резервного копирования: "hot" (без простоя) или "cold" (остановка, снимок, перезапуск)Нет-
--bwlimit <limit>Ограничение пропускной способности rclone (напр. "6M", "10M:off", "08:00,3M;22:00,10M")Нет-
--include <repos>Копировать только эти репозитории (имена через запятую)Нет-
--exclude <repos>Исключить эти репозитории из резервного копирования (имена через запятую)Нет-
--folder <path>Подпапка в хранилище для этого назначения (напр. hot, cold)Нет-
--enableВключить стратегию или назначениеНет-
--disableОтключить стратегию или назначениеНет-

bind

Привязать стратегию резервного копирования к машине, чтобы её расписание было развёрнуто на ней

rdc backup strategy bind <strategy> [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныДа-

unbind

Отвязать стратегию резервного копирования от машины

rdc backup strategy unbind <strategy> [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя целевой машиныДа-

remove

Удалить стратегию резервного копирования или назначение

rdc backup strategy remove <strategy> [options]
ФлагОписаниеОбязательноПо умолчанию
--destination <name>Удалить только это назначение (остальные назначения сохраняются)Нет-

list

Показать все стратегии резервного копирования

rdc backup strategy list

show

Показать детали стратегии резервного копирования

rdc backup strategy show [strategy]

9. Управление хранилищем

Управление внешними конечными точками хранилища резервных копий (S3 и другие цели, совместимые с rclone): регистрируйте и удаляйте их, просматривайте список зарегистрированных, изучайте хранящиеся артефакты и очищайте осиротевшие резервные копии.

9.1 list

Список конечных точек хранилища. Укажите имя для получения полной информации.

rdc storage list [name] [options]
ФлагОписаниеОбязательноПо умолчанию
--revealПоказать конфигурацию хранилища в открытом виде (только интерактивный TTY; аудируется)Нет-

9.2 browse

Обзор файлов в системе хранения

rdc storage browse <storage> [options]
ФлагОписаниеОбязательноПо умолчанию
--path <subpath>Путь к подкаталогу для просмотраНет

9.3 prune

Удалить осиротевшие резервные копии из хранилища, которых нет ни в одной конфигурации. Безопасно для нескольких конфигураций с защитой периодом отсрочки.

rdc storage prune <storage> [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Исполняющая машина: запускает вызовы rclone list/delete к хранилищу. Требуется, потому что клиенты не должны иметь rclone, установленный локально; учётные данные хранилища по-прежнему берутся из вашей локальной конфигурации.Да-
--dry-runПоказать действия без внесения измененийНет-
--forceПропустить подсказки подтвержденияНет-
--force-delete-mountedПереопределить проверку безопасности монтирования и удалить облачные резервные копии, даже если исходный GUID в данный момент смонтирован или имеет запущенный контейнер на исполняющей машине. Отличается от --force (который переопределяет только льготный период для архивных репо).Нет-
--grace-days <days>Период отсрочки в днях для недавно архивированных репозиториев (по умолчанию: 7)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-
--skip-router-restartПропустить перезапуск сервера маршрутов после обновления бинарного файлаНет-

9.4 add

Зарегистрировать конечную точку хранилища.

rdc storage add <name> [options]
ФлагОписаниеОбязательноПо умолчанию
--vault <json>Содержимое хранилища в виде строки JSONДа-

9.5 import

Импортировать хранилища из конфигурационного файла rclone

rdc storage import <file> [options]
ФлагОписаниеОбязательноПо умолчанию
--name <name>Импортировать только указанный разделНет-

9.6 remove

Удалить конечную точку хранилища из конфигурации.

rdc storage remove <name> [options]
ФлагОписаниеОбязательноПо умолчанию
-y, --yesПропустить подсказку подтвержденияНет-
--dry-runПоказать действия без внесения измененийНет-

10. Интеграция с VS Code

Открыть VS Code Remote SSH к машине или репозиторию

10.1 connect

Открыть VS Code на машине или внутри репозитория.

rdc vscode connect <target> [options]
ФлагОписаниеОбязательноПо умолчанию
-f, --folder <path>Путь удаленной папки для открытияНет-
--url-onlyВывести URI VS Code вместо запускаНет-
-n, --new-windowОткрыть в новом окне VS CodeНет-
--skip-env-setupПропустить настройку удаленной средыНет-
--insidersИспользовать параметры VS Code InsidersНет-
--browserЗапустить браузерный VS Code из песочницы репозитория (локальный VS Code не требуется)Нет-
--no-openВывести URL без запуска локального браузераНет-
--local <port>Локальный порт (по умолчанию совпадает с удалённым)Нет-
--server-provider <id>Реализация браузерного VS Code-сервера (openvscode, code-server)Нет-
--server-archive <file>Путь к заранее подготовленному архиву сервера на машине (для установок без интернета)Нет-

10.2 list

Список настроенных SSH-соединений VS Code

rdc vscode list

10.3 cleanup

Удалить конфигурации SSH VS Code

rdc vscode cleanup [options]
ФлагОписаниеОбязательноПо умолчанию
--allУдалить все конфигурации rediacc SSHНет-
-c, --connection <name>Удалить определенное соединениеНет-

10.4 check

Проверить установку и конфигурацию VS Code

rdc vscode check [options]
ФлагОписаниеОбязательноПо умолчанию
--insidersИспользовать параметры VS Code InsidersНет-

10.5 serve

Управление браузерным VS Code-сервером внутри песочницы

status

Показать, работает ли браузерный VS Code-сервер

rdc vscode serve status <target> [options]
ФлагОписаниеОбязательноПо умолчанию
--server-provider <id>Реализация браузерного VS Code-сервера (openvscode, code-server)Нет-

stop

Остановить браузерный VS Code-сервер

rdc vscode serve stop <target> [options]
ФлагОписаниеОбязательноПо умолчанию
--server-provider <id>Реализация браузерного VS Code-сервера (openvscode, code-server)Нет-

11. Доступ к SSH-терминалу

Открыть SSH-терминал к машине или репозиторию. Целью может быть имя машины или ссылка на репозиторий, при этом контекст репозитория (DOCKER_HOST, рабочий каталог, окружение) настраивается автоматически. Используйте `-c` для неинтерактивного выполнения одной команды. Для просмотра журналов контейнера или разовой команды в контейнере используйте `repo logs` и `repo exec`. Для VS Code используйте `vscode`.

11.1 connect

Открыть оболочку на машине или внутри репозитория с настроенным для него Docker.

rdc term connect <target> [options]
ФлагОписаниеОбязательноПо умолчанию
-c, --command <cmd>Выполнить команду вместо интерактивной оболочкиНет-
--externalОткрыть в отдельном окне терминалаНет-
--reset-homeСбросить оверлей домашнего каталога для нового началаНет-

12. Быстрые команды (ярлыки)

12.1 run

Запустить функцию (ярлык для: queue create)

rdc run

12.2 trace

Отслеживать задачу (сокращение для: queue trace)

rdc trace

12.3 cancel

Отменить задачу (сокращение для: queue cancel)

rdc cancel

12.4 retry

Повторить неудавшуюся задачу (сокращение для: queue retry)

rdc retry

13. Управление подписками

Управление лицензированием и токенами подписки. Войдите с помощью login, проверяйте с помощью status, переиздавайте лицензии с помощью refresh.

13.1 login

Аутентификация с помощью API-токена из веб-портала

rdc subscription login [options]
ФлагОписаниеОбязательноПо умолчанию
-t, --token <token>API-токен (rdt_...)Нет-
--server <url>URL сервера аккаунтаНет-

13.2 logout

Удалить сохранённый токен подписки

rdc subscription logout

13.3 status

Показать подписку и состояние лицензии для машины.

rdc subscription status [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя машиныНет-

13.4 refresh

Обновить лицензии с сервера аккаунта.

rdc subscription refresh [options]
ФлагОписаниеОбязательноПо умолчанию
-m, --machine <name>Имя машиныНет-
--repo <ref>Ссылка на репозиторий: имя, или имя:тег, опционально с @machine (например, shop или shop:test)Нет-

14. Обновления CLI

Проверить и применить обновления CLI

rdc update [options]
ФлагОписаниеОбязательноПо умолчанию
--forceПринудительное обновление, даже если уже актуальноНет-
--check-onlyТолько проверить обновления без загрузкиНет-
--rollbackОткатить до предыдущей версииНет-
--statusПоказать статус автообновления и диагностикуНет-
--channel <channel>Установить канал обновлений (stable или edge)Нет-

15. Сторонние благодарности

Вывести сторонние компоненты, поставляемые вместе с rdc: бинарные файлы, которые renet встраивает и передаёт (CRIU, rsync, rclone), встроенную среду выполнения Node.js и подключённые npm-зависимости. Показывает версии, идентификаторы лицензий SPDX и URL архивов исходного кода точной версии, требуемые для соответствия GPL. Используйте --licenses, чтобы вывести полный текст THIRD_PARTY_LICENSES, поставляемый со сборками релизов.

rdc credits [options]
ФлагОписаниеОбязательноПо умолчанию
--licensesВывести полный текст THIRD_PARTY_LICENSES, поставляемый со сборками релизовНет-

16. Диагностика системы

Диагностика среды CLI и интеграции renet

rdc doctor

17. Локальные операции с VM

Провизирование и управление локальными VM через KVM/QEMU/Hyper-V (платформа определяется автоматически). Не для удалённых машин — для них используйте `machine`. Основные подкоманды: up (запуск VM), down (остановка), status (список запущенных VM), ssh (подключение к VM), setup (установка предпосылок), check (проверка готовности хоста).

17.1 up

Развернуть кластер VM локально

rdc ops up [options]
ФлагОписаниеОбязательноПо умолчанию
--forceПринудительно перезапустить все VMНет-
--parallelСоздавать VM параллельноНет-
--basicМинимальный кластер (мост + 1 рабочий узел)Нет-
--liteПропустить подготовку VM (только статус)Нет-
--skip-orchestrationПропустить оркестрацию кластераНет-
--backend <backend>Бэкенд виртуализации (kvm|qemu, автоопределение)Нет-
--os <name>Операционная система VM (напр., ubuntu-24.04, debian-12)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

17.2 down

Уничтожить кластер VM

rdc ops down [options]
ФлагОписаниеОбязательноПо умолчанию
--backend <backend>Бэкенд виртуализации (kvm|qemu, автоопределение)Нет-
--debugВключить отладочный вывод (локальный режим)Нет-

17.3 status

Показать состояние кластера VM

rdc ops status [options]
ФлагОписаниеОбязательноПо умолчанию
--backend <backend>Бэкенд виртуализации (kvm|qemu, автоопределение)Нет-

17.4 ssh

Подключиться к VM по SSH

rdc ops ssh [options]
ФлагОписаниеОбязательноПо умолчанию
--vm-id <id>ID виртуальной машиныДа-
-c, --command <cmd>Выполнить команду вместо интерактивной оболочкиНет-
--backend <backend>Бэкенд виртуализации (kvm|qemu, автоопределение)Нет-
--user <user>Имя пользователя SSH для подключения к VMНет-

17.5 setup

Установить предварительные требования для виртуализации

rdc ops setup [options]
ФлагОписаниеОбязательноПо умолчанию
--debugВключить отладочный вывод (локальный режим)Нет-

17.6 check

Проверить предварительные требования для виртуализации

rdc ops check

18. Сервис исполнителя

Запустить этот процесс в роли исполнителя, чтобы клиенты могли выполнять команды через него вместо того, чтобы подключаться по SSH самостоятельно

rdc serve [options]
ФлагОписаниеОбязательноПо умолчанию
-p, --port <port>Порт для прослушиванияНет8080
--host <host>Адрес для привязкиНет0.0.0.0
--mode <mode>Размещение: daemon (хост клиента) или containerНетdaemon

Распространённые сообщения об ошибках

Когда что-то идёт не так, CLI предоставляет понятные сообщения об ошибках:

ОшибкаЗначение
Требуется аутентификация. Выполните: rdc subscription loginСначала необходимо войти в систему
Нет активной конфигурации. Создайте с помощью: rdc config init <name>Активная конфигурация отсутствует — создайте с помощью `rdc config init`
Доступ запрещенУ вашей учётной записи нет необходимых прав
Требуется имя машины. Используйте --machine <name>Укажите машину с помощью `--machine` или задайте значение по умолчанию в контексте
Требуется имя команды. Используйте --team или задайте значение по умолчанию командой: rdc config set team <name>Укажите команду с помощью `--team` или задайте значение по умолчанию в контексте
Требуется имя региона. Используйте --region или задайте значение по умолчанию командой: rdc config set region <name>Укажите регион с помощью `--region` или задайте значение по умолчанию в контексте

Форматы вывода

Все команды list/get поддерживают несколько форматов вывода через `--output`:

rdc machine list --output json
rdc machine list --output yaml
rdc machine list --output csv
rdc machine list --output table   # default

Это упрощает интеграцию CLI Rediacc в скрипты, CI/CD-конвейеры и рабочие процессы автоматизации.