# Как настроить машину с Rediacc

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

## Предварительные требования

- Установленный CLI `rdc`
- Удалённый сервер (или локальная ВМ), доступный по SSH
- Приватный SSH-ключ для аутентификации на сервере

## Интерактивная запись

![Руководство: Настройка и конфигурация машины](/assets/tutorials/setup-tutorial.cast)

### Шаг 1: Создание новой конфигурации

Профиль конфигурации хранит определения машин, учётные данные SSH и настройки инфраструктуры. Создайте один для этого окружения.

```bash
rdc config init --name tutorial-demo --ssh-key ~/.ssh/id_ed25519
```

Это создаёт именованный файл конфигурации в `~/.config/rediacc/tutorial-demo.json`.

### Шаг 2: Просмотр конфигураций

Убедитесь, что новый профиль отображается в списке конфигураций.

```bash
rdc config list
```

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

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

Зарегистрируйте машину с её IP-адресом и пользователем SSH. CLI автоматически получает и сохраняет ключи хоста сервера через `ssh-keyscan`.

```bash
rdc config machine add --name bridge-vm --ip 192.168.111.1 --user muhammed --config tutorial-demo
```

### Шаг 4: Просмотр машин

Убедитесь, что машина зарегистрирована правильно.

```bash
rdc config machine list --config tutorial-demo
```

Показывает все машины в текущей конфигурации с деталями подключения.

### Шаг 5: Установка машины по умолчанию

Установка машины по умолчанию избавляет от необходимости повторять `-m bridge-vm` в каждой команде.

```bash
rdc config set --key machine --value bridge-vm --config tutorial-demo
```

### Шаг 6: Проверка подключения

Перед развёртыванием чего-либо убедитесь, что машина доступна по SSH.

```bash
rdc term connect -m bridge-vm -c "hostname"
rdc term connect -m bridge-vm -c "uptime"
```

Обе команды выполняются на удалённой машине и возвращают результат немедленно. Если какая-либо из них не выполняется, проверьте правильность SSH-ключа и доступность сервера.

### Шаг 7: Выполнение диагностики

```bash
rdc doctor
```

Проверяет ваше локальное окружение: версию CLI, Docker, бинарный файл renet, состояние конфигурации, SSH-ключ и предварительные требования виртуализации. Каждая проверка сообщает **OK**, **Warning** или **Error**.

### Шаг 8: Настройка инфраструктуры

Для публичных сервисов машине нужна сетевая конфигурация, внешний IP, базовый домен и email сертификата для TLS.

```bash
rdc config infra set -m bridge-vm \
  --public-ipv4 192.168.111.1 \
  --base-domain test.local \
  --cert-email admin@test.local
```

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

```bash
rdc config infra show -m bridge-vm
```

Разверните сгенерированную конфигурацию прокси Traefik на сервере с помощью `rdc config infra push bridge-vm`.

## Устранение неполадок

**"SSH key not found" или "Permission denied (publickey)"**
Убедитесь, что путь к ключу, переданный в `config init`, существует и совпадает с `authorized_keys` сервера. Проверьте разрешения: файл приватного ключа должен иметь права `600` (`chmod 600 ~/.ssh/id_ed25519`).

**"Connection refused" при SSH-командах**
Убедитесь, что сервер работает и IP-адрес правильный. Проверьте, что порт 22 открыт: `nc -zv <ip> 22`. При использовании нестандартного порта передайте `--port` при добавлении машины.

**"Host key verification failed"**
Сохранённый ключ хоста не совпадает с текущим ключом сервера. Это происходит после пересборки сервера или переназначения IP. Запустите `rdc config machine scan-keys <machine>` для обновления ключа.

## Следующие шаги

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

- [Настройка машины](/ru/docs/setup), полный справочник по всем командам конфигурации и настройки
- [Руководство: Жизненный цикл репозитория](/ru/docs/tutorial-repos), создание, развёртывание и управление репозиториями
- [Быстрый старт](/ru/docs/quick-start), развёртывание контейнеризированного приложения от начала до конца