All checks were successful
CI Trade-In / changes (pull_request) Successful in 24s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 29s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 3m15s
CI / backend-tests (pull_request) Successful in 7m37s
Тема форума для уведомлений бэкапов задаётся только env-файлом на хосте, а в образцах её не было вовсе. На проде она задана, но не та: 158 («алерты») в /opt/gendesign/secrets/backup-notify.env и forgejo-backup.env на Beget и в /etc/default/gendesign-backup на Poincare. По решению #3163 инфраструктура идёт в 245 «Metrics». Значение на хостах этот коммит не меняет. - ops/gendesign-backup*.default.example: строка #TELEGRAM_TOPIC_ID=245 с причиной и ловушкой: тема обязана лежать в одном файле с токеном и чатом, иначе notify() её не прочитает. - ops/crontab-beget.cron сверен с живым crontab Beget: сторожа и бэкап волта получают BACKUP_ENV_FILE=/opt/gendesign/secrets/backup-notify.env. Без него переустановка crontab из репозитория глушила бы алерты бэкапов на Beget. - ops/uptime-healthcheck.sh и его образец удалены: скрипт не запущен ни на одном хосте (crontab, cron.d, таймеры), доступность сторожат uptime-мониторы GlitchTip на Beget (gendsgn.ru, /health, meraocenka.ru — раз в 60 с). Тест исполняет настоящий check-backup-staleness.sh с образцом, заполненным по инструкции, и проверяет адрес в вызове curl: message_thread_id=245. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
60 lines
3.9 KiB
Text
60 lines
3.9 KiB
Text
# Образец /etc/default/gendesign-backup-couchdb
|
||
#
|
||
# Читается ops/backup-couchdb.sh. Файл содержит ключ S3 — держать 0600 и
|
||
# владельцем того пользователя, под которым стоит крон-задача.
|
||
#
|
||
# Установка:
|
||
# sudo install -m 0600 -o gendesign -g gendesign \
|
||
# ops/gendesign-backup-couchdb.default.example /etc/default/gendesign-backup-couchdb
|
||
# sudo -e /etc/default/gendesign-backup-couchdb # подставить реальные ключи
|
||
#
|
||
# ЭТОТ ФАЙЛ НЕОБЯЗАТЕЛЕН. Если COUCHDB_S3_ENDPOINT и COUCHDB_S3_ACCESS_KEY не
|
||
# заданы, скрипт берёт S3_* из /etc/default/gendesign-backup — того же ключа,
|
||
# которым уже выгружается основной бэкап, но под своим префиксом couchdb/.
|
||
# Заводить файл стоит, когда для волта появится ОТДЕЛЬНЫЙ узкий ключ (как у
|
||
# forgejo): своя область доступа лучше общей, просто не ценой отсутствия
|
||
# бэкапа вовсе.
|
||
#
|
||
# Если не настроено ни здесь, ни там — скрипт откажется работать и НЕ станет
|
||
# останавливать CouchDB: бэкап без выгрузки за пределы машины смысла не имеет.
|
||
|
||
# --- S3 (либо здесь, либо фолбэк на /etc/default/gendesign-backup) ----------
|
||
COUCHDB_S3_ENDPOINT=https://s3.ru-1.storage.selcloud.ru
|
||
COUCHDB_S3_BUCKET=gendsgn-backups
|
||
COUCHDB_S3_PREFIX=couchdb/
|
||
COUCHDB_S3_ACCESS_KEY=
|
||
COUCHDB_S3_SECRET_KEY=
|
||
|
||
# --- что копируем (значения по умолчанию совпадают с боевыми) ---------------
|
||
# Имена берутся из docker-compose.obsidian.yml, проект gendesign-obsidian.
|
||
#COUCHDB_CONTAINER=gendesign-couchdb
|
||
#COUCHDB_DATA_VOLUME=gendesign-obsidian_couchdb_data
|
||
#COUCHDB_CONFIG_VOLUME=gendesign-obsidian_couchdb_config
|
||
|
||
# --- локальное хранение -----------------------------------------------------
|
||
#LOCAL_BACKUP_DIR=/opt/gendesign/backups/couchdb
|
||
#KEEP=7
|
||
|
||
# --- пороги целостности -----------------------------------------------------
|
||
# Про объём, а не про наличие файла: пустой архив весит около сотни байт и без
|
||
# порога неотличим от настоящего бэкапа. Поднимать, если волт заметно вырос.
|
||
#MIN_DATA_BYTES=1048576
|
||
#MIN_CONFIG_BYTES=256
|
||
|
||
# Сколько секунд ждать ответа /_up после подъёма контейнера.
|
||
#START_TIMEOUT=60
|
||
|
||
# --- оповещения -------------------------------------------------------------
|
||
# Дублировать сюда ничего не надо: notify() из ops/lib-backup.sh, не найдя
|
||
# TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_ID в окружении, сам читает
|
||
# /etc/default/gendesign-backup. То есть канал общий с остальными бэкапами.
|
||
# Переопределяй только если этому бэкапу нужен ОТДЕЛЬНЫЙ адресат:
|
||
#TELEGRAM_BOT_TOKEN=
|
||
#TELEGRAM_CHAT_ID=
|
||
# Тема форума (#3164). Бэкапы — инфраструктура, по решению #3163 они идут в
|
||
# «Metrics» (245); «алерты» (158) — только для клиентских инцидентов. Без
|
||
# переменной сообщение уходит в общую тему. Держать В ТОМ ЖЕ файле, что токен и
|
||
# чат: notify() читает env-файл, только если их нет в окружении.
|
||
#TELEGRAM_TOPIC_ID=245
|
||
# Либо укажи другой файл, откуда notify() возьмёт настройки канала:
|
||
#BACKUP_ENV_FILE=/etc/default/gendesign-backup
|