mirror of
https://gitverse.ru/kpa39l/xmpp-server-prosody.git
synced 2026-09-29 09:45:02 +00:00
Initial commit: Hermes skill xmpp-server-prosody
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# Backup do Яндекс.Диска (ICQ project + reusable pattern)
|
||||
|
||||
Установлено 2026-08-29. Компактный self-hosted проект бэкапится одним tar по образцу соседних проектов (netbox, gitea) на той же машине.
|
||||
|
||||
## Файлы и cron
|
||||
- Скрипт: `/opt/icq/backup.sh` (chmod 755, закоммичен в git проекта).
|
||||
- Cron (root crontab, добавлен рядом с соседями, чтобы не конфликтовать по ЯД/нагрузке):
|
||||
- `0 2 * * *` netbox
|
||||
- `30 2 * * *` gitea
|
||||
- `45 2 * * * /opt/icq/backup.sh >> /var/log/icq-backup.log 2>&1`
|
||||
- Лог: `/var/log/icq-backup.log` (появляется при первом срабатывании cron).
|
||||
|
||||
## Что бэкапится (INCLUDE в скрипте)
|
||||
`data config certs modules webchat docker-compose.yml .env README.md STATUS.md PRD.md MIGRATION.md WALKTHROUGH.md`
|
||||
- `data/` — самое ценное: аккаунты (`accounts/admin.dat`), PEP/OMEMO-бандлы (`pep_*`, `pep_*omemo*devicelist`), MUC, `http_upload`. Хранится URL-encoded: `data/nixg%2eru/...`.
|
||||
- tar по живому `data/` безопасен — Prosody хранит всё файлами, останавливать контейнер не нужно.
|
||||
- Сертификаты (`certs/`) кладутся в архив, но в git НЕ идут (`.gitignore: certs/, data/, backups/, *.crt, *.key`).
|
||||
|
||||
## Логика скрипта (по образцу /opt/netbox/backup.sh)
|
||||
1. `mkdir -p BACKUP_DIR` (`/opt/icq/backups`).
|
||||
2. `mountpoint -q /mnt/yandex-disk` — если не примонтирован → `exit 1` (ЯД монтируется @reboot через davfs).
|
||||
3. `mkdir -p /mnt/yandex-disk/backup/icq-backups`.
|
||||
4. `tar czf icq_$(date +%Y%m%d_%H%M%S).tar.gz -C /opt/icq $INCLUDE`.
|
||||
5. `cp` архива на ЯД.
|
||||
6. Ротация: локально 7 дней (`find ... -mtime +7 -delete`), на ЯД 30 дней (`-mtime +30`).
|
||||
|
||||
## Проверка
|
||||
- Размер рабочего бэкапа ~5.5MB (вся data крошечная, ~200K; основной вес — webchat/dist 26MB до gitignore).
|
||||
- Состав проверить: `tar tzf backups/icq_*.tar.gz | grep -E 'data/nixg%2eru/(accounts|pep)'`.
|
||||
- curl/TXT не нужен; сразу после создания бэкапа файл лежит и локально, и в `/mnt/yandex-disk/backup/icq-backups/`.
|
||||
|
||||
## Git-дисциплина проекта
|
||||
- Remote: `git@gitverse.ru:kpa39l/icq.git` (master).
|
||||
- Итог каждой сессии коммитить + пушить сразу (`git push origin master`). Секреты не коммитить: `.env` отсутствует в репо (пароль в защищённом хранилище) — это правильно.
|
||||
- Тестовые/временные артефакты (например, `backups/icq_test_*.tar.gz`) удалять после проверки — они не должны оставаться.
|
||||
Reference in New Issue
Block a user