🚀 Production-grade unattended system upgrades written in Rust
rust-unattended replaces fragile shell scripts and distro-specific tooling with a secure, statically linked, systemd-native solution for automated OS updates.
- ✅ Fully static MUSL binaries (no runtime deps)
- 🔒 Written in Rust (memory-safe, panic-aware)
- ⚙️ Native systemd services + timers
- 🔌 AC-power aware (safe for laptops)
- 📦 Clean
.debpackages (amd64 + arm64) - 🛑 Safe shutdown hook after upgrades
- 🚫 No Python, no Bash, no apt hooks
| Path | Purpose |
|---|---|
/usr/local/sbin/rust-unattended |
Main upgrade runner |
/usr/local/sbin/unattended-upgrade-shutdown |
Post-upgrade shutdown helper |
rust-unattended.service |
Upgrade execution |
rust-unattended.timer |
Scheduled trigger |
unattended-upgrade-shutdown.service |
Shutdown hook |
OnCalendar=daily
RandomizedDelaySec=1h
Persistent=trueUpgrades only run when AC power is connected.
journalctl -u rust-unattendedsudo dpkg -i rust-unattended_*.debsudo systemctl start rust-unattended.servicecargo zigbuild --release --target x86_64-unknown-linux-musl
cargo zigbuild --release --target aarch64-unknown-linux-muslMIT