Настройка машины
На этой странице описывается процесс настройки первой машины: создание контекста, регистрация сервера, его подготовка и опциональная настройка инфраструктуры для публичного доступа.
Шаг 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
Эта команда:
- Загружает бинарный файл renet на сервер через SFTP
- Устанавливает Docker, containerd и cryptsetup (если отсутствуют)
- Создает системного пользователя
rediacc(UID 7111) - Создает директорию хранилища данных и подготавливает её для зашифрованных репозиториев
| Опция | Обязательно | По умолчанию | Описание |
|---|---|---|---|
--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