mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-02-07 06:19:00 +00:00
docs: update project README
This commit is contained in:
parent
802f78cea5
commit
8ed302a883
46
README.adoc
46
README.adoc
@ -6,27 +6,43 @@
|
||||
:canonical_flake_url_tarball_master: https://github.com/foo-dogsquared/nixos-config/archive/master.tar.gz
|
||||
: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.
|
||||
This is my NixOS config as a 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, to your mom, almost everything.
|
||||
This configuration setup can be described with a list of features:
|
||||
|
||||
* Contain EVERYTHING!
|
||||
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.
|
||||
Also throw in some NixVim configs in there, some Disko configurations, and make a sticky note about systems-manager and nix-darwin for the near future.
|
||||
This is basically a monorepo for everything Nix-related needs.
|
||||
|
||||
* 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 https://foo-dogsquared.github.io/nixos-config/04-nixos-modules/04-host-specific-modules/[host-specific modules] and https://foo-dogsquared.github.io/nixos-config/05-home-manager/#_user_specific_modules[user-specific modules], respectively.
|
||||
|
||||
* Integrate every single component of the Nix ecosystem under the sun (that I use, anyways).
|
||||
Want to declare a NixOS system with two already existing home-manager users as a separate NixOS configuration (`nixosConfigurations`) and as a buildable ISO in the flake output AND have it deployable with deploy-rs?
|
||||
link:./modules/flake-parts/setups/nixos.nix[I wished for it and I got it.]
|
||||
This is mainly powered by flakes with https://flake.parts/[Flake Parts] framework allowing me to create bloated abstractions on top.
|
||||
|
||||
* Deploy the same NixOS configuration for more than one system and in multiple output images.
|
||||
This is configured in link:./configs/flake-parts/nixos.nix[`./configs/flake-parts/nixos.nix`] 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:./configs/flake-parts/home-manager.nix[./configs/flake-parts/home-manager.nix] file which you can configure what nixpkgs branch it will use.
|
||||
This time, it is configured with the link:./configs/flake-parts/home-manager.nix[`./configs/flake-parts/home-manager.nix`] file which you can configure what nixpkgs branch it will use.
|
||||
You can even include link:./configs/home-manager[those same home-manager users] in NixOS systems smoothly.
|
||||
|
||||
* 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.
|
||||
* OK, OK, deploy EVERYTHING for more than one system with as much customizability and integration with other components as possible (I said this already, right?).
|
||||
Right now, we will quickly list them like so...
|
||||
|
||||
* 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 https://foo-dogsquared.github.io/nixos-config/04-nixos-modules/04-host-specific-modules/[host-specific modules] and https://foo-dogsquared.github.io/nixos-config/05-home-manager/#_user_specific_modules[user-specific modules], respectively.
|
||||
** We have NixVim where we can include link:./configs/nixvim[those same NixVim configs] into home-manager configs and NixOS systems.
|
||||
** We can also include link:./configs/disko/[our Disko configurations] to NixOS systems to quickly include filesystem entries while being usable in `disko` CLI.
|
||||
|
||||
* It has its own https://foo-dogsquared.github.io/nixos-config[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).
|
||||
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 footnote:[Speaking of which, I also have some other Nix-related projects stored in this very repo.].
|
||||
By virtue of being a monorepo AND a personal project, this is basically a platform for me to experiment ANY Nix-related shtick whether be it designing a new NixOS module to be upstreamed at some point or developing an entirely new experimental Nix app for generating a custom lockfile because Nix flakes is a bit of an ass.
|
||||
|
||||
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).
|
||||
Anyways, this project also has a dedicated website at {docs_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/`].
|
||||
|
||||
|
||||
@ -71,7 +87,7 @@ disko --mode disko [--arg disk "/dev/nvme0n1"] --flake {canonical_flake_url}#ni-
|
||||
nixos-install --flake {canonical_flake_url}#ni-x86_64-linux
|
||||
----
|
||||
|
||||
And voila!
|
||||
And voilà!
|
||||
You should have my desktop configuration installed perfectly working (assuming no interruptions or crashes went while installing my desktop config).
|
||||
|
||||
However, it should also be barely usable since there are a couple of missing components that are needed such as the private keys for the desktop which is required for certain tasks such as backup task with Borg among other things.
|
||||
@ -81,7 +97,7 @@ However, it should also be barely usable since there are a couple of missing com
|
||||
|
||||
== Using the flake
|
||||
|
||||
If you want to use the flake as part of the flake inputs, you can simply include it in `flake.nix`.
|
||||
If you want to use the flake as part of the flake inputs for some reason, you can simply include it in your `flake.nix`.
|
||||
|
||||
[source, nix]
|
||||
----
|
||||
@ -98,7 +114,8 @@ 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.
|
||||
THERE'S NO STABILITY PROMISE HERE!
|
||||
If you're one of the unfortunate users for whatever reason, sorry but I'm afraid there's no such word as "stability" in this project's dictionary (or most Nix projects, really ;p).
|
||||
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.
|
||||
@ -153,6 +170,15 @@ Sudden changes can happen at any point.
|
||||
|
||||
|
||||
|
||||
== Acknowledgments
|
||||
|
||||
This has been moved into its own dedicated page at the website.
|
||||
But still, we'll list it here.
|
||||
|
||||
include::./docs/content/en-US/08-acknowledgement/index.adoc[tag=acknowledgement]
|
||||
|
||||
|
||||
|
||||
== Copyright
|
||||
|
||||
This project is licensed under MIT license.
|
||||
|
Loading…
Reference in New Issue
Block a user