fedoraBee/flatpak-automatic

GitHub: fedoraBee/flatpak-automatic

一个基于 systemd 的 Flatpak 自动更新工具,通过 Snapper 快照实现原子化回滚,并支持邮件及多平台推送通知,适用于 Fedora/RHEL 和 Ubuntu/Debian 发行版。

Stars: 1 | Forks: 0

Flatpak Automatic CLI

Banner
# [![Pipeline](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1bed4325e0035408.svg)](https://github.com/fedoraBee/flatpak-automatic/actions/workflows/pipeline.yml) **Flatpak Automatic** 提供了一个安全、可配置且 systemd 原生的 自动化封装脚本,用于 Flatpak 更新。 它集成了 Snapper 以提供类似原子的更新前/后快照,并 使用 systemd 计时器在 Fedora 及其他 Fedora/RHEL 发行版上实现可靠的定时执行。 ## ✨ 功能 - **自动更新** – 保持您的 Flatpak 应用程序为最新版本 - **类似原子的回滚** – 集成 Snapper/Btrfs 以实现更新前/后快照 - **智能执行** – 预演检查可防止不必要的快照和日志 - **通知** – 通过本地邮件(`s-nail`/`mailx`)发送更新报告 - **Systemd 集成** – 通过标准的 oneshot 服务和计时器进行管理 - **可配置** – 可通过 `/etc/flatpak-automatic/config.yaml` 轻松调整邮件、快照和调度行为 ## 🚀 快速入门指南 Flatpak Automatic 通过 GitHub Pages 上托管的专用仓库分发,同时支持 RPM (Fedora/RHEL) 和 DEB (Ubuntu/Debian) 发行版: 👉 ### 1. 添加仓库 **Fedora/RHEL:** ``` sudo tee /etc/yum.repos.d/flatpak-automatic.repo <<'EOF' [flatpak-automatic] name=Flatpak Automatic - Stable baseurl=https://fedorabee.github.io/flatpak-automatic/rpms/latest/stable/ enabled=1 gpgcheck=1 gpgkey=https://fedorabee.github.io/flatpak-automatic/gpg.key EOF ``` **Ubuntu/Debian:** ``` KEY="https://fedorabee.github.io/flatpak-automatic/gpg.key" REPO="https://fedorabee.github.io/flatpak-automatic/debs" RING="/usr/share/keyrings/flatpak-automatic-archive-keyring.gpg" curl -fsSL $KEY | sudo gpg --dearmor -o $RING echo "deb [signed-by=$RING] $REPO stable main" | \ sudo tee /etc/apt/sources.list.d/flatpak-automatic.list ``` ### 2. 更新缓存并安装 **Fedora/RHEL:** ``` sudo dnf makecache && sudo dnf install -y flatpak-automatic ``` **Ubuntu/Debian:** ``` sudo apt update && sudo apt install -y flatpak-automatic ``` ### 3. 启用计时器 ``` sudo systemctl enable --now flatpak-automatic.timer ``` ## 🔐 GPG 密钥 GPG 密钥可从以下地址获取: 。 指纹: ``` 8D12 D614 9E1E 5E83 29DD E6FD 9B99 A03F 6577 BF59 ``` ## ⚙️ 配置 主配置文件位于: ``` /etc/flatpak-automatic/config.yaml ``` 主要选项包括: - `ENABLE_EMAIL`:设置为 `yes` 以启用邮件通知。 - `EMAIL_TO`:更新报告的收件人。 - `FLATPAK_APPRISE_URLS`:逗号分隔的 Apprise URL,用于 Slack、Discord、 Gotify、Matrix 等。 - `ENABLE_SNAPSHOTS`:启用 Snapper 集成。 - `SNAPPER_CONFIG`:要使用的 Snapper 配置(默认:`root`)。 ## 💾 手动执行与 CLI 要手动触发更新或使用高级 CLI: ``` # 标准手动运行 sudo flatpak-automatic # 模拟更新 (Dry-run) 而不生成快照或进行更改 sudo flatpak-automatic --dry-run # 显示系统健康状况、配置和监控概览 sudo flatpak-automatic --status # 查看近期执行历史 sudo flatpak-automatic --history # 将定时计划配置应用到 systemd sudo flatpak-automatic --apply-schedule # 测试通知端点 (Email, Apprise, Desktop UI) sudo flatpak-automatic --test-notify # 强制更新 (忽略 FLATPAK_AUTO_UPDATE 保护机制) sudo flatpak-automatic --force # 查看所有命令 flatpak-automatic --help ``` 要监控自动化服务的日志: ``` sudo journalctl -u flatpak-automatic.service -f ``` ## 📁 仓库内容 软件包仓库包含: - RPM 包:`flatpak-automatic`(位于 `/rpms` 中) - Debian 包:`flatpak-automatic`(位于 `/debs` 中) - 仓库元数据 - GPG 签名密钥(`gpg.key`) ## 故障排除与运行手册 如果您在使用 `flatpak-automatic` 时遇到问题,请按照以下步骤进行诊断 和解决: ### 1. 查看日志 由于该脚本原生集成了 systemd,因此检查故障或警告的最佳位置是系统日志: ``` journalctl -u flatpak-automatic.service -e ``` ### 2. Snapper 配置错误 如果健康检查报告 `FAIL: snapper config 'root' is invalid or missing`, 您需要为您的根文件系统初始化一个 Snapper 配置: ``` sudo snapper -c root create-config / ``` ### 3. Email/Mailx 身份验证失败 如果您设置了 `ENABLE_EMAIL=yes` 但未收到通知,请检查您的 `s-nail` 配置。邮件客户端依赖于 `/etc/mail.rc`。请确保您的 SMTP 服务器、端口和身份验证凭据已正确设置。 ## ⚠️ 免责声明 这是一个独立项目,不隶属于 Fedora 或 Flatpak 项目。请自行斟酌使用。 ## 🔗 资源 - 🌐 项目仓库: - 📖 [技术宣言](AGENTS.md) - 🛠 [开发指南](docs/development.md) - 🤝 [贡献指南](.github/CONTRIBUTING.md) - 📜 [更新日志](CHANGELOG.md) - 🧑‍💻 [维护者指南](MAINTAINERS.md)
标签:Btrfs, DEB, Debian, Fedora, Flatpak, Linux系统管理, RHEL, RPM, Snapper, systemd, 原子更新, 回滚, 定时任务, 应用安全, 开源, 快照, 自动更新, 邮件通知