# inventory.yml — источник правды о парке серверов.
# Добавить сервер = добавить запись сюда + папку servers/<name>/ с docker-compose.yml.

defaults:                      # общие настройки, чтобы не повторять в каждом сервере
  ssh_user: agent              # отдельный non-root пользователь для бота
  branch: main                 # ветка, которую тянут серверы
  compose_path: servers/{name}/docker-compose.yml   # {name} подставляется из поля name

servers:
  - name: ru-docker-infra       # основной сервер в Яндекс.Облаке
    host: 93.77.188.75
    role: core                  # основной узел: все ключевые сервисы
    env: prod
    location: yandex-cloud
    tags: [traefik, n8n, gitea, postgres, redis, portainer, xray, grabcevo]
    services:
      - traefik
      - postgres
      - redis
      - n8n
      - tunnel                  # autossh-туннель на nl-reverse-proxy
      - xray                    # исходящий прокси для n8n
      - gitea
      - portainer
      - grabcevo                # статический лендинг «База Грабцево» (nginx, база-грабцево.рф)
    managed: true

  - name: ru-vpn                # входная нода VPN
    host: 62.84.114.137
    role: vpn-entry
    env: prod
    location: yandex-cloud
    tags: [3x-ui, vpn]
    services:
      - 3x-ui
    managed: true

  - name: nl-reverse-proxy      # реверс-прокси для n8n (принимает SSH-туннель)
    host: 94.247.214.20
    role: reverse-proxy
    env: prod
    location: netherlands
    tags: [n8n, ssh-tunnel]
    services:
      - nginx                   # tbd: уточнить, чем именно проксируется
    managed: true

  - name: nl-vpn                # выходная нода VPN
    host: 94.247.214.112
    role: vpn-exit
    env: prod
    location: netherlands
    tags: [3x-ui, vpn]
    services:
      - 3x-ui
    managed: true
