If you have any special requests, please send an email. Only architectures supported by each Linux distribution upstream are listed, and named after the upstream port (e.g. Debian uses "amd64" while Alpine uses "x86_64").
Note: support for multi-arch builds is underway, but not yet available.
The "native" column is checked if these builds run on native hardware for that architecture, if unchecked the builds are run on emulated hardware and may suffer from poor performance.
Support lifecycle
The support lifecycle for each build image follows the upstream support cycle. Each supported upstream release is generally offered on sr.ht, as well as the bleeding edge or development releases if applicable. No sooner than two weeks after a release becomes unsupported upstream, it will be unsupported on builds.sr.ht — and anyone who's submitted recent builds using those images will get an email warning them of the impending breakage.
It's recommended that you use aliases like "alpine/latest" or "debian/testing" rather than using a specific release in your build manifests.
Maintainer: Drew DeVault sir@cmpwn.com
Support policy: upstream
| Alpine Edge |
image: alpine/edge
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: armhf | |||
arch: ppc64el | |||
arch: s390x | |||
arch: x86_64 (default) |
✓ | ✓ | daily |
arch: x86 | |||
| Alpine 3.23 |
image: alpine/latest or
image: alpine/3.23
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: armhf | |||
arch: ppc64el | |||
arch: s390x | |||
arch: x86_64 (default) |
✓ | ✓ | weekly |
arch: x86 | |||
| Alpine 3.22 |
image: alpine/old or
image: alpine/3.22
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: armhf | |||
arch: ppc64el | |||
arch: s390x | |||
arch: x86_64 (default) |
✓ | ✓ | weekly |
arch: x86 | |||
| Alpine 3.21 |
image: alpine/older or
image: alpine/3.21
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: armhf | |||
arch: ppc64el | |||
arch: s390x | |||
arch: x86_64 (default) |
✓ | ✓ | weekly |
arch: x86 | |||
| Alpine 3.20 |
image: alpine/oldest or
image: alpine/3.20
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: armhf | |||
arch: ppc64el | |||
arch: s390x | |||
arch: x86_64 (default) |
✓ | ✓ | weekly |
arch: x86 | |||
packages
The packages array is installed with apk add.
repositories
To add custom apk repositories, use repo-url key-url key-name (separated with
spaces), where repo-url is the URL of the package repository and key-url is
a URL from where the signing key may be downloaded, and key-name is the name
of the file written to /etc/apk/keys/. If the name of the repo is prefixed
with an @, it will use that prefix in apk.
Example:
repositories:
sr.ht: >
https://mirror.sr.ht/alpine/sr.ht/
https://mirror.sr.ht/alpine/sr.ht/alpine%40sr.ht.rsa.pub
alpine@sr.ht.rsa.pub
Maintainer: Alex Kramer lex@marcel.town
| Arch Linux |
image: archlinux
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: x86_64 (default) |
✓ | ✓ | daily |
packages
The package array is installed with yay -Syu (AUR packages are transparently
installed).
repositories
To add custom pacman repositories, use url#key-id, where url is the URL of
the package repository and key-id is the ID of the published PGP key the
packages are signed with.
Maintainer: Taavi Väänänen taavi@debian.org
Support policy: stable, testing, unstable, and oldstable are supported. See also: upstream releases
| Debian Trixie (stable) |
image: debian/stable or
image: debian/trixie
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: arm64 | |||
arch: amd64 (default) |
✓ | ✓ | weekly |
arch: armel | |||
arch: armhf | |||
arch: i386 | |||
arch: ppc64el | |||
arch: riscv64 | |||
arch: s390x | |||
| Debian Forky (testing) |
image: debian/testing or
image: debian/forky
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: arm64 | |||
arch: amd64 (default) |
✓ | ✓ | daily |
arch: armel | |||
arch: armhf | |||
arch: i386 | |||
arch: ppc64el | |||
arch: riscv64 | |||
arch: s390x | |||
| Debian Sid (unstable) |
image: debian/unstable or
image: debian/sid
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: arm64 | |||
arch: amd64 (default) |
✓ | ✓ | daily |
arch: armel | |||
arch: armhf | |||
arch: i386 | |||
arch: ppc64el | |||
arch: riscv64 | |||
arch: s390x | |||
| Debian Bookworm (oldstable) |
image: debian/oldstable or
image: debian/bookworm
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: arm64 | |||
arch: amd64 (default) |
✓ | ✓ | monthly |
arch: armel | |||
arch: armhf | |||
arch: i386 | |||
arch: mips64el | |||
arch: mipsel | |||
arch: ppc64el | |||
arch: s390x | |||
packages
The packages array is installed with apt-get install.
repositories
To add custom repositories, specify url release component key-id (separated by
spaces), where url is the URL of the package repository, release is e.g.
bullseye or bookworm, component is e.g. main, contrib, non-free or
non-free-firmware (since bookworm), and key-id is an optional PGP key ID
to add to the system keyring. Example:
repositories:
sr.ht: https://mirror.sr.ht/debian/sr.ht/ bookworm main DEADBEEFCAFEF00D
Maintainer: Haowen Liu lhw@lunacd.com
| Fedora Rawhide |
image: fedora/rawhide or
image: fedora/44
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: x86_64 (default) |
✓ | ✓ | daily |
| Fedora 43 |
image: fedora/43
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: x86_64 (default) |
✓ | ✓ | daily |
| Fedora 42 |
image: fedora/latest or
image: fedora/42
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: x86_64 (default) |
✓ | ✓ | weekly |
| Fedora 41 |
image: fedora/41
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: x86_64 (default) |
✓ | ✓ | weekly |
packages
The packages array is installed with dnf install.
repositories
Given the following list of repositories in your manifest:
repositories:
example: https://example.org
The following commands will be used to configure it:
Fedora 41 and later:
dnf config-manager addrepo --from-repofile=https://example.org
dnf config-manager setopt example.enabled=1
Fedora 40 and earlier:
dnf config-manager --add-repo https://example.org
dnf config-manager --set-enabled example
Maintainer: CismonX admin@cismon.net
Support policy: Upstream production releases are supported.
| FreeBSD current |
image: freebsd/current
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: amd64 (default) |
✓ | ✓ | weekly |
arch: powerpc64 | |||
| FreeBSD 14.x |
image: freebsd/latest or
image: freebsd/14.x
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: amd64 (default) |
✓ | ✓ | weekly |
arch: i386 | |||
arch: powerpc | |||
arch: powerpc64 | |||
| FreeBSD 13.x |
image: freebsd/13.x
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: amd64 (default) |
✓ | ✓ | weekly |
arch: i386 | |||
arch: powerpc | |||
arch: powerpc64 | |||
packages
The packages array is installed with pkg install.
repositories
Custom package repositories are not supported on FreeBSD builds.
Maintainer: csantosb csantosb@inventati.org
Guix System support for builds.sr.ht is actively being maintained here. There is a cookbook to get started.
| Guix System |
image: guix
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: armhf | |||
arch: i686 | |||
arch: powerpc64le | |||
arch: x86_64 (default) |
✓ | ✓ | daily |
packages
The packages are installed with guix install.
repositories
Specifying additional channels via build manifest is not supported.
Maintainer: Michael Forney mforney@mforney.org
Support policy: the most recent release and the version prior are supported. See also: upstream release cycle
| NetBSD 10.0 |
image: netbsd/latest or
image: netbsd/10.x
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: amd64 (default) |
✓ | ✓ | as required |
arch: armv6hf | |||
arch: armv7hf | |||
arch: armv7hfeb | |||
arch: i386 | |||
arch: mipseb | |||
arch: mipsel | |||
arch: mips64eb | |||
arch: mips64el | |||
arch: ppc | |||
arch: sparc64 | |||
| NetBSD 9.3 |
image: netbsd/9.x
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: amd64 (default) |
✓ | ✓ | as required |
arch: armv6hf | |||
arch: armv7hf | |||
arch: armv7hfeb | |||
arch: i386 | |||
arch: mipseb | |||
arch: mipsel | |||
arch: mips64eb | |||
arch: mips64el | |||
arch: ppc | |||
arch: sparc64 | |||
packages
The packages array is installed with pkgin.
repositories
Custom package repositories are not supported on NetBSD builds.
Maintainer: Francesco Gazzetta fgaz@fgaz.me
Support policy: NixOS upstream does not have a clear support policy, but usually
old releases continue to get security fixes for
a short amount of time
after they are superseded.
We ship the latest stable version (channel nixos-YY.MM)
and the latest bleeding edge (channel nixos-unstable).
We remove old versions after they are marked as "End of life" at
status.nixos.org.
| NixOS unstable |
image: nixos/unstable
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: armv6 | |||
arch: armv7 | |||
arch: x86_64 (default) |
✓ | ✓ | daily |
| NixOS 25.05 |
image: nixos/latest or
image: nixos/25.05
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: armv6 | |||
arch: armv7 | |||
arch: x86_64 (default) |
✓ | ✓ | weekly |
| NixOS 24.11 |
image: nixos/24.11
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: armv6 | |||
arch: armv7 | |||
arch: x86_64 (default) |
✓ | ✓ | weekly |
packages
The packages array is installed with nix-env -iA. Since it's possible to
specify multiple channels, you must provide the full selection path, for example
nixos.hello.
repositories
To add custom channels, use channel-name: channel-url. The channel name is relevant,
since channel-name: channel-url will execute the commands nix-channel --add channel-url channel-name and nix-channel --update channel-name.
Example:
repositories:
nixpkgs: https://nixos.org/channels/nixpkgs-unstable
By default, no user channels are present.
However, like in a fresh NixOS installation, there is a root channel named
nixos set to
https://nixos.org/channels/nixos-XX.YY in nixos/latest and nixos/XX.YYhttps://nixos.org/channels/nixos-unstable in nixos/unstablewhich is the channel the image was built from.
flakes
Like in a standard Nix(OS) installation, flakes are not enabled by default.
A good way to use flakes without having to pass --extra-experimental-features
to every nix invocation is to use the
NIX_CONFIG
environment variable instead:
environment:
NIX_CONFIG: "experimental-features = nix-command flakes"
Maintainer: Jarkko Oranen oranenj@iki.fi
Support policy: the most recent release and the version prior are supported. See also: upstream release cycle
| OpenBSD 7.7 |
image: openbsd/latest or
image: openbsd/7.7
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: alpha | |||
arch: amd64 (default) |
✓ | ✓ | weekly |
arch: arm64 | |||
arch: armv7 | |||
arch: hppa | |||
arch: i386 | |||
arch: landisk | |||
arch: loongson | |||
arch: luna88k | |||
arch: macppc | |||
arch: octeon | |||
arch: power64 | |||
arch: sparc64 | |||
| OpenBSD 7.6 |
image: openbsd/old or
image: openbsd/7.6
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: alpha | |||
arch: amd64 (default) |
✓ | ✓ | weekly |
arch: arm64 | |||
arch: armv7 | |||
arch: hppa | |||
arch: i386 | |||
arch: landisk | |||
arch: loongson | |||
arch: luna88k | |||
arch: macppc | |||
arch: octeon | |||
arch: power64 | |||
arch: sparc64 | |||
notes
Binary patches are applied to the base system using syspatch.
packages
The packages array is installed with pkg_add.
repositories
Custom package repositories are not supported on OpenBSD builds.
Maintainer: Haowen Liu lhw@lunacd.com
| Rocky Linux 8 |
image: rockylinux/latest or
image: rockylinux/8
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: aarch64 | |||
arch: x86_64 (default) |
✓ | ✓ | weekly |
packages
The packages array is installed with dnf install.
repositories
Given the following list of repositories in your manifest:
repositories:
example: https://example.org
The following commands will be used to configure it:
dnf config-manager --add-repo https://example.org
dnf config-manager --set-enabled example
Maintainer: Haowen Liu lhw@lunacd.com
Support cycle: all releases under standard support. See the upstream support schedule for more information.
| Ubuntu Plucky (25.04) |
image: ubuntu/plucky or
image: ubuntu/25.04
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: arm64 | |||
arch: amd64 (default) |
✓ | ✓ | weekly |
arch: i386 | |||
arch: ppc64el | |||
arch: s390x | |||
| Ubuntu Oracular (24.10) |
image: ubuntu/oracular or
image: ubuntu/24.10
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: arm64 | |||
arch: amd64 (default) |
✓ | ✓ | weekly |
arch: i386 | |||
arch: ppc64el | |||
arch: s390x | |||
| Ubuntu Noble (24.04) |
image: ubuntu/lts or
image: ubuntu/noble or
image: ubuntu/24.04
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: arm64 | |||
arch: amd64 (default) |
✓ | ✓ | weekly |
arch: i386 | |||
arch: ppc64el | |||
arch: s390x | |||
| Ubuntu Oracular (24.10) |
image: ubuntu/oracular or
image: ubuntu/24.10
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: arm64 | |||
arch: amd64 (default) |
✓ | ✓ | weekly |
arch: i386 | |||
arch: ppc64el | |||
arch: s390x | |||
| Ubuntu Jammy (22.04) |
image: ubuntu/oldlts or
image: ubuntu/jammy or
image: ubuntu/22.04
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: arm64 | |||
arch: amd64 (default) |
✓ | ✓ | monthly |
arch: i386 | |||
arch: ppc64el | |||
arch: s390x | |||
| Ubuntu Focal (20.04) |
image: ubuntu/focal or
image: ubuntu/20.04
|
||
|---|---|---|---|
| arch | supported | native | updated |
arch: arm64 | |||
arch: amd64 (default) |
✓ | ✓ | monthly |
arch: i386 | |||
arch: ppc64el | |||
arch: s390x | |||
packages
The packages array is installed with apt-get install.
repositories
To add custom repositories, specify url release component key-id (separated by
spaces), where url is the URL of the package repository, release is e.g.
bionic or cosmic, component is e.g. main, contrib or non-free, and
key-id is an optional PGP key ID to add to the system keyring. Example:
repositories:
sr.ht: https://mirror.sr.ht/debian/sr.ht/ cosmic main DEADBEEFCAFEF00D
commit 906680e338cc21b5460bcaad7b9eff8b3517e4b5 Author: Conrad Hoffmann <ch@bitfehler.net> Date: 2025-12-12T16:08:42+01:00 support: fix link to support FAQ Of course markdown does not work in a raw block :/