6dd6b586b5
- servers/inventory.yml — реестр узлов (имена, IP, роли, сервисы). - domains.yml — реестр DNS-записей для mxti.ru (reg.ru). - docker/ → servers/ru-docker-infra/ — конфиги основного сервера. - CLAUDE.md переписан: структура репо, чек-листы по изменениям, конвенции (роли вместо IP, секреты тоже в репо). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
57 lines
2.1 KiB
YAML
57 lines
2.1 KiB
YAML
# 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: 111.88.253.112
|
||
role: core # основной узел: все ключевые сервисы
|
||
env: prod
|
||
location: yandex-cloud
|
||
tags: [traefik, n8n, gitea, postgres, redis, portainer, xray, mtg]
|
||
services:
|
||
- traefik
|
||
- postgres
|
||
- redis
|
||
- n8n
|
||
- tunnel # autossh-туннель на nl-reverse-proxy
|
||
- xray # исходящий прокси для n8n
|
||
- gitea
|
||
- portainer
|
||
- mtg # Telegram MTProto-прокси
|
||
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
|