Compare commits
2 Commits
36e7747573
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 73fb5a3f5f | |||
| 144a3eb82a |
@@ -0,0 +1,98 @@
|
||||
# Changelog
|
||||
|
||||
Все заметные изменения в инфраструктурном репозитории описываются в этом файле.
|
||||
|
||||
Формат ведется вручную на русском языке. В changelog попадают изменения, которые влияют на состав сервисов, версии Docker images, деплой, backup/restore, переменные окружения, секреты и эксплуатационные правила.
|
||||
|
||||
## Будущие изменения
|
||||
|
||||
Пока нет.
|
||||
|
||||
## 2026-08-23
|
||||
|
||||
### Документация
|
||||
|
||||
- Добавлен `CHANGELOG.md` с историей заметных изменений по git history с начала репозитория.
|
||||
|
||||
## 2026-08-22
|
||||
|
||||
### Изменено
|
||||
|
||||
- Зафиксирована версия Vaultwarden: `vaultwarden/server:1.37.1` вместо `vaultwarden/server:latest`.
|
||||
- Deploy workflow теперь выполняет `docker compose pull` перед `docker compose up -d --remove-orphans`.
|
||||
- В `README.md` добавлено правило фиксировать версии stateful-сервисов и обновлять их отдельным изменением после просмотра release notes и backup.
|
||||
|
||||
### Исправлено
|
||||
|
||||
- Восстановлена совместимость Vaultwarden с актуальным расширением Bitwarden для браузера. Старый backend `1.36.0` не загружал хранилище в новом расширении.
|
||||
|
||||
### Документация
|
||||
|
||||
- Добавлен `README.md` с описанием сервисов, переменных, секретов, локальных операций, данных, деплоя и правил сопровождения.
|
||||
- Добавлен `AGENTS.md` с инструкциями для AI-агентов и автоматизации в этом репозитории.
|
||||
|
||||
## 2026-07-26
|
||||
|
||||
### Добавлено
|
||||
|
||||
- Добавлены сервисы RustDesk:
|
||||
- `sup-hbbs` для ID/rendezvous server;
|
||||
- `sup-hbbr` для relay server.
|
||||
- Для Nginx Proxy Manager открыты порты RustDesk: `21116/tcp`, `21116/udp`, `21117/tcp`.
|
||||
- Добавлена переменная `RUSTDESK_DOMAIN` в `.env.example` и deploy workflow.
|
||||
|
||||
## 2026-07-06
|
||||
|
||||
### Добавлено
|
||||
|
||||
- Добавлен healthcheck для `git-runner` через endpoint `http://127.0.0.1:9101/healthz`.
|
||||
|
||||
## 2026-07-05
|
||||
|
||||
### Изменено
|
||||
|
||||
- Backup-шаг deploy workflow стал опциональным через Gitea variable `DEPLOY_BACKUP_ENABLED`.
|
||||
- Режим dry-run для деплоя вынесен в Gitea variable `DEPLOY_DRY_RUN_ENABLED`.
|
||||
|
||||
## 2026-07-04
|
||||
|
||||
### Добавлено
|
||||
|
||||
- Deploy workflow переведен на полноценный Gitea Actions процесс:
|
||||
- checkout репозитория;
|
||||
- нормализация имени ref/branch;
|
||||
- настройка SSH-клиента;
|
||||
- создание удаленного `docker-compose-<ref>.yml`;
|
||||
- создание `.env` и файлов в `secrets/`;
|
||||
- запуск Compose на сервере;
|
||||
- Telegram-уведомления и отправка deploy log.
|
||||
- Добавлен workflow для проверки Telegram deploy bot.
|
||||
- Добавлен `.env.example` с базовыми переменными окружения.
|
||||
- Добавлен backup `data/` перед деплоем с хранением архивов в `backups/`.
|
||||
|
||||
### Изменено
|
||||
|
||||
- `DEPLOY_DIRECTORY` перенесен из secrets в Gitea variables.
|
||||
- Backup выполняется через `sudo`, чтобы избежать ошибок прав доступа к runtime-данным.
|
||||
- Исправлена передача пароля в `sudo` при backup.
|
||||
- Удален временный demo workflow и неиспользуемый action для экранирования Telegram-сообщений.
|
||||
- Идеи по развитию вынесены из репозитория в wiki.
|
||||
|
||||
## 2026-06-16
|
||||
|
||||
### Добавлено
|
||||
|
||||
- Создан начальный Docker Compose стек:
|
||||
- `prx` на `jc21/nginx-proxy-manager:2.15.1`;
|
||||
- `pwd` на `vaultwarden/server:latest`;
|
||||
- `mon` на `henrygd/beszel`;
|
||||
- `mon-agent` на `henrygd/beszel-agent`;
|
||||
- `cld` на `nextcloud:30.0.6`;
|
||||
- `git` на `docker.gitea.com/gitea:1.26.2`.
|
||||
- Добавлены bind mounts в `data/` для persistent-данных сервисов.
|
||||
- Добавлены Docker secrets для Vaultwarden и Beszel.
|
||||
- Добавлена сеть Compose `vbevdev`.
|
||||
- Добавлен `.gitignore` для локальных данных, секретов, `.env`, `.vscode` и `.DS_Store`.
|
||||
- Добавлен сервис `git-runner` на `gitea/act_runner:latest`.
|
||||
- Добавлен healthcheck для `git` и зависимость `git-runner` от здорового `git`.
|
||||
- Добавлен черновой deploy workflow для Gitea Actions.
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
# Roadmap
|
||||
|
||||
Планируемые улучшения инфраструктурного репозитория. Файл фиксирует будущие работы, эксплуатационные риски и технический долг.
|
||||
|
||||
`CHANGELOG.md` описывает уже сделанные изменения, а этот файл хранит то, что еще нужно спланировать или выполнить.
|
||||
|
||||
## Высокий приоритет
|
||||
|
||||
### Обновить Nextcloud с EOL-версии
|
||||
|
||||
- Текущая версия: `nextcloud:30.0.6`.
|
||||
- Риск: ветка Nextcloud 30 достигла EOL и не получает исправления безопасности.
|
||||
- Что сделать:
|
||||
- изучить upgrade path и release notes Nextcloud;
|
||||
- сделать backup `data/nextcloud/`;
|
||||
- проверить совместимость используемых apps;
|
||||
- обновляться по поддерживаемому пути между major versions;
|
||||
- после обновления проверить web UI, `occ status`, фоновые задачи и healthcheck.
|
||||
|
||||
### Обновить Gitea из-за security advisory
|
||||
|
||||
- Текущая версия: `docker.gitea.com/gitea:1.26.2`.
|
||||
- Риск: для Gitea `<= 1.26.4` опубликован SSRF advisory, patched version указана как `1.27.0`.
|
||||
- Что сделать:
|
||||
- изучить release notes Gitea `1.27.0+`;
|
||||
- сделать backup `data/gitea/`;
|
||||
- обновить image version в `docker-compose.yml`;
|
||||
- проверить web UI, git clone/push, Actions и healthcheck.
|
||||
|
||||
### Переделать backup перед деплоем
|
||||
|
||||
- Текущее поведение: workflow архивирует весь `data/` в `backups/` на том же диске.
|
||||
- Риск: backup может падать из-за нехватки места до начала деплоя.
|
||||
- Что сделать:
|
||||
- добавить preflight-проверку свободного места;
|
||||
- чистить старые backups до создания нового архива;
|
||||
- рассмотреть backup только затронутого service data вместо всего `data/`;
|
||||
- рассмотреть off-host backup или streaming backup на другую машину;
|
||||
- документировать ручной backup/restore для отдельных сервисов.
|
||||
|
||||
## Средний приоритет
|
||||
|
||||
### Закрепить оставшиеся Docker image versions
|
||||
|
||||
- Сейчас floating images остаются у:
|
||||
- `henrygd/beszel`;
|
||||
- `henrygd/beszel-agent`;
|
||||
- `gitea/act_runner:latest`;
|
||||
- `rustdesk/rustdesk-server:latest`.
|
||||
- Риск: деплой может неожиданно подтянуть несовместимую версию или, наоборот, не обновиться предсказуемо.
|
||||
- Что сделать:
|
||||
- подобрать актуальные стабильные версии;
|
||||
- закрепить tags в `docker-compose.yml`;
|
||||
- обновить `README.md` и `CHANGELOG.md`;
|
||||
- для stateful-сервисов делать отдельные коммиты и backup перед деплоем.
|
||||
|
||||
### Пересмотреть безопасность Gitea Actions runner
|
||||
|
||||
- Текущее поведение: `git-runner` имеет доступ к `/var/run/docker.sock`.
|
||||
- Риск: доступ к Docker socket фактически дает workflow root-equivalent доступ к хосту.
|
||||
- Что сделать:
|
||||
- явно определить trust boundary для Actions;
|
||||
- ограничить запуск workflow только доверенными репозиториями/пользователями;
|
||||
- рассмотреть отдельный runner host или VM;
|
||||
- рассмотреть rootless/isolated runner setup, если это совместимо с нужными jobs.
|
||||
|
||||
### Уйти от password-based SSH deploy
|
||||
|
||||
- Текущее поведение: workflow использует `sshpass` и `sudo -S`.
|
||||
- Риск: парольный deploy хуже аудируется и более хрупкий, чем key-based доступ с ограниченными правами.
|
||||
- Что сделать:
|
||||
- завести отдельного deploy user;
|
||||
- перейти на SSH key;
|
||||
- ограничить sudoers только нужными командами;
|
||||
- убрать передачу sudo password из workflow.
|
||||
|
||||
## Низкий приоритет
|
||||
|
||||
### Добавить healthcheck для сервисов без проверки готовности
|
||||
|
||||
- Кандидаты:
|
||||
- `pwd`;
|
||||
- `sup-hbbs`;
|
||||
- `sup-hbbr`.
|
||||
- Цель: после деплоя видеть, что сервис не просто запущен, а реально отвечает.
|
||||
|
||||
### Почистить test Telegram workflow
|
||||
|
||||
- В `test_telegram_deploy_bot.yaml` есть неиспользуемая переменная `MESSAGE`, которая ссылается на несуществующий `steps.prepare_message`.
|
||||
- Риск низкий: workflow сейчас не использует эту переменную, но она путает чтение и сопровождение.
|
||||
|
||||
### Разобраться с использованием диска
|
||||
|
||||
- После неудачной попытки backup занятое место на диске выросло.
|
||||
- Первичные наблюдения:
|
||||
- `backups/` не содержит крупного архива;
|
||||
- `lsof +L1` не показал большого удаленного файла;
|
||||
- Docker images занимают заметный объем, но не должны были измениться, если workflow упал до Docker-шагов.
|
||||
- Что сделать:
|
||||
- найти крупные каталоги через `du -xhd 1`;
|
||||
- проверить `/var`, `/tmp`, Docker storage и filesystem reserve;
|
||||
- только после диагностики решать, что можно чистить.
|
||||
Reference in New Issue
Block a user