mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-02-07 06:19:00 +00:00
Clean up files
This commit is contained in:
parent
2968f2f29f
commit
1d7f318696
3
.github/workflows/iso.yml
vendored
3
.github/workflows/iso.yml
vendored
@ -18,13 +18,14 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
nix run github:nix-community/nixos-generators/296067b9c7a172d294831dec89d86847f30a7cfc -- --flake .#bootstrap --format iso --out-link result
|
nix run github:nix-community/nixos-generators/296067b9c7a172d294831dec89d86847f30a7cfc -- --flake .#bootstrap --format iso --out-link result
|
||||||
- name: Create release
|
- name: Create release
|
||||||
|
if: ${{ github.ref == "refs/heads/master" }}
|
||||||
id: create-release
|
id: create-release
|
||||||
uses: marvinpinto/action-automatic-releases@v1.2.1
|
uses: marvinpinto/action-automatic-releases@v1.2.1
|
||||||
with:
|
with:
|
||||||
repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
automatic_release_tag: latest
|
automatic_release_tag: latest
|
||||||
prerelease: true
|
prerelease: true
|
||||||
title: Pre-release development
|
title: Latest release
|
||||||
files:
|
files:
|
||||||
result/iso/bootstrap-*.iso
|
result/iso/bootstrap-*.iso
|
||||||
|
|
||||||
|
36
README.adoc
36
README.adoc
@ -9,10 +9,22 @@ Here is the result.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
== Installation
|
== Getting started
|
||||||
|
|
||||||
|
Hey there, fellow traveler!
|
||||||
|
You've fell into the rabbit hole we call Nix where it leads to other rabbit holes such as functional package management, reproducibility, declarative systems, and immutable operating systems.
|
||||||
|
|
||||||
|
This is one of the many tickets to that rabbit hole, allow me to be your guide in this mark:[painful] wonderful declarative journey.
|
||||||
|
Hope to see you on the other side!
|
||||||
|
|
||||||
|
|
||||||
|
=== Installation
|
||||||
|
|
||||||
Since this uses Nix flakes, you should have Nix v2.4 and above installed.
|
Since this uses Nix flakes, you should have Nix v2.4 and above installed.
|
||||||
|
|
||||||
|
If you're going to install one of my NixOS configs, be sure to download the unstable versions from link:https://releases.nixos.org/?prefix=nixos/unstable/[their release page].
|
||||||
|
As an additional option, you can also use link:https://github.com/foo-dogsquared/nixos-config/releases/tag/latest[my personalized NixOS installers] which is primarily intended for me configs.
|
||||||
|
|
||||||
This primarily uses Nix flakes so you can have a preview of what's available in my config.
|
This primarily uses Nix flakes so you can have a preview of what's available in my config.
|
||||||
|
|
||||||
[source, shell]
|
[source, shell]
|
||||||
@ -27,9 +39,7 @@ To install it, run the `nixos-install --flake github:foo-dogsquared/nixos-config
|
|||||||
TIP: If you found some error regarding something in restricted mode, you can run the installation with `--impure` flag (i.e., `nixos-install --impure --flake github:foo-dogsquared/nixos-config#ni`).
|
TIP: If you found some error regarding something in restricted mode, you can run the installation with `--impure` flag (i.e., `nixos-install --impure --flake github:foo-dogsquared/nixos-config#ni`).
|
||||||
|
|
||||||
|
|
||||||
|
=== What's in my flake?
|
||||||
|
|
||||||
== What's in my flake?
|
|
||||||
|
|
||||||
You can see the full details with `nix flake show`.
|
You can see the full details with `nix flake show`.
|
||||||
As a helpful summary, here's what my flake should contain sorting from the most interesting and helpful outputs to the most boring and unnecessary.
|
As a helpful summary, here's what my flake should contain sorting from the most interesting and helpful outputs to the most boring and unnecessary.
|
||||||
@ -53,7 +63,6 @@ footnote:[This is more useful than my NixOS modules.]
|
|||||||
It can be used as additional modules for your own NixOS config in case you want to use mine for whatever reason.
|
It can be used as additional modules for your own NixOS config in case you want to use mine for whatever reason.
|
||||||
footnote:[I don't know why did I put it there but eh...]
|
footnote:[I don't know why did I put it there but eh...]
|
||||||
|
|
||||||
|
|
||||||
* `templates` which contains my templates.
|
* `templates` which contains my templates.
|
||||||
Though, these are just templates mostly for my own purposes so it is not as useful as the other outputs.
|
Though, these are just templates mostly for my own purposes so it is not as useful as the other outputs.
|
||||||
|
|
||||||
@ -67,9 +76,22 @@ It's just there for convenience purposes.
|
|||||||
It's another unnecessary export but it's there.
|
It's another unnecessary export but it's there.
|
||||||
|
|
||||||
|
|
||||||
|
=== The remote repo
|
||||||
|
|
||||||
|
For a complete overkill, we use a CI to further the configuration abomination.
|
||||||
|
It uses GitHub workflows to enable things such as...
|
||||||
|
|
||||||
|
* Automatically building link:./pkgs[my custom packages] and sending them to my binary cache to easily distribute it for others.
|
||||||
|
* Building my personalized NixOS installers and link:https://github.com/foo-dogsquared/nixos-config/releases[making a release out of it].
|
||||||
|
* Testing the flake outputs (in progress lel).
|
||||||
|
|
||||||
|
|
||||||
== Project structure
|
=== Project structure
|
||||||
|
|
||||||
|
Last and foremost, we have the project directory — the environment you'll be living in for the next year, tinkering your Nix configs.
|
||||||
|
.
|
||||||
|
It is required to be familiar with the workspace, after all.
|
||||||
|
As previously mentioned, my configuration takes a lot of cues from link:https://github.com/divnix/devos[devos] (which is unfortunately is a lot to take if you're just beginning to grok Nix as a whole).
|
||||||
|
|
||||||
My NixOS config should look like the following:
|
My NixOS config should look like the following:
|
||||||
|
|
||||||
@ -89,6 +111,8 @@ nixos-config
|
|||||||
└── README.adoc
|
└── README.adoc
|
||||||
----
|
----
|
||||||
|
|
||||||
|
Most of the said folders are related to a flake output attribute, see <<_whats_in_my_flake>> for more details.
|
||||||
|
|
||||||
* link:./hosts/[`./hosts/`] contain machine-specific configuration.
|
* link:./hosts/[`./hosts/`] contain machine-specific configuration.
|
||||||
This usually configures like the hardware setup, timezone, and users.
|
This usually configures like the hardware setup, timezone, and users.
|
||||||
Host configurations are also exported in the flakes in `outputs.nixosConfigurations`.
|
Host configurations are also exported in the flakes in `outputs.nixosConfigurations`.
|
||||||
|
@ -11,7 +11,7 @@ Ideally, it should be made minimal as much as possible considering you also have
|
|||||||
|
|
||||||
The host configurations placed here most likely use the link:../modules/nixos[custom NixOS modules].
|
The host configurations placed here most likely use the link:../modules/nixos[custom NixOS modules].
|
||||||
The custom modules shouldn't be imported manually from the host.
|
The custom modules shouldn't be imported manually from the host.
|
||||||
In the case for our link:../flake.nix[flake configuration], the importing of modules are already taken care of — specifically through `mkHost` from link:../lib/flake-utils[`../lib/flake-utils`] (see the linked file for the implementation).
|
In the case for our link:../flake.nix[flake configuration], the importing of modules are already taken care of — specifically through `mkHost` from link:../lib/flake-utils.nix[`../lib/flake-utils.nix`] (see the linked file for the implementation).
|
||||||
|
|
||||||
It is best practice to assume the host configurations make use of the link:../modules/nixos[custom NixOS modules], link:../pkgs[custom packages], and the flake inputs.
|
It is best practice to assume the host configurations make use of the link:../modules/nixos[custom NixOS modules], link:../pkgs[custom packages], and the flake inputs.
|
||||||
In other words, always pay attention to link:../flake.nix[`../flake.nix`].
|
In other words, always pay attention to link:../flake.nix[`../flake.nix`].
|
||||||
|
@ -115,7 +115,13 @@ in {
|
|||||||
automatic = true;
|
automatic = true;
|
||||||
persistent = true;
|
persistent = true;
|
||||||
dates = "weekly";
|
dates = "weekly";
|
||||||
options = "--delete-older-than 21d";
|
options = "--delete-older-than 7d";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Run the optimizer.
|
||||||
|
nix.optimise = {
|
||||||
|
automatic = true;
|
||||||
|
dates = [ "daily" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Clear logs that are more than a month old weekly.
|
# Clear logs that are more than a month old weekly.
|
||||||
|
Loading…
Reference in New Issue
Block a user