NixOS is the endgame to Distro Hopping
Go to file
matt1432 29c32c8e49
All checks were successful
Discord / discord commits (push) Successful in 36s
feat(servers): add my module for declaring jellyfin config
2024-03-05 09:27:11 -05:00
.forgejo/workflows feat(servers): test github action 2024-01-11 17:22:35 -05:00
common refactor(nvidia): make global module for enabling nvidia easily 2024-03-03 16:13:56 -05:00
devices feat(servers): add my module for declaring jellyfin config 2024-03-05 09:27:11 -05:00
home refactor(firefox-gx): fetch src from flake inputs 2024-02-26 14:38:51 -05:00
modules refactor: get rid of isNvidia 2024-03-03 17:34:21 -05:00
.gitignore feat(ags): add direnv 2024-03-01 01:34:42 -05:00
flake.lock feat(servers): add my module for declaring jellyfin config 2024-03-05 09:27:11 -05:00
flake.nix feat(servers): add my module for declaring jellyfin config 2024-03-05 09:27:11 -05:00
LICENSE.md chore: add license 2024-01-18 11:01:09 -05:00
README.md docs: add more info in main README 2024-01-18 10:40:59 -05:00
updateSha.sh refactor: rename vars.user to vars.mainUser 2024-01-09 13:13:04 -05:00

My NixOS configs

Ags

You might find it weird that most of my config is written in TypeScript. That's because all my desktops run AGS for UI. Click on this to see my configuration.

About

General

This repo is the complete configuration of machines I own, running NixOS or Nix. I tend to mix Home-Manager and NixOS a lot to make my custom modules by using my global vars system explained here

Flake Location

This git repo will always be located at /home/${mainUser}/.nix and symlinked to /etc/nixos to have everything where NixOS tools expect things to be.

ie.

sudo rm -r /etc/nixos
sudo ln -sf /home/matt/.nix /etc/nixos

Flake Outputs

Output Description
nixosConfigurations devices' + ISO's configurations
nixOnDroidConfigurations.default Nix-On-Droid's configuration
formatter I have yet to know if this has any uses but I format with alejandra
devShells.default A dev shell to build an ISO from the live-image nixosConfiguration

Flake Inputs

I prefer using a more descriptive format for my inputs like so:

nixpkgs = {
  type = "github";
  owner = "NixOS";
  repo = "nixpkgs";

  # Branch name
  ref = "nixos-unstable";

  # Pin this input to a specific commit
  rev = "842d9d80cfd4560648c785f8a4e6f3b096790e19";
};

to make it more clear what is what in the flake URI

I also have a long list of inputs with flake = false; because it makes it easier to update non-flake custom packages or overlays to have the latest git. I make sure to end the names of these inputs with src to make it clear what they are.

Secrets

All my secrets are in a private git repo that makes use of sops-nix. I only use secrets stored in JSON and generate .sops.yaml from .sops.nix:

let
  wim = "somekey";
  oksys = "somekey2";
in {
  creation_rules = [
    {
      path_regex = "secrets/[^/]+\\.(yaml|json|env|ini)$";
      key_groups = [
        {
          age = [wim oksys];
        }
      ];
    }
  ];
}

which is then converted to .sops.yaml using remarshal and this shell command:

nix eval --json --file ./.sops.nix | remarshal --if json --of yaml > .sops.yaml

TLDR: I hate YAML