My Nix flake for both my desktop and homelab
1{
2 description = "Tim's NixOS configuration";
3
4 inputs = {
5 nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
6 sops-nix.url = "github:Mic92/sops-nix";
7 nix-minecraft.url = "github:Infinidoge/nix-minecraft";
8 vpn-confinement.url = "github:Maroka-chan/VPN-Confinement";
9 tealfm-piper.url = "github:teal-fm/piper";
10
11 # Firebot
12 firebot = {
13 url = "git+https://codeberg.org/ky-bean/firebot.nix";
14 inputs.nixpkgs.follows = "nixpkgs";
15 };
16
17 # GRUB2 Themes
18 grub2-themes = {
19 type = "github";
20 owner = "vinceliuice";
21 repo = "grub2-themes";
22 inputs.nixpkgs.follows = "nixpkgs";
23 };
24
25 # Isabel's packages for pds-gatekeeper and pds-dash
26 tgirlpkgs = {
27 type = "github";
28 owner = "tgirlcloud";
29 repo = "pkgs";
30 inputs.nixpkgs.follows = "nixpkgs";
31 };
32
33 # Spicetify
34 spicetify-nix = {
35 type = "github";
36 owner = "Gerg-L";
37 repo = "spicetify-nix";
38 inputs.nixpkgs.follows = "nixpkgs";
39 };
40
41 # Zen Browser
42 zen-browser = {
43 type = "github";
44 owner = "0xc000022070";
45 repo = "zen-browser-flake";
46 inputs.nixpkgs.follows = "nixpkgs";
47 };
48 };
49
50 outputs =
51 inputs@{
52 self,
53 nixpkgs,
54 zen-browser,
55 grub2-themes,
56 nix-minecraft,
57 firebot,
58 tealfm-piper,
59 ...
60 }:
61 {
62 nixosConfigurations = {
63 # Desktop machine
64 desktop = nixpkgs.lib.nixosSystem {
65 system = "x86_64-linux";
66 specialArgs = { inherit inputs; };
67 modules = [
68 { nixpkgs.overlays = [ firebot.overlays.default ]; }
69 grub2-themes.nixosModules.default
70 inputs.sops-nix.nixosModules.sops
71 inputs.spicetify-nix.nixosModules.default
72 ./hosts/desktop
73 ./modules/default.nix
74 ./modules/desktop.nix
75 ./modules/development.nix
76 ./users/tim.nix
77 ];
78 };
79
80 # Nucbox server
81 nucbox = nixpkgs.lib.nixosSystem {
82 system = "x86_64-linux";
83 specialArgs = { inherit inputs; };
84 modules = [
85 inputs.sops-nix.nixosModules.sops
86 inputs.vpn-confinement.nixosModules.default
87 tealfm-piper.nixosModules.default
88 ./hosts/nucbox
89 ./modules/default.nix
90 ./modules/transmission.nix
91 ./users/tim.nix
92 ];
93 };
94 };
95 };
96}