gendesign/ops/gendesign-backup-couchdb.default.example
bot-backend 7218c2094c
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 ведут алерты в тему «Metrics», мёртвый uptime-сторож удалён (#3164)
Тема форума для уведомлений бэкапов задаётся только 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>
2026-09-17 12:49:33 +05:00

60 lines
3.9 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Образец /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