# Конфиг вручную (YAML)

> Справочник конфигурации для автоматизации — Ansible, CI, образы.

Для автоматизированных установок конфиг можно задать напрямую. Это опциональный
путь — большинству удобнее [веб-интерфейс](/docs/connector/web-setup) или
[терминал](/docs/connector/cli-setup).

## Пример

```yaml
# middleware_url можно не указывать — адрес relay уже вшит в агент.
# Задавайте его только для собственной (self-hosted) инсталляции.
state_dir: /var/lib/connector
providers:
  - kind: gitlab
    base_url: https://gitlab.corp.local
    token_env: GITLAB_TOKEN        # токен берётся из переменной окружения
    repos:
      - group/app
      - group/lib
  - kind: bitbucket-server
    base_url: https://bitbucket.corp.local
    token_file: /run/secrets/bb.token   # …или из файла
    repos:
      - PROJ/service
```

## Поля

| Поле | Описание |
|------|----------|
| `middleware_url` | **Опционально.** Адрес relay Buff — вшит в агент по умолчанию; задавайте только для self-hosted (`nats://…`, `ws://…` или `wss://…`). |
| `state_dir` | Каталог для ключа агента и токенов сессии. Должен переживать перезапуски. |
| `providers[].kind` | `github`, `ghe`, `gitlab`, `gitea`, `bitbucket`, `bitbucket-server`. |
| `providers[].base_url` | Адрес вашего git-сервера (или облачного провайдера). |
| `providers[].repos` | Список репозиториев (`owner/name`, у Bitbucket Server — `PROJECT/slug`). |
| `providers[].token_env` / `token_file` | Откуда взять токен: переменная окружения **или** файл. Ровно одно из двух. |

**Токен в самом YAML не хранится** — только ссылка на переменную окружения или файл.
Так секрет не попадает в конфиг и в систему контроля версий.

## Плюс plug-and-play

Агент следит за файлом конфига: отредактировали `repos` или сменили токен — изменения
применяются **на лету, без перезапуска**.

## Привязка

```bash
connector pair --config /etc/connector/connector.yaml --code bufc_…
connector run  --config /etc/connector/connector.yaml
```

