- новая категория 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>
Один бинарник 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>