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.
- Test real scenarios: systemd units, multi-service setups, distro packaging, upgrade paths. Anything that needs a booted system.
- Clone your machine:
sudo sdme newsnapshots 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.
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 shYour 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
systemdpackage
For .deb, .rpm, and .pkg packages, see the downloads page.