Compare commits

...

114 Commits

Author SHA1 Message Date
69d16e38a8 nix-on-droid only goes to 24.05 2026-01-21 12:24:27 -06:00
e86a839bd7 rename options 2026-01-21 09:42:51 -06:00
65f878b20d prepare android 2026-01-21 09:27:44 -06:00
b893475db6 prepare android 2026-01-21 09:22:22 -06:00
1ada91d5ef reorganize 2026-01-20 17:34:34 -06:00
42bf08084e reorganize and fix searxng 2026-01-20 17:30:56 -06:00
50d192c809 reorganize 2026-01-20 13:34:12 -06:00
c028bad2a6 fix portainer domain 2026-01-20 12:44:01 -06:00
9b218f88fa fix traefik docker 2026-01-20 12:34:45 -06:00
276823d2aa fix traefik docker 2026-01-20 11:53:31 -06:00
ab47a1ea52 fix traefik docker 2026-01-20 11:48:40 -06:00
4a7615b50c fix traefik docker 2026-01-20 11:40:43 -06:00
ea37cbe865 no error 2026-01-20 11:17:08 -06:00
8cc337ca0e no error 2026-01-20 11:16:46 -06:00
f99cb4f761 try docker provider for traefik 2026-01-20 11:15:55 -06:00
6abef03321 networking 2026-01-19 19:46:45 -06:00
f584fb2e32 networking 2026-01-19 19:40:29 -06:00
b7763031dd networking 2026-01-19 19:36:09 -06:00
761624c21c networking 2026-01-19 17:53:14 -06:00
43d87cb6b3 networking 2026-01-19 17:42:51 -06:00
be310b9ae7 docker network 2026-01-19 17:25:19 -06:00
39fb19f62e setup internal services 2026-01-19 16:06:23 -06:00
f7041607d7 try 2026-01-19 11:10:07 -06:00
6ef3081bd1 try 2026-01-19 10:46:19 -06:00
c69e8ed0ef help 2026-01-19 10:35:43 -06:00
9e3023c26b help 2026-01-19 10:33:23 -06:00
3a6c6673eb help 2026-01-19 10:08:09 -06:00
c6baa8fc5b try pihole network 2026-01-19 09:13:22 -06:00
9a89b1ee6a try pihole network 2026-01-19 09:10:54 -06:00
eda60a7fec try pihole network 2026-01-19 08:49:42 -06:00
e69f8348be try pihole network 2026-01-19 08:42:11 -06:00
23b4035da1 try pihole network 2026-01-19 01:09:51 -06:00
02427aca71 try netbird + pihole 2026-01-19 00:42:13 -06:00
03274e6e46 try netbird + pihole 2026-01-19 00:35:11 -06:00
bf994f7e13 try compartmental traefik 2026-01-18 23:59:14 -06:00
3696bab033 try compartmental traefik 2026-01-18 23:16:54 -06:00
ea2a03037a try compartmental traefik 2026-01-18 23:14:32 -06:00
0947941c11 dns trouble 2026-01-18 22:22:48 -06:00
c48ecab2bd dns trouble 2026-01-18 22:11:32 -06:00
55b1cae63b set pihole as sole dns 2026-01-18 21:34:28 -06:00
76a072d274 try pihole as sole dns 2026-01-18 19:41:19 -06:00
346907fce4 try pihole as sole dns 2026-01-18 18:58:59 -06:00
86810b6105 fix remote build 2026-01-18 18:27:02 -06:00
eba2b6e52f fix remote build 2026-01-18 18:23:45 -06:00
96e4476934 fix remote build 2026-01-18 18:22:40 -06:00
560f36b18e packages 2026-01-18 17:22:49 -06:00
0c9d45ad39 packages 2026-01-18 17:17:23 -06:00
e39eeac850 packages 2026-01-18 17:14:48 -06:00
46cc39c91f options 2026-01-18 17:11:03 -06:00
9f7b03679a options 2026-01-18 17:10:23 -06:00
96ab25c6ad move options 2026-01-18 17:08:05 -06:00
d530844886 docker ollama tune 2026-01-18 14:34:43 -06:00
8bb52d7df6 docker ollama tune 2026-01-18 14:31:50 -06:00
05d4280ad6 docker ollama debug 2026-01-18 14:17:46 -06:00
90b99dbf19 docker ollama debug 2026-01-18 14:13:22 -06:00
f96f7182c4 docker ollama debug 2026-01-18 14:08:35 -06:00
bd8b5f1327 docker perms 2026-01-18 13:40:15 -06:00
d13b59e7ac docker ollama 2026-01-18 13:34:23 -06:00
69b47de1fc docker pihole debug 2026-01-18 12:42:14 -06:00
06cb547197 docker pihole debug 2026-01-18 12:32:47 -06:00
f0ec952442 docker pihole enable 2026-01-18 12:23:46 -06:00
2fab28204d docker pihole 2026-01-18 12:21:50 -06:00
9b32b8a6db option 2026-01-18 11:01:24 -06:00
71e6fbcef4 spellcheck 2026-01-18 10:57:51 -06:00
1b140efc19 mkIf nonsense 2026-01-18 10:57:03 -06:00
8c21db0a08 try 2026-01-18 10:54:34 -06:00
d5a7657410 spellcheck 2026-01-18 10:47:22 -06:00
e5b8871d4e try docker 2026-01-18 10:45:33 -06:00
a6808a984e try 2026-01-17 10:24:00 -06:00
e5f6a4bc69 dns 2026-01-17 10:19:35 -06:00
eb857b8d03 timeout 2026-01-17 10:13:32 -06:00
712aaab720 spellcheck 2026-01-17 10:10:47 -06:00
778433b318 try networkd again 2026-01-17 10:08:11 -06:00
7440ef91b4 try preStart 2026-01-16 20:37:49 -06:00
265a526c8b try networkd 2026-01-16 19:15:29 -06:00
6cd5770452 pihole and dots 2026-01-16 18:33:53 -06:00
66d2dde112 try cname 2026-01-16 07:42:43 -06:00
7974a95659 pihole please 2026-01-15 23:37:22 -06:00
8b605d692f pihole please 2026-01-15 23:23:27 -06:00
b911a7931e pihole? 2026-01-15 23:16:49 -06:00
574b2c058b pihole? 2026-01-15 23:11:54 -06:00
f4f69a4a25 pihole? 2026-01-15 23:07:10 -06:00
640c5911f6 ollama env var 2026-01-15 21:20:53 -06:00
be74b8caaf test dns 2026-01-15 21:05:12 -06:00
be199acad3 rewrite colorPrefix 2026-01-15 19:45:55 -06:00
3335542d54 rewrite colorPrefix 2026-01-15 19:39:46 -06:00
e008cd4d89 don't use bs nameservers 2026-01-15 19:23:52 -06:00
4dbffa89c2 help 2026-01-15 19:16:24 -06:00
c89816839a help 2026-01-15 19:06:50 -06:00
b5b1e07f3a option 2026-01-15 18:53:34 -06:00
340ea873ce option 2026-01-15 18:51:43 -06:00
1fa30bdb94 option 2026-01-15 18:49:46 -06:00
f480a1f8c9 lots 2026-01-15 18:47:31 -06:00
fd3f3639bd try 2026-01-14 15:49:11 -06:00
be4f0c5e6b try 2026-01-14 15:28:25 -06:00
46f546a0e0 ssh key 2026-01-12 15:24:08 -06:00
22535fbbaf ollama gpu 2026-01-11 22:25:28 -06:00
10cf6bba46 fix homebox 2026-01-11 21:44:12 -06:00
f07c4ae0d3 fix homebox 2026-01-11 21:02:39 -06:00
c1f8c704b3 fix homebox 2026-01-11 20:43:00 -06:00
0aa7f459dd update machines 2026-01-11 20:32:16 -06:00
15dfb83bb7 propare homebox 2026-01-11 18:08:00 -06:00
6b8a9a2152 propare homebox 2026-01-11 17:45:06 -06:00
482f1b5912 propare homebox 2026-01-11 17:35:19 -06:00
78277afa8a propare homebox 2026-01-11 17:33:24 -06:00
680454c6b2 propare homebox 2026-01-11 17:32:04 -06:00
ec1a12e2a1 propare homebox 2026-01-11 17:24:24 -06:00
960af2d43b propare homebox 2026-01-11 17:19:52 -06:00
a7e636e7a2 propare homebox 2026-01-11 17:18:05 -06:00
099b8e40b2 prepare homebox 2026-01-11 17:15:15 -06:00
32bf3e0bc0 propare homebox 2026-01-11 17:14:29 -06:00
905de63f78 lock 2026-01-11 14:26:13 -06:00
c977f9d3a2 proper branch stuff 2026-01-11 14:24:50 -06:00
bc666ecab5 git tomfoolery 2026-01-11 14:23:31 -06:00
147 changed files with 3821 additions and 980 deletions

View File

@@ -3,28 +3,6 @@ keys:
- &laptop age1yqgyp2uxz4lzrc9f9ka0mfjl5fr6ahf8nf24nlmran2wulg6fpvq9hyp9q
- &android age12pnf36uqesjmy3e0lythfnpwam3zg5mv8m936fc4jphy4ces2fdqwn0s74
creation_rules:
- path_regex: homebox/secrets.yaml$
key_groups:
- age:
- *homebox
- path_regex: laptop/secrets.yaml$
key_groups:
- age:
- *laptop
- path_regex: pi4/secrets.yaml$
key_groups:
- age:
- *laptop
- path_regex: live/secrets.yaml$
key_groups:
- age:
- *laptop
- path_regex: nathan/secrets.yaml$
key_groups:
- age:
- *laptop
- *homebox
- *android
- path_regex: system/secrets.yaml$
key_groups:
- age:

44
flake.lock generated
View File

@@ -61,11 +61,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1767585814,
"narHash": "sha256-7iodv57Ppq05AHVKnS9/IdhhgBYTVpTDZmz2u2enr/E=",
"lastModified": 1768150501,
"narHash": "sha256-601j0FWA9UzEaDF3xj+12n94bkuVF/zkpLIOt6EfRK0=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "66bfeb87deb83ca2f9fa2045704b72de52c6433a",
"rev": "1b848102f204ce846360009d193ea6d0280c814a",
"type": "gitlab"
},
"original": {
@@ -212,11 +212,11 @@
]
},
"locked": {
"lastModified": 1767619900,
"narHash": "sha256-KpoCBPvwHz3gAQtIUkohE2InRBFK3r0/FM6z5SPWfvM=",
"lastModified": 1767910483,
"narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "6bd04da47cfb48dfd15eabf08364b78ad894f5b2",
"rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c",
"type": "github"
},
"original": {
@@ -301,11 +301,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1767654014,
"narHash": "sha256-1RG4xtr1FOX7mtSGBR9BcCsTrlRkXbygPaCSFNdT3bs=",
"lastModified": 1768144432,
"narHash": "sha256-lLV0egdN9VF6BjhG6GVEVMviFuM05XCv35YNsfLzS9w=",
"ref": "refs/heads/main",
"rev": "9817553c664b0b7f6776671383a6368c74ee8dee",
"revCount": 6789,
"rev": "fbf421df889ceff3bac08a9f4b9493def5eecc4d",
"revCount": 6805,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
@@ -584,11 +584,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1767147099,
"narHash": "sha256-395ehjdAtaqCbKmx+PhKAqnkYLvTtAzq2qzFG9qaGDw=",
"lastModified": 1767838769,
"narHash": "sha256-KCLU6SUU80tEBKIVZsBrSjRYX6kn1eVIYI3fEEqOp24=",
"owner": "Infinidoge",
"repo": "nix-minecraft",
"rev": "01f571579edd64433f97c4294137fbc366deef4b",
"rev": "4da21f019f6443f513f16af7f220ba4db1cdfc04",
"type": "github"
},
"original": {
@@ -630,11 +630,11 @@
},
"nixpkgs-us": {
"locked": {
"lastModified": 1767379071,
"narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=",
"lastModified": 1767892417,
"narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "fb7944c166a3b630f177938e478f0378e64ce108",
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"type": "github"
},
"original": {
@@ -662,11 +662,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1767480499,
"narHash": "sha256-8IQQUorUGiSmFaPnLSo2+T+rjHtiNWc+OAzeHck7N48=",
"lastModified": 1768028080,
"narHash": "sha256-50aDK+8eLvsLK39TzQhKNq50/HcXyP4hyxOYoPoVxjo=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "30a3c519afcf3f99e2c6df3b359aec5692054d92",
"rev": "d03088749a110d52a4739348f39a63f84bb0be14",
"type": "github"
},
"original": {
@@ -816,11 +816,11 @@
]
},
"locked": {
"lastModified": 1767499857,
"narHash": "sha256-0zUU/PW09d6oBaR8x8vMHcAhg1MOvo3CwoXgHijzzNE=",
"lastModified": 1768104471,
"narHash": "sha256-HdnXWQsA1EI27IJlaENUEEug58trUrh6+MT0cFiDHmY=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "ecc41505948ec2ab0325f14c9862a4329c2b4190",
"rev": "94f9cbd20f680ebb2ad6cdf39da97cbcfaedf004",
"type": "github"
},
"original": {

View File

@@ -41,7 +41,7 @@
outputs = { self, nixpkgs, home-manager, ... } @ inputs: {
profiles = let
dir = builtins.readDir ./system/profiles;
dir = builtins.readDir ./profiles;
filtered = builtins.filter (x: dir.${x} == "directory") (builtins.attrNames dir);
in (builtins.listToAttrs
(builtins.map
@@ -51,14 +51,14 @@
value = { ... }: {
imports = [
./system
./system/profiles/${name}
./profiles/${name}
];
};
})) filtered)
);
homes = let
dir = builtins.readDir ./system/users;
dir = builtins.readDir ./homes;
filtered = builtins.filter (x: dir.${x} == "directory") (builtins.attrNames dir);
in (builtins.listToAttrs
(builtins.map
@@ -67,7 +67,7 @@
value = { ... } @ exputs: {
imports = [
(./system/users/${name}/home-manager (inputs // exputs))
(./homes/${name}/home-manager (inputs // exputs))
];
};
})) filtered)

View File

@@ -4,10 +4,10 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};

View File

@@ -0,0 +1,11 @@
keys:
- &homebox age1640eg0pnmkruc89m5xguz0m8fek44fl4tzez6qwuzlz6kmapqewsp8esxd
- &laptop age1yqgyp2uxz4lzrc9f9ka0mfjl5fr6ahf8nf24nlmran2wulg6fpvq9hyp9q
- &android age12pnf36uqesjmy3e0lythfnpwam3zg5mv8m936fc4jphy4ces2fdqwn0s74
creation_rules:
- path_regex: ^secrets.yaml$
key_groups:
- age:
- *laptop
- *homebox
- *android

View File

@@ -1,10 +1,12 @@
{ config, lib, pkgs, inputs, ... }: {
imports = [
./programs
./services
./packages
./dotfiles
imports = let
dir = builtins.readDir ./.;
in (builtins.map (x: ./${x}) (builtins.filter
(file: (dir.${file} == "directory"))
(builtins.attrNames dir)
)) ++ [
inputs.sops.homeManagerModules.sops
];
options.homeconfig = with lib; {
@@ -60,7 +62,7 @@
size = 16;
};
gtk = lib.mkIf config.homeconfig.graphical {
gtk = lib.mkIf (config.homeconfig.graphical && config.homeconfig.hyprland.enable) {
enable = true;
theme.name = "Tokyonight-Dark";
theme.package = pkgs.tokyonight-gtk-theme;

View File

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

Before

Width:  |  Height:  |  Size: 1007 KiB

After

Width:  |  Height:  |  Size: 1007 KiB

View File

Before

Width:  |  Height:  |  Size: 110 MiB

After

Width:  |  Height:  |  Size: 110 MiB

View File

Before

Width:  |  Height:  |  Size: 191 KiB

After

Width:  |  Height:  |  Size: 191 KiB

View File

Before

Width:  |  Height:  |  Size: 874 KiB

After

Width:  |  Height:  |  Size: 874 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

Before

Width:  |  Height:  |  Size: 48 MiB

After

Width:  |  Height:  |  Size: 48 MiB

View File

Before

Width:  |  Height:  |  Size: 203 MiB

After

Width:  |  Height:  |  Size: 203 MiB

View File

Before

Width:  |  Height:  |  Size: 670 KiB

After

Width:  |  Height:  |  Size: 670 KiB

View File

Before

Width:  |  Height:  |  Size: 273 KiB

After

Width:  |  Height:  |  Size: 273 KiB

View File

Before

Width:  |  Height:  |  Size: 140 MiB

After

Width:  |  Height:  |  Size: 140 MiB

View File

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 3.1 MiB

View File

Before

Width:  |  Height:  |  Size: 2.8 MiB

After

Width:  |  Height:  |  Size: 2.8 MiB

View File

Before

Width:  |  Height:  |  Size: 36 MiB

After

Width:  |  Height:  |  Size: 36 MiB

View File

@@ -11,6 +11,8 @@
$font = Monospace
source = ~/.cache/wal/colors-hypr.conf
general {
hide_cursor = false
}
@@ -45,9 +47,9 @@ input-field {
outline_thickness = 3
inner_color = rgba(0, 0, 0, 0.0) # no fill
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
outer_color = $color1 $color5 100deg
check_color = $color2 $color6 120deg
fail_color = $color3 $color7 40deg
font_color = rgb(143, 143, 143)
fade_on_empty = false

View File

@@ -130,7 +130,7 @@ bind = $mainMod, V, togglefloating,
bind = $mainMod SHIFT, V, exec, hyprrun vlc
bind = , Menu, exec, hyprrun rofi -show drun -show-icons -run-command 'hyprrun {cmd}'
bind = , Menu, exec, rofi -show drun -show-icons -run-command 'hyprrun {cmd}'
bind = $mainMod, Menu, exec, hyprrun hyprpanel -q; hyprrun hyprpanel

View File

@@ -0,0 +1,112 @@
#:schema https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json
version = 2
final_space = true
console_title_template = '{{{{ .Shell }}}} in {{{{ .Folder }}}}'
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
type = 'os'
style = 'diamond'
trailing_diamond = ''
background = 'p:c1'
foreground = 'p:c12'
template = ' {{{{ .Icon }}}} '
[[blocks.segments]]
type = 'session'
style = 'diamond'
trailing_diamond = ''
background = 'p:c2'
foreground = 'p:c14'
template = '{{{{ .UserName }}}}@{{{{ .HostName }}}}'
[[blocks.segments]]
type = 'path'
style = 'diamond'
trailing_diamond = ''
background = 'p:c4'
foreground = 'p:c13'
template = '{{{{ .Path }}}}'
[blocks.segments.properties]
style = 'full'
[[blocks]]
type = 'prompt'
overflow = 'hidden'
alignment = 'right'
[[blocks.segments]]
type = 'executiontime'
style = 'diamond'
leading_diamond = ''
background = 'p:c4'
foreground = 'p:c13'
template = '{{{{ .FormattedMs }}}}'
[[blocks.segments]]
type = 'time'
style = 'diamond'
leading_diamond = ''
background = 'p:c2'
foreground = 'p:c14'
[[blocks.segments]]
type = 'shell'
style = 'diamond'
leading_diamond = ''
background = 'p:c1'
foreground = 'p:c12'
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
type = 'text'
style = 'plain'
background = 'transparent'
foreground_templates = [
"{{{{ if gt .Code 0 }}}}p:c13{{{{end}}}}",
"{{{{ if eq .Code 0 }}}}p:c14{{{{end}}}}",
]
template = "{{{{ if gt .Code 0 }}}}!❭ {{{{else}}}}❭ {{{{end}}}}"
[transient_prompt]
foreground_templates = [
"{{{{ if gt .Code 0 }}}}p:c13{{{{end}}}}",
"{{{{ if eq .Code 0 }}}}p:c14{{{{end}}}}",
]
background = 'transparent'
template = "{{{{ if gt .Code 0 }}}}!❭ {{{{else}}}}❭ {{{{end}}}}"
[secondary_prompt]
background = 'transparent'
forground = 'p:c14'
template = "❭❭ "
[palette]
c0 = "{color0}"
c1 = "{color1}"
c2 = "{color2}"
c3 = "{color3}"
c4 = "{color4}"
c5 = "{color5}"
c6 = "{color6}"
c7 = "{color7}"
c8 = "{color8}"
c9 = "{color9}"
c10 = "{color10}"
c11 = "{color11}"
c12 = "{color12}"
c13 = "{color13}"
c14 = "{color14}"
c15 = "{color15}"

View File

@@ -22,18 +22,17 @@
home.packages = with pkgs; [
inputs.disko.packages.${pkgs.stdenv.hostPlatform.system}.disko-install
kjv
openssh
sops
killall
dig
toybox
btop
zip
unzip
rsync
curl
wget
(python313.withPackages (ps: with ps; [
gpustat
numpy
@@ -65,7 +64,6 @@
cava
android-tools
neovim-remote
gcc
zulu
fastfetch
ncmpcpp
@@ -77,7 +75,7 @@
(mkIf (!config.homeconfig.minimal && config.homeconfig.graphical) {
nixpkgs.config = mkIf (!config.homeconfig.minimal) {
nixpkgs.config = {
allowUnfree = true;
};

View File

@@ -95,14 +95,14 @@
'')
(pkgs.writeShellScriptBin "colorPrefix" ''
eval "$@" &
sleep 0.4
${pkgs.pywalfox-native}/bin/pywalfox update &
pidof kitty && pkill -USR1 kitty
pidof cava && pkill -USR1 cava
pidof firefox > /dev/null && ${pkgs.pywalfox-native}/bin/pywalfox update &
pidof kitty > /dev/null && pkill -USR1 kitty
pidof cava > /dev/null && pkill -USR1 cava
for i in ''$(ls /run/user/1000 | grep nvim); do
${pkgs.neovim-remote}/bin/nvr -s --servername /run/user/1000/''$i --remote-send '<cmd>colorscheme pywal<CR>';
done
eval "''$@"
'')
(pkgs.writeShellScriptBin "onSystemStart" ''

View File

@@ -1,18 +1,12 @@
{ config, lib, pkgs, inputs, ... }: {
imports = [
./git
./nh
./hyprland
./hyprpanel
./terminal
./rofi
./pywal
./hyprlock
./calcurse
./firefox
./quickshell
];
imports = let
dir = builtins.readDir ./.;
in builtins.map (x: ./${x}) (builtins.filter
(file: (dir.${file} == "directory"))
(builtins.attrNames dir)
);
config = {

View File

@@ -0,0 +1,9 @@
{ ... }: {
imports = let
dir = builtins.readDir ./.;
in builtins.map (x: ./${x}) (builtins.filter
(file: (dir.${file} == "directory"))
(builtins.attrNames dir)
);
}

View File

@@ -1,11 +1,11 @@
{ ... }:
{ lib, ... }:
{
config = {
homeconfig = {
graphical = false;
minimal = false;
graphical = lib.mkDefault false;
minimal = lib.mkDefault false;
};
};
}

View File

@@ -0,0 +1,121 @@
{ config, pkgs, lib, disko, sops-nix, home-manager, ... }:
{
imports =
[
disko.nixosModules.default
sops-nix.nixosModules.sops
home-manager.nixosModules.default
];
config = {
boot = {
kernelPackages = pkgs.linuxKernel.packages.linux_6_18;
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
binfmt.emulatedSystems = lib.mkIf config.sysconfig.remoteBuildHost [ "aarch64-linux" ];
};
systemd.settings.Manager.DefaultLimitNOFILE = 2048;
programs.zsh.enable = true;
environment.shells = with pkgs; [ zsh bashInteractive ];
nixpkgs.config.allowUnfree = true;
networking = {
nameservers = lib.mkDefault [ "1.1.1.1" "1.0.0.1" ];
networkmanager = {
enable = true;
dns = "none";
};
useDHCP = false;
dhcpcd.enable = false;
nftables = {};
nat = {
enable = true;
internalInterfaces = [ "ve-.+" ];
externalInterface = "wlp7s0"; # wifi
#externalInterface = "enp6s0"; # ethernet
};
};
sysconfig = {
remoteBuildHost = true;
graphical = false;
services = {
sddm.enable = false;
openssh.enable = true;
pipewire.enable = true;
netbird.enable = true;
ollama.enable = false;
wyoming = {
enable = true;
piper = false;
openwakeword = true;
faster-whisper = true;
};
};
programs = {
hyprland.enable = false;
hyprpanel.enable = false;
steam.enable = false;
};
docker = {
enable = true;
portainer.enable = true;
pihole.enable = true;
ollama.enable = true;
searxng.enable = true;
};
containers = {
traefik.enable = true;
jellyfin.enable = true;
"esotericbytes.com".enable = true;
nextcloud.enable = true;
ntfy.enable = false;
gitea.enable = true;
n8n.enable = true;
keycloak.enable = true;
netbird.enable = true;
openwebui.enable = true;
homeassistant.enable = true;
wyoming = {
enable = false;
piper = false;
openwakeword = true;
faster-whisper = true;
};
rustdesk.enable = false; #broken
code-server.enable = false;
novnc.enable = false;
minecraft.enable = true;
sandbox.enable = false;
};
};
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
};
}

View File

@@ -63,7 +63,7 @@
};
virtualization = {
containers = {
wyoming = {
enable = mkDefault false;
@@ -105,8 +105,16 @@
programs.zsh.enable = true;
networking = {
nameservers = [ "1.1.1.1" "1.0.0.1" ];
networkmanager.enable = true;
nameservers = [
"1.1.1.1"
"1.0.0.1"
];
networkmanager = {
enable = true;
dns = "none";
};
useDHCP = false;
dhcpcd.enable = false;
};

View File

@@ -1,11 +1,11 @@
{ config, lib, nixpkgs, ... }: {
{ config, lib, pkgs, nixpkgs, ... }: {
imports = [
./services
./packages
./programs
./users
];
imports = let
dir = builtins.readDir ./.;
in builtins.map (x: ./${x}) (builtins.filter
(file: (dir.${file} == "directory"))
(builtins.attrNames dir)
);
options.sysconfig = with lib; {
host = mkOption {
@@ -65,13 +65,25 @@
createHome = false;
};
sops.secrets = let
dir = builtins.readDir ../machines;
in lib.mkIf config.sysconfig.remoteBuildHost (builtins.listToAttrs
(builtins.map
(y: { name = "remoteBuildClientKeys/${y}"; value = { sopsFile = ./secrets.yaml; }; })
(builtins.filter
(x: dir.${x} == "directory" && (import ../machines/${x} { config = {}; inputs = {}; inherit lib pkgs; }).config.sysconfig.remoteBuildClient)
(builtins.attrNames dir)
)
)
);
sops.templates."remote-builder" = lib.mkIf config.sysconfig.remoteBuildHost {
content = builtins.concatStringsSep ''''\n'' (builtins.map
(y: config.sops.placeholder.${y})
(builtins.partition
(builtins.filter
(x: (builtins.match "^remoteBuildClientKeys/.+" x) != null)
(builtins.attrNames config.sops.secrets)
).right
)
);
path = "/etc/ssh/authorized_keys.d/remote-builder";
owner = "remote-builder";

Some files were not shown because too many files have changed in this diff Show More