Skip to content

# rust-unattended **rust-unattended** is a fast, secure, Rust-based replacement for Debian’s `unattended-upgrades`, built with strict locking, systemd timers, and zero Python dependencies.

Notifications You must be signed in to change notification settings

codixor/rust-unattended

Repository files navigation

rust-unattended

🚀 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.


✨ Features

  • ✅ 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 .deb packages (amd64 + arm64)
  • 🛑 Safe shutdown hook after upgrades
  • 🚫 No Python, no Bash, no apt hooks

📦 Installed Components

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

🕒 Default Schedule

OnCalendar=daily
RandomizedDelaySec=1h
Persistent=true

🔌 Laptop-Safe (AC Power Required)

Upgrades only run when AC power is connected.


🧠 Logging

journalctl -u rust-unattended

📥 Installation

sudo dpkg -i rust-unattended_*.deb

▶️ Manual Run

sudo systemctl start rust-unattended.service

🏗️ Build

cargo zigbuild --release --target x86_64-unknown-linux-musl
cargo zigbuild --release --target aarch64-unknown-linux-musl

📄 License

MIT

About

# rust-unattended **rust-unattended** is a fast, secure, Rust-based replacement for Debian’s `unattended-upgrades`, built with strict locking, systemd timers, and zero Python dependencies.

Topics

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published