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

Настройка машины

Создание контекста, добавление машин, подготовка серверов и настройка инфраструктуры.

Настройка машины

На этой странице описывается процесс настройки первой машины: создание контекста, регистрация сервера, его подготовка и опциональная настройка инфраструктуры для публичного доступа.

Шаг 1: Создание локального контекста

Контекст — это именованная конфигурация, хранящая ваши SSH-учетные данные, определения машин и привязки репозиториев. Воспринимайте его как рабочее пространство проекта.

rdc context create-local my-infra --ssh-key ~/.ssh/id_ed25519
ОпцияОбязательноОписание
--ssh-key <path>ДаПуть к вашему приватному SSH-ключу. Тильда (~) раскрывается автоматически.
--renet-path <path>НетПользовательский путь к бинарному файлу renet на удаленных машинах. По умолчанию используется стандартное расположение установки.

Эта команда создает локальный контекст с именем my-infra и сохраняет его в ~/.rediacc/config.json.

Вы можете иметь несколько контекстов (например, production, staging, dev). Переключайтесь между ними с помощью флага --context в любой команде.

Шаг 2: Добавление машины

Зарегистрируйте ваш удаленный сервер как машину в контексте:

rdc context add-machine server-1 --ip 203.0.113.50 --user deploy
ОпцияОбязательноПо умолчаниюОписание
--ip <address>Да-IP-адрес или имя хоста удаленного сервера
--user <username>Да-Имя пользователя SSH на удаленном сервере
--port <port>Нет22Порт SSH
--datastore <path>Нет/mnt/rediaccПуть на сервере, где Rediacc хранит зашифрованные репозитории

После добавления машины rdc автоматически выполняет ssh-keyscan для получения ключей хоста сервера. Вы также можете выполнить это вручную:

rdc context scan-keys server-1

Для просмотра всех зарегистрированных машин:

rdc context machines

Шаг 3: Настройка машины

Подготовьте удаленный сервер, установив все необходимые зависимости:

rdc context setup-machine server-1

Эта команда:

  1. Загружает бинарный файл renet на сервер через SFTP
  2. Устанавливает Docker, containerd и cryptsetup (если отсутствуют)
  3. Создает системного пользователя rediacc (UID 7111)
  4. Создает директорию хранилища данных и подготавливает её для зашифрованных репозиториев
ОпцияОбязательноПо умолчаниюОписание
--datastore <path>Нет/mnt/rediaccДиректория хранилища данных на сервере
--datastore-size <size>Нет95%Какую долю доступного диска выделить для хранилища данных
--debugНетfalseВключить подробный вывод для диагностики

Настройку нужно выполнить только один раз для каждой машины. Повторный запуск безопасен при необходимости.

Управление ключами хоста

Если SSH-ключи хоста сервера изменились (например, после переустановки), обновите сохраненные ключи:

rdc context scan-keys server-1

Эта команда обновляет поле knownHosts в вашей конфигурации для данной машины.

Проверка SSH-подключения

Убедитесь, что машина доступна, прежде чем продолжить:

rdc machine test-connection --ip 203.0.113.50 --user deploy

Команда проверяет SSH-подключение и сообщает:

  • Статус подключения
  • Использованный метод аутентификации
  • Конфигурацию SSH-ключа
  • Запись known hosts

Вы можете сохранить проверенный ключ хоста в конфигурацию машины с помощью --save -m server-1.

Настройка инфраструктуры

Для машин, которым необходимо обслуживать публичный трафик, настройте параметры инфраструктуры:

Установка инфраструктуры

rdc context set-infra server-1 \
  --public-ipv4 203.0.113.50 \
  --base-domain example.com \
  --cert-email admin@example.com \
  --cf-dns-token your-cloudflare-api-token
ОпцияОписание
--public-ipv4 <ip>Публичный IPv4-адрес для внешнего доступа
--public-ipv6 <ip>Публичный IPv6-адрес для внешнего доступа
--base-domain <domain>Базовый домен для приложений (например, example.com)
--cert-email <email>Email для TLS-сертификатов Let’s Encrypt
--cf-dns-token <token>API-токен Cloudflare DNS для ACME DNS-01 проверок
--tcp-ports <ports>Дополнительные TCP-порты для проброса через запятую (например, 25,143,465,587,993)
--udp-ports <ports>Дополнительные UDP-порты для проброса через запятую (например, 53)

Просмотр инфраструктуры

rdc context show-infra server-1

Применение на сервере

Сгенерируйте и разверните конфигурацию обратного прокси Traefik на сервере:

rdc context push-infra server-1

Эта команда применяет конфигурацию прокси на основе ваших настроек инфраструктуры. Traefik обрабатывает TLS-терминацию, маршрутизацию и проброс портов.

Установка значений по умолчанию

Установите значения по умолчанию, чтобы не указывать их в каждой команде:

rdc context set machine server-1    # Машина по умолчанию
rdc context set team my-team        # Команда по умолчанию (облачный режим, экспериментальный)

После установки машины по умолчанию можно опускать -m server-1 в командах:

rdc repo create my-app --size 10G   # Используется машина по умолчанию

Несколько контекстов

Управляйте несколькими средами с помощью именованных контекстов:

# Создание отдельных контекстов
rdc context create-local production --ssh-key ~/.ssh/id_prod
rdc context create-local staging --ssh-key ~/.ssh/id_staging

# Использование определенного контекста
rdc repo list -m server-1 --context production
rdc repo list -m staging-1 --context staging

Просмотр всех контекстов:

rdc context list

Просмотр деталей текущего контекста:

rdc context show