Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,132 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rugix Logo

Rugix

The Open Lifecycle Layer for Embedded Linux

Rugix Version Badge Pipeline Status Badge

Rugix provides an open-source lifecycle layer for building and maintaining robust, Linux-powered products from development to production. Its tools cover reliable system and application lifecycle management, custom image creation, and local device administration:

  • Rugix Ctrl: On-device lifecycle engine for atomic system and application updates, automatic rollback, and persistent state management.
  • Rugix Admin: Lightweight, browser-based interface for managing individual Rugix devices.
  • Rugix Bakery: Build system for custom, OTA-ready Linux distributions.

Use Rugix Bakery and Rugix Ctrl together for an end-to-end workflow from image creation through deployment and maintenance, or integrate Rugix Ctrl into your existing Yocto, Buildroot, or other Linux build workflow. Add Rugix Admin when developers or operators need to inspect and manage a device locally.

Get started today! Build your first system and deploy an update, all in under 30 minutes! 🚀

Rugix Ctrl

This repository contains Rugix Ctrl, which provides reliable lifecycle management for Linux devices:

  • Fail-Safe System Updates: Atomic A/B updates with automatic rollback on failure.
  • Delta Updates: Highly-efficient delta updates minimizing bandwidth.
  • Signature Verification: Cryptographic verification before installing anything anywhere.
  • Compatibility Checks: Verifies system and application updates are compatible before installation.
  • State Management: Flexible state management inspired by container-based architectures.
  • Application Updates: Atomic deployment and rollback of application workloads.
  • Vendor-Agnostic: Compatible with various fleet management solutions (avoids lock-in).
  • Flexible Boot Flows: Supports any bootloader and boot process.
  • Yocto Integration: Ready-made Yocto layers available.

Rugix Ctrl supports different update strategies (symmetric A/B, asymmetric with recovery, incremental updates) and can be adapted to almost any requirements you may have for robust and secure updates.

Works with Yocto, Buildroot, and other Linux build systems.

For details, check out Rugix Ctrl's documentation.

For the precise update durability boundaries, interruption behavior, and operator recovery expectations implemented by this repository, see Update Reliability and Recovery.

Rugix Admin

Rugix Admin complements Rugix Ctrl with a lightweight, browser-based management interface for individual devices. Developers and operators can inspect system status, install system and application updates, manage application workloads, and review operation logs directly on a device. It is well suited for development, demos, and field service.

Rugix Bakery

Robust over-the-air updates require system images built to support atomic updates. Traditional tools like Yocto are powerful but complex to set up and maintain, often taking teams months to build a production-ready pipeline. This complexity also creates risk: often only one person at a company truly understands the setup.

Rugix Bakery makes building OTA-ready system images (almost) as easy as writing a Dockerfile. Spend your time on what provides value to your users, not system-level details and build pipeline complexity.

For details, check out the Rugix Bakery repository and documentation.

Why Rugix?

Rugix is fully open-source and permissively licensed, including features such as delta updates. As an open lifecycle layer, it integrates with different build systems and fleet management solutions, so you stay in control without vendor lock-in.

Rugix empowers teams to ship robust products fast and without compromising on best practices like read-only root filesystems, atomic OTA updates, reliable application deployment, and reproducible builds.

Development

Rugix uses mise for development tools and tasks. Tool specifications stay intentionally loose where mise can resolve them; mise.lock records the exact versions and checksums used by developers and CI. Rust is managed separately by rustup through rust-toolchain.toml, so Cargo, rust-analyzer, and editors use the same dated nightly without requiring mise activation.

Install the locked toolchain and inspect the available commands:

mise install
mise tasks

Common workflows are:

mise run check                         # formatting, Clippy, dependency policy/advisories, and unit tests
mise run fmt
mise run codegen
mise run build x86_64-unknown-linux-musl
mise run package:deb x86_64-unknown-linux-musl
mise run test:system

Run mise run doctor to check host dependencies. Development requires rustup; entering the repository or running Cargo installs the configured Rust toolchain as needed. Native builds also require a C compiler, pkg-config, OpenSSL, and liblzma development files. Cross-builds require Docker or Podman. The system tests additionally require QEMU and OVMF.

To deliberately update the non-Rust toolchain, update the loose specifications if needed and run mise lock; commit mise.toml and mise.lock together. Update Rust by changing the dated channel in rust-toolchain.toml.

Run Directly from Git with Nix

The Nix flake exposes each Rugix command as both a package and an app, so no checkout is required:

nix run github:rugix/rugix#rugix-ctrl -- --help
nix run github:rugix/rugix#rugix-bundler -- --help
nix run github:rugix/rugix#rugix-util -- --help

Replace the flake reference with a tag or commit when a specific revision is required, for example github:rugix/rugix/v0.8.17#rugix-ctrl.

Commercial Support

Rugix has been created and is maintained by Silitics. Looking for commercial support? We're here to help. Need a fleet management solution? Check out Nexigon, by the creators of Rugix.

Licensing

This project is licensed under either MIT or Apache 2.0 at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache 2.0 license, shall be dual licensed as above, without any additional terms or conditions.


Made with ❤️ for OSS by Silitics

About

The open lifecycle layer for embedded Linux: robust and secure OTA updates, state management, and more.

Topics

Resources

Security policy

Stars

153 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages