Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fiorix/sdme

Open more actions menu

Repository files navigation

sdme

sdme is a command line tool for managing systemd-nspawn containers on Linux. It is distributed as a single static binary or in packages (deb, rpm, pkg) for x86_64 and aarch64.

sdme configures and orchestrates systemd to run containers. Each container boots its own systemd init: services start, timers fire, journald collects logs. It works like a real machine. Containers use overlayfs copy-on-write layers by default, so each one gets its own writable filesystem on top of a shared base image, keeping the original intact. Imported and OCI rootfs can alternatively use a btrfs backend (copy-on-write subvolume snapshots), which adds nested containers, native user-namespace idmapping that preserves suid and xattrs, and per-container disk quotas.

As part of the toolkit, sdme imports root filesystems from multiple sources including OCI registries (e.g. Docker images), tarballs, directories, and QCOW2 images. It also deploys multi-container pods from Kubernetes Pod YAML manifests.

Why sdme?

  • Test real scenarios: systemd units, multi-service setups, distro packaging, upgrade paths. Anything that needs a booted system.
  • Clone your machine: sudo sdme new snapshots your root filesystem and drops you into a shell.
  • Any systemd distro: Ubuntu, Fedora, Arch, NixOS, openSUSE, CentOS, CachyOS, and more.
  • OCI application images: run Docker Hub images (nginx, redis, postgres) as systemd services.
  • Kubernetes Pod YAML: deploy multi-container pods with volumes, secrets, configmaps, and health probes.

Installation

sdme is a single static binary with no configuration files or background services. The install script downloads the latest release, verifies SHA256 checksums, and places the binary in /usr/local/bin:

curl -fsSL https://sdme.io/install.sh | sudo sh

Your system also needs systemd-container installed so that systemd-nspawn and machinectl are available:

  • Debian/Ubuntu: sudo apt install systemd-container
  • Fedora/CentOS: sudo dnf install systemd-container
  • Arch Linux: included in the base systemd package

For .deb, .rpm, and .pkg packages, see the downloads page.

Tutorials and documentation

sdme.io

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.