Commit Graph
9 Commits
Author SHA1 Message Date
mrleo1nidandClaude Opus 5.5 488abc2d34 Агенты подхватывают изменения с сервера: каталог и самообновление
CI / test (push) Successful in 1m29s
- сервер отдаёт агенту итоговый каталог (встроенный каталог сервера +
  переопределения клиента); если каталог не подходит версии агента —
  встроенный каталог агента и предупреждение
- самообновление перед бэкапом: версия сервера новее → скачивание с того же
  сервера (только /dl/...), проверка sha256 и запуска новой версии, подмена
  с откатом, перезапуск через exec; при ошибке бэкап идёт текущей версией
- галочка «Автообновление» у клиента (по умолчанию включена), версия агента
  в списке и карточке, отставшие подсвечены; версия сервера в шапке
- миграция существующей базы: колонки auto_update и agent_version
- backupctl backup --no-update

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 15:27:31 +03:00
mrleo1nidandClaude Opus 5.5 1947b26913 Полнота бэкапа: SSH, весь UFW, свои юниты, конфиги пакетов, системные параметры
Release / release (push) Successful in 1m26s
CI / test (push) Successful in 1m27s
Агент:
- ssh: sshd_config(.d), ключи хоста, authorized_keys root и пользователей
- system: весь /etc/ufw и /etc/default/ufw, /etc/sysctl.conf, /etc/hosts,
  свои файлы в /etc/cron.d (пакетные отсекаются через dpkg -S)
- certs: /etc/letsencrypt, /root/.acme.sh; xui: сертификаты по путям из базы
- docker: daemon.json и логины в registry; telegraf: /etc/default/telegraf
- caddy: бинарник бэкапится, если Caddy собран с плагинами
- units: свои systemd-юниты с состоянием enabled/active и drop-in *.service.d
- etc: изменённые конфиги любых пакетов (dpkg conffiles) и свои файлы в /etc,
  кроме привязанного к железу и облаку
- в манифесте: часовой пояс, swap, вручную поставленные пакеты; версия
  apt-пакета в строке категории
- предупреждения: программы юнитов вне бэкапа, каталоги /opt и /usr/local/bin
  без категории, контейнеры без compose

Restore:
- часовой пояс, swap-файл, доустановка вручную поставленных пакетов
- свои юниты включаются и запускаются как на старом сервере

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 15:19:34 +03:00
mrleo1nidandClaude Opus 5.5 cbd3cde01d Бэкап fail2ban и своих geo-файлов 3x-ui
CI / test (push) Successful in 1m48s
- новая категория fail2ban: jail.local, jail.d (в т.ч. 3x-ipl.local),
  IP-лимит 3x-ui (filter.d/action.d/3x-ipl.conf), свои *.local;
  при восстановлении создаются логи 3xipl*.log, без которых jail не поднимается
- xui: свои *.dat из /usr/local/x-ui/bin (ipcheck, discord-*) — на них ссылается
  роутинг; штатные geo-файлы релиза не бэкапятся
- recipe 3x-ui больше не очищает /usr/local/x-ui и не стирает восстановленные файлы
- маски (*, ?) в paths и keep_binaries каталога
- provision ставит nftables вместе с fail2ban
- .gitattributes: LF во всех файлах

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 14:24:21 +03:00
mrleo1nidandClaude Opus 5.5 c6942605c1 Обновление бинарника через .new + mv: запущенный файл нельзя перезаписать
CI / test (push) Successful in 1m18s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 22:34:59 +03:00
mrleo1nidandClaude Opus 5.5 897ad48a2d Уведомления в Telegram
CI / test (push) Successful in 2m45s
Release / release (push) Successful in 1m17s
- второй канал рядом с ntfy, оба необязательные: токен бота, несколько chat id,
  тема форума, свой адрес Bot API
- успешные бэкапы приходят без звука, в сообщениях ссылка на карточку клиента
- тестовая отправка синхронная: в настройках виден результат по каждому каналу
- токен бота не попадает в тексты ошибок и логи

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 22:29:26 +03:00
mrleo1nidandClaude Opus 5.5 a488d2ea08 README: схема с Caddy на другом хосте и смена логина админа
CI / test (push) Successful in 1m18s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 22:18:01 +03:00
mrleo1nidandClaude Opus 5.5 fa1817e614 README: установка сервера из последнего релиза
CI / test (push) Successful in 1m17s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 22:04:45 +03:00
mrleo1nidandClaude Opus 5.5 89333dd4d8 CI: сборка и релизы через Gitea Actions
CI / test (push) Successful in 1m53s
Release / release (push) Successful in 1m18s
- ci.yml: gofmt, go vet, тесты, сборка backupctl linux/amd64+arm64 на push и PR
- release.yml: на тег v* — сборка, checksums.txt и публикация релиза через API Gitea

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 21:59:00 +03:00
mrleo1nidandClaude Opus 5.5 1d44d067e9 backup-master: сервер бэкапов, агент и восстановление VPS
Один бинарник backupctl:
- server: API для агентов и restore, веб-морда (один админ), SQLite,
  ретеншн GFS, heavy-части, уведомления ntfy, раздача agent.sh/restore.sh;
- backup/plan: сбор по каталогу категорий (files/systemd/xui/compose),
  горячие дампы Postgres/Mongo/MySQL, снимок x-ui.db, docker-тома,
  digest образов, проверка crontab, потоковая отправка tar.zst;
- restore: провижининг на основе vps_installer с теми же версиями пакетов,
  recipes 3x-ui/nebula/sing-box нужных версий, восстановление compose
  с заливкой дампов и закреплением образов по digest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 21:52:40 +03:00