DiffOS is a GNU/Linux distribution aspiring to the meet the Free System Distribution Guidelines (GNU FSDG), based on Debian GNU/Linux.
DiffOS is the Debian Increment For Freedom Operating System.
Aspire to the goals of GNU FSDG and become a recognized Free GNU/Linux distribution.
Uses Debian GNU/Linux as upstream. We remove artifacts that are not complying with with the Debian Free Software Guidelines (DFSG), such as Debian non-free, contrib and non-free-firmware and we produce our own installer images without non-DFSG blobs.
Support for all architectures supported by Debian.
Provide Containers, Cloud Images, LiveCD and installer ISOs.
Provide standalone hosting of the package repository.
Provide documentation and issue tracker.
Keep changes to a minimum, in particular:
Upstream-first policy to prefer that any changes are made in Debian, and only if that fails they are considered for DiffOS.
Binary package re-use for as much as is possible.
Don’t modify any source-level Debian package unless REQUIRED by the FSDG (e.g., for freedom concerns) or REQUIRED by the Debian project (e.g., for branding reasons).
Publish a list of packages that are added, removed or modified compared to Debian, with justification for each change.
Publish Diffoscope-style outputs comparing our artifacts with comparable Debian artifact.
Everything built from CI/CD pipelines, inspired by the Salsa CI pipeline but extended to cover the package repository and installation images as well, to allow modern GitSecDevOps of the entire supply-chain.
Use inspiration from other Debian-derived FSDG distributions Trisquel GNU/Linux and PureOS, and broader with GNU Guix especially on how to approach existing freedom concerns in packages.
Git Forge agnostic. Current dual-hosting on GitLab.com and Codeberg.org. Scripts and configuration are (or will be) designed to allow setup on self-hosted GitLab instance, Codeberg.org or self-hosted Forgejo.
Maintained by Humans and no AI/LLM contributions - inspired by THE HUMAN MANIFESTO FOR THE AGE OF ARTIFICIAL INTELLIGENCE.
The DiffOS Live images allows you to run and install DiffOS on physical (or virtual) machines.
Release images are published on the DiffOS Live GitLab Releases page, with quick links in the following table.
Download and verify an image like this:
wget https://www.diffos.org/live/diffos-13.7.0.SHA256SUM
wget https://www.diffos.org/live/diffos-13.7.0.SHA256SUM.asc
gpg --verify diffos-13.7.0.SHA256SUM.asc
wget https://www.diffos.org/live/13.7.0/diffos-13.7.0-amd64-gnome.iso
grep diffos-13.7.0-amd64-gnome.iso diffos-13.7.0.SHA256SUM | sha256sum -c
Write image to a USB drive for installation on physical hardware:
dd if=diffos-13.7.0-amd64-gnome.iso of=/dev/sdX # replace sdX with USB drive
Run and install in a virtual machine, installing to a disk image:
dd if=/dev/zero of=hda.raw count=20 bs=1G conv=sparse
kvm -m 12G -hda hda.raw -cdrom diffos-X.Y.Z-amd64-gnome.iso
Review the Debian CD FAQ and the Debian GNU/Linux Installation Guide for more help.
The DiffOS Container Images project build and publish DiffOS Container Images, for orchestration of containers using tools like docker or podman.
Example usage for amd64, arm64, ppc64el and riscv64:
podman run -it --rm registry.gitlab.com/debdistutils/diffos/container:trixie
Multi-arch (amd64, arm64, trixie/bookworm ppc64el, trixie riscv64) container URLs:
| Container URL |
|---|
| registry.gitlab.com/debdistutils/diffos/container:trixie |
| registry.gitlab.com/debdistutils/diffos/container:trixie-slim |
| registry.gitlab.com/debdistutils/diffos/container:bookworm |
| registry.gitlab.com/debdistutils/diffos/container:bookworm-slim |
| registry.gitlab.com/debdistutils/diffos/container:bullseye |
| registry.gitlab.com/debdistutils/diffos/container:bullseye-slim |
The DiffOS Cloud
Images project build and publish QCOW2 cloud images with
cloud-init, for virtual machine orchestration via libvirt or on cloud providers.
See the package registry for release images, which includes weekly builds of the following variants:
Usage example:
wget https://gitlab.com/api/v4/projects/74458072/packages/generic/cloud-images/20260921/diffos-13-generic-amd64.qcow2
virt-customize -a diffos-13-generic-amd64.qcow2 --root-password password:MYPASSWD
virt-install --name diffos --os-variant linux2024 --memory 8192 --disk diffos-13-generic-amd64.qcow2 --import
virsh destroy diffos
virsh undefine diffos
Issues can be filed in the catch-all DiffOS issue tracker. If you are aware that your issue is related to a specific component, please file the issue with the relevant issue tracker instead.
Feel free to join our #DiffOS matrix chat room.
The DiffOS
archive project holds the package archive, including scripts to
merge packages from Debian, and is considered stable. Currently we
support trixie, bookworm and bullseye. Archives are published at https://deb.diffos.org/diffos/
and http://security.diffos.org/diffos-security/
following the same naming pattern as Debian. Instead of
bookworm, trixie, or
trixie-security, DiffOS uses the suites
diffos-bookworm, diffos-trixie, and
diffos-trixie-security and so on. Only the
main component is available. The InRelease
file for DiffOS trixie is published at https://deb.diffos.org/diffos/dists/diffos-trixie/InRelease
for example.
DiffOS containers
exists for (applicable) combinations of trixie, bookworm and bullseye
for amd64, arm64, ppc64el and riscv64, including *-slim
variants.
DiffOS cloud images
exists for bookworm and trixie exists for amd64, arm64, ppc64el and
riscv64 flavor, for the generic variant.
DiffOS live images exists for trixie and the amd64, arm64, ppc64el and riscv64 architectures.
Packages for DiffOS are developed using one project per package, available under the packages/ sub-group. Each package has a CI/CD pipeline building binaries. Resulting binaries are merged manually into the archive.
Lists of differences between Debian and DiffOS are continously monitored and summarized by debdistdiff.
Diffoscope comparisons of artifacts are planned.
Reviewing packages for branding and freedom concerns is likely to be a perpetual task. Inspiration and co-operation with Trisquel, Genuen, PureOS, Guix and other libre distributions will help here.
Automating repository import, merge and generation in CI/CD is planned, currently this is performaned manually.
Migrating runners, package and container registry to Forgejo codeberg.com variant is planned.
The main www.diffos.org website has been public since 2026-09-04.
Packages distributed via DiffOS are licensed under various licenses, but are all believe to be free software and follow the FSDG guidelines.
On an installed DiffOS system, licensing information are available as
/usr/share/doc/PKG/copyright replacing PKG with the
relevant package you are interested in.
Any file in this project is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
See the file COPYING or https://www.gnu.org/licenses/agpl-3.0.en.html for license text.