NixNG is a, as of now, GNU/Linux distribution, which may be a considered a late sibling to NixOS. It shares many of its designs and utilizes the Nix package manager at its core. The defining features of NixNG are:
- a lighter and simpler design, due to the omission of systemd
- the possibility of multiple init system choices, like runit, OpenRC and even systemd in the future
- a "minimal by default" package set, while
nixpkgs
and by extension NixOS takes the "full featured by default" approach - suitable for building containers, due to being lightweight
- fully structured configuration for modules, no string
extraConfig
NixNG cannot boot on real hardware due to missing it's own kernel and initramfs, but it can "boot" as a container, be it
lxc, or docker. Some modules are implemented but there is still a lot to be done. If you want to get a feel for it, you
can look into ./examples
where you'll find fully working systems, mostly catered to be containers.
We've built up several functional containers, which showcase the syntax and functional of NixNG. The sources are
locacted in /examples/
. Currently you can either build the top-level derivation which you theoretically could activate
(don't do it it will break) with:
nix build .#<systemName>.config.system.build.top-level
And also a OCI image which you can load into Docker, etc, with:
nix build .#<systemName>.config.system.build.ociImage.build
You can also stream the image without saving it into the Nix store with:
nix build .#<systemName>.config.system.build.ociImage.stream && ./result | docker load
.
Look at the code, make changes, open a PR. There are no style guidelines as of now, but try to write readable and well
formatted Nix code, without tabs or trailing whitespace. If you need help with something please feel free to open an
issue or contact me on Discord Magic_RB#6785
.
Don't worry, you can login using GitHub or GitLab and your password never touches my server, login is handled by GH or GL, my server just gets told that it's you.
This project is licensed under the GNU GPLv3, as per COPYING. I also give explicit permission to the NixOS project to re-license any part of this repository (that is covered by COPYING and doesn't have it's own licensing) under the MIT license and to include it in nixpkgs.
I also state that using this project as a flake or import
ing after using some version fetchurl
to download it,
doesn't constitute as linking and therefore, you are not required to license your project under the GPLv3, though your
project must be licensed under a GPL-compatible license as per the GNU GPL compatible license
list.
By contributing, you agree to the terms of the GNU GPLv3 license + the exceptions laid out in the section License. You also give up all rights to the code contributed, in exchange for a legally bounding promise that this repository (excluding any separately licensed parts) will always be licensed under a GPL-compatible license as per the GNU GPL compatible license list.