Вчера таки добрался до GPT и переписывания скрипта загрузки правил на python, теперь это выглядит так
$ ./deploy-consul.py
📤 Загружаем конфигурацию из '.' в Consul 'http://10.110.0.121:8500'
➕ Добавлен ключ: traefik/http/services/palmr-service/loadBalancer/servers/0/url → http://palmr.lan:80
➕ Добавлен ключ: traefik/http/routers/palmr-router/rule → Host(`share.domain.com`)
➕ Добавлен ключ: traefik/http/routers/palmr-router/entryPoints/0 → websecure
➕ Добавлен ключ: traefik/http/routers/palmr-router/service → palmr-service
✅ Конфигурация успешно синхронизирована.
➕ Добавлено ключей: 4
♻️ Обновлено ключей: 0
🗑️ Удалено ключей: 0
⏭️ Пропущено ключей: 480
Скрипт запусается или руками для тестирвания (что не очень правильно) или в плайплайне CI/CD
Добавление нового сервиса у меня происходит так

- Прописал домен
- На основе домена сгенерировалось имя роута и сервиса
- На основе домена подставилось локальное имя lxc контейнера, я пользую
servicename.domain.comобрабатывается контейнеромservicenameс локальным DNS именемservicename.lan - А вот порт 80 не стал использовать по-умолчанию, а задал свой 8080
- Далее добавил мидллварку, в данном случае это разрешение доступа только из локальных сетей (локалка и VPN)
- После показывает все параметры и если согласен с ними, то жмешь enter
- Далее предлагает добавить закоммитить сгенерированные файлы в git репозиторий
- Далее предлагает добавить еще один домен, но тут действие по-умолчанию уже выход
git log имеет следующий коммит
commit aaf096e2dbf061ff427f91b3127f711549ba2607 (HEAD -> main)
Author: Roman Kudlay <roman@kudlay.pro>
Date: Thu Oct 2 15:17:42 2025 +0300
Added new domain http://test.demo.com with downstream http://test.lan:8080
Далее, git push отправляет правки в обработку в forgejo (как это выглядит показано выше)