From ac0b0d84a0aa10653c1246cda62096f3b3ce631e Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Tue, 19 Dec 2023 13:16:09 +0800 Subject: [PATCH] docs: update project README --- README.adoc | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index c610a55a..47826525 100644 --- a/README.adoc +++ b/README.adoc @@ -7,7 +7,24 @@ :canonical_flake_url_tarball_specific: https://github.com/foo-dogsquared/nixos-config/archive/35c27749c55077727529f412dade862e4deb2ae8.tar.gz This is my NixOS config as a link:https://www.tweag.io/blog/2020-05-25-flakes/[Nix flake] eventually containing my (almost) complete setup from a desktop, to a server, to a personalized installer, almost everything. -Who knows it might contain another server just for the infrastructure for my custom non-NixOS distro just to flex how flexible NixOS can be. footnote:[This is how Garuda Linux is set up, btw.] +This configuration setup can be described with a list of features: + +* Deploy the same NixOS configuration for more than one system. +This is configured with the link:./images.toml[./images.toml] where not only you can deploy them with https://github.com/serokell/deploy-rs[deploy-rs] but build them as generated by https://github.com/nix-community/nixos-generators[nixos-generators]. +You can even configure what nixpkgs branch (and home-manager branch) it will use. + +* Similarly, deploy the same home-manager configuration for more than one system. +This time, it is configured with the link:./users.toml[./users.toml] file which you can configure what nixpkgs branch it will use. + +* Unify https://github.com/nix-community/nixos-generators[home-manager] and NixOS configuration (and maybe other environments such as nix-darwin and system-manager in case I have use cases for those) into one flake. + +* Take full advantage of Nix module system with the cluster-wide custom modules footnote:[Most of them are patterned similarly from nixpkgs which made easy to be upstreamed just in case.]. +This design bleeds into configuring the NixOS systems and home-manager users by designing {doc-site}/04-nixos-modules/04-host-specific-modules/[host-specific modules] and {doc-site}/05-home-manager/#_user_specific_modules[user-specific modules], respectively. + +* It has its own {doc-site}[website]. +Which means that it's cool (or over-the-top, whichever you prefer). + +It's basically my personal version of nixpkgs: a monorepo of everything I need for Nix-related things (unless it sprung into life as its own project). Anyways, this project also has a dedicated website at {doc_site} which I recommend to take a gander on how this project structures its configuration (and much of the information is not covered in this README anyways). If you want the local documentation and has angst against online documentation, you can view the source code of the book at link:./docs/[`./docs/`]. @@ -59,6 +76,24 @@ The FlakeHub flake follows a rolling release model so all of the releases are un +== Stability promise + +If you're one of the unfortunate users for whatever reason, sorry but there's no stability promise here. +Not every commit successfully builds because of the way how the project is managed (which is very very badly): + +* All of the included changes are pushed in one fell swoop over time instead of carefully testing each of them. +* NixOS and home-manager configurations are able to be deployed in pure evaluation mode and suddenly it's not (most of the time, it isn't). +* Module interfaces change all the time. +* Packages can be left unmaintained and vanish at any time. footnote:[The ones I actively maintain are in nixpkgs anyways.] + +This is my personal NixOS configuration, after all. +It serves more of a platform to experiment with the Nix ecosystem rather than something that it's meant to be used by others. +There are some parts of the configuration that eventually sprung as its own project such as the https://github.com/foo-dogsquared/nix-overlay-guix[Guix overlay] (which eventually upstreamed into nixpkgs, hoorah!). +Hopefully, more of them can be like that in the future (provided I still use Nix and have some time for it). + + + + == TODO In order of priority: