fedoraBee/flatpak-automatic
GitHub: fedoraBee/flatpak-automatic
一个基于 systemd 的 Flatpak 自动更新工具,通过 Snapper 快照实现原子化回滚,并支持邮件及多平台推送通知,适用于 Fedora/RHEL 和 Ubuntu/Debian 发行版。
Stars: 1 | Forks: 0
# [](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, 原子更新, 回滚, 定时任务, 应用安全, 开源, 快照, 自动更新, 邮件通知