Skip to content

Commit

Permalink
refactor: remove mkHosts/mkHomes helpers
Browse files Browse the repository at this point in the history
These helpers introduced too much complexity and forced the home configuration to be defined entirely separately from the host configuration
  • Loading branch information
nikitawootten committed May 22, 2024
1 parent 72e7c15 commit 02666be
Show file tree
Hide file tree
Showing 41 changed files with 218 additions and 435 deletions.
7 changes: 0 additions & 7 deletions .info
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ hosts/hades/
Dell PowerEdge R720XD, primary home server
hosts/iris/
Raspberry Pi 4, secondary home server
hosts/olympus/
Dell PowerEdge R610, currently unused
hosts/raspberrypi4/
Raspberry Pi 4 bootstrap configuration
hosts/voyager/
Framework 13 (11th Gen Intel), primary laptop

Expand All @@ -30,9 +26,6 @@ homeModules/personal/
Makes every computer it infects feel like home
Note: Look around before using unless you want to become me

lib/
NixOS and Home-Manager configuration helpers
Note: currently being phased out

secrets/
Age secrets managed by AgeNix
15 changes: 8 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,14 @@ test: ## Test flake outputs with "nix flake check"
update: ## Update "flake.lock"
$(NIX_CMD) flake update

.PHONY: switch-home
switch-home: ## Switch local home-manager config
$(NIX_CMD) develop --command home-manager switch --flake .

.PHONY: build-home
build-home: ## Build local home-manager config
$(NIX_CMD) develop --command home-manager build --flake .
# NOTE: These targets are not used atm
# .PHONY: switch-home
# switch-home: ## Switch local home-manager config
# $(NIX_CMD) develop --command home-manager switch --flake .
#
# .PHONY: build-home
# build-home: ## Build local home-manager config
# $(NIX_CMD) develop --command home-manager build --flake .

.PHONY: switch-nixos
switch-nixos: ## Switch local NixOS config
Expand Down
8 changes: 0 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ $ make directory
│ ⎧ Misc. config, dotfiles, applications, and hacky utilities
│ ⎨ Makes every computer it infects feel like home
│ ⎩ Note: Look around before using unless you want to become me
├── homes
├── hostModules
│ ├── dslr-webcam
│ │ { Module I use to configure my Olympus OM-D camera as a webcam
Expand All @@ -52,15 +51,8 @@ $ make directory
│ │ { Dell PowerEdge R720XD, primary home server
│ ├── iris
│ │ { Raspberry Pi 4, secondary home server
│ ├── olympus
│ │ { Dell PowerEdge R610, currently unused
│ ├── raspberrypi4
│ │ { Raspberry Pi 4 bootstrap configuration
│ └── voyager
│ { Framework 13 (11th Gen Intel), primary laptop
├── lib
│ ⎧ NixOS and Home-Manager configuration helpers
│ ⎩ Note: currently being phased out
├── packages
│ ├── oscal-cli
│ ├── oscal-deep-diff
Expand Down
4 changes: 1 addition & 3 deletions darwinHosts/persephone/nikita.nix
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
{ self, lib, config, pkgs, keys, ... }: {
{ self, keys, ... }: {
imports = [ self.homeModules.personal ];

personal.vscode.enable = true;
personal.cluster-admin.enable = true;

home.stateVersion = "23.11";

personal.git.signingKey = keys.nikita_persephone;
}
28 changes: 6 additions & 22 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -68,28 +68,14 @@

# Args passed to home-manager and nixos modules
specialArgs = { inherit self inputs secrets keys; };

homes = import ./homes {
inherit specialArgs;
lib = self.lib;
};
in {
# Contains top-level helpers for defining home-manager, nixos, and packaging configurations
lib = import ./lib { inherit nixpkgs home-manager; };

homeModules = import ./homeModules;
homeConfigurations = homes.homeConfigurations;

nixosModules = import ./hostModules;
nixosConfigurations = import ./hosts {
inherit specialArgs;
lib = self.lib;
homeConfigs = homes.nixosHomeModules;
};
nixosConfigurations = import ./hosts { inherit specialArgs nixpkgs; };

darwinConfigurations =
import ./darwinHosts { inherit darwin specialArgs; };

darwinModules = import ./darwinModules;
} // flake-utils.lib.eachDefaultSystem (system: rec {
pkgs = import nixpkgs {
Expand All @@ -114,13 +100,11 @@
];
};

checks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
nixfmt.enable = true;
nixfmt.package = pkgs.nixfmt-classic;
};
checks.pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
nixfmt.enable = true;
nixfmt.package = pkgs.nixfmt-classic;
};
};

Expand Down
23 changes: 0 additions & 23 deletions homeModules/personal/allowUnfreeRegexes.nix

This file was deleted.

6 changes: 4 additions & 2 deletions homeModules/personal/default.nix
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{ lib, ... }: {
{ inputs, lib, ... }: {
imports = [
./gnome
./allowUnfreeRegexes.nix
./cluster-admin.nix
./darwin.nix
./direnv.nix
Expand All @@ -20,8 +19,11 @@
./upgrade-diff.nix
./vscode.nix
./zellij.nix
inputs.nix-index-database.hmModules.nix-index
];

programs.home-manager.enable = lib.mkForce true;

personal.direnv.enable = lib.mkDefault true;
personal.editor.enable = lib.mkDefault true;
personal.git.enable = lib.mkDefault true;
Expand Down
3 changes: 0 additions & 3 deletions homeModules/personal/editor.nix
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@ in {
VISUAL = "hx";
};

# Required for `vscode-langservers-extracted
allowedUnfreePackagesRegexs = [ "vscode" ];

home.packages = with pkgs; [
# provides LSPs for CSS, SCSS, HTML, and JSON
nodePackages.vscode-langservers-extracted
Expand Down
1 change: 0 additions & 1 deletion homeModules/personal/sectools.nix
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ in {
};

config = lib.mkIf cfg.enable {
allowedUnfreePackagesRegexs = [ "burpsuite" ];
nixpkgs.config.allowUnfree = true;

home.packages = with pkgs;
Expand Down
23 changes: 0 additions & 23 deletions homes/default.nix

This file was deleted.

15 changes: 0 additions & 15 deletions homes/[email protected]

This file was deleted.

21 changes: 0 additions & 21 deletions homes/[email protected]

This file was deleted.

18 changes: 0 additions & 18 deletions homes/[email protected]

This file was deleted.

7 changes: 0 additions & 7 deletions homes/[email protected]

This file was deleted.

4 changes: 4 additions & 0 deletions hostModules/homelab/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ in {
./observability
./acme.nix
./homepage.nix
./ntfs.nix
./vpn.nix
inputs.nix-topology.nixosModules.default
];
Expand Down Expand Up @@ -60,5 +61,8 @@ in {
readOnly = true;
};
};

homelab.ntfs.enable = lib.mkDefault true;
homelab.homepage.enable = lib.mkDefault true;
};
}
26 changes: 20 additions & 6 deletions hostModules/homelab/media/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,20 @@ in {
description = "Homepage configuration for the media stack";
default = { };
};
enableSambaShare =
lib.mkEnableOption "Enable Samba share for media storage";
};

config = lib.mkIf cfg.enable {
users.groups.${cfg.group} = { };

homelab.media.jellyfin.enable = true;
homelab.media.transmission.enable = true;
homelab.media.prowlarr.enable = true;
homelab.media.radarr.enable = true;
homelab.media.sonarr.enable = true;
homelab.media.jellyseerr.enable = true;
homelab.media.jellyfin.enable = lib.mkDefault true;
homelab.media.transmission.enable = lib.mkDefault true;
homelab.media.prowlarr.enable = lib.mkDefault true;
homelab.media.radarr.enable = lib.mkDefault true;
homelab.media.sonarr.enable = lib.mkDefault true;
homelab.media.jellyseerr.enable = lib.mkDefault true;
homelab.media.enableSambaShare = lib.mkDefault true;

services.homepage-dashboard.services-declarative.${cfg.homepageCategory} = {
priority = lib.mkDefault 4;
Expand All @@ -54,5 +57,16 @@ in {
disk = cfg.storageRoot;
};
}];

services.samba.shares = lib.mkIf cfg.enableSambaShare {
media = {
path = cfg.storageRoot;
writable = true;
createMask = "0775";
directoryMask = "0775";
"force group" = cfg.group;
comment = "Media storage";
};
};
};
}
34 changes: 34 additions & 0 deletions hostModules/homelab/ntfs.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Adopted from https://gist.github.com/vy-let/a030c1079f09ecae4135aebf1e121ea6
{ lib, config, pkgs, ... }:
let cfg = config.homelab.ntfs;
in {
options.homelab.ntfs = { enable = lib.mkEnableOption "Enable NTFS config"; };

config = lib.mkIf cfg.enable {
services.samba = {
enable = true;
package = pkgs.samba4Full;
openFirewall = true;
extraConfig = ''
server smb encrypt = required
# ^^ Note: Breaks `smbclient -L <ip/host> -U%` by default, might require the client to set `client min protocol`?
server min protocol = SMB3_00
'';
};

services.avahi = {
enable = true;
openFirewall = true;
publish.enable = true;
publish.userServices = true;
nssmdns4 = true;
};

services.samba-wsdd = {
enable = true;
openFirewall = true;
};

networking.firewall.allowPing = true;
};
}
4 changes: 2 additions & 2 deletions hostModules/personal/adb.nix
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{ lib, config, username, ... }:
{ lib, config, ... }:
let cfg = config.personal.adb;
in {
options.personal.adb = { enable = lib.mkEnableOption "adb"; };

config = lib.mkIf cfg.enable {
programs.adb.enable = true;
users.users.${username}.extraGroups = [ "adbusers" ];
users.users.${config.personal.user.name}.extraGroups = [ "adbusers" ];
};
}
Loading

0 comments on commit 02666be

Please sign in to comment.