Compare commits

47 Commits
master ... dev

Author SHA1 Message Date
40d3d89aa2 nixos 26.05 2026-06-01 20:42:33 -05:00
d2dc74cd86 nixos 26.05 2026-06-01 20:19:50 -05:00
ffef916b3d nixos 26.05 2026-06-01 20:18:41 -05:00
30fcac6172 nixos 26.05 2026-06-01 19:55:01 -05:00
70cb5dba81 nixos 26.05 2026-06-01 19:51:17 -05:00
e25b717811 nixos 26.05 2026-06-01 19:43:41 -05:00
81b145d426 nixos 26.05 2026-06-01 19:42:31 -05:00
de7f1c7f21 fix virt manager 2026-05-16 13:45:20 -05:00
7c34325e4c fix dnsmasq 2026-05-16 13:02:25 -05:00
75da846be1 dhcp for homebox eth 2026-05-14 13:45:10 -05:00
c5f2f55a8b dhcp for homebox eth 2026-05-14 13:42:31 -05:00
40e31fdd15 desktop for homebox 2026-05-14 12:44:58 -05:00
57df8775c9 desktop for homebox 2026-05-14 12:42:08 -05:00
ee314f20b7 improve security 2026-05-13 11:31:08 -05:00
7456229c63 improve security 2026-05-13 11:27:28 -05:00
72cd269e26 improve security 2026-05-13 11:18:53 -05:00
8b10030515 improve security 2026-05-13 11:09:12 -05:00
d9420184a1 improve security 2026-05-13 10:50:14 -05:00
960a5d9c3b improve security 2026-05-13 10:31:19 -05:00
40dd4c9e9b improve security 2026-05-13 10:26:05 -05:00
53aac1d212 improve security 2026-05-13 10:16:05 -05:00
5e452983be improve security 2026-05-13 10:09:01 -05:00
576cb9d3e8 improve security 2026-05-13 10:04:01 -05:00
5f7c219838 improve security 2026-05-13 09:58:58 -05:00
d3eeb70fde allow flight 2026-04-30 22:15:33 -05:00
eb0fb0b3db docker minecraft 2026-04-28 18:07:18 -05:00
3aee709621 docker minecraft 2026-04-28 16:48:16 -05:00
7765a55a80 docker nginx 2026-04-28 14:11:16 -05:00
056b0a5f85 docker nginx 2026-04-28 14:09:06 -05:00
fa5ac5d5cd docker nginx 2026-04-28 14:04:39 -05:00
8dfe22adfe docker nginx 2026-04-28 14:02:02 -05:00
1895311639 docker nginx 2026-04-28 13:59:30 -05:00
2ad3ecb88c docker nginx 2026-04-28 13:55:56 -05:00
4f9bc1b04c docker nginx 2026-04-28 13:35:37 -05:00
e6e3caee3c fix n8n 2026-04-27 23:29:54 -05:00
4bae45819d fix n8n 2026-04-27 23:18:14 -05:00
f72e486105 fix n8n 2026-04-27 23:12:59 -05:00
06925492ac minecraft server 2026-04-27 17:31:08 -05:00
f25ac642db minecraft server 2026-04-27 17:30:21 -05:00
c24c7a1422 hotspot 2026-04-27 01:05:37 -05:00
3ee8674c79 hotspot 2026-04-26 23:33:17 -05:00
47d4a2ff07 hotspot 2026-04-26 23:31:19 -05:00
0a76abcc54 firmware size 2026-04-26 21:14:54 -05:00
56a963d760 gitea 2026-04-26 13:47:47 -05:00
4cbfd60d3a update inputs 2026-04-26 13:06:43 -05:00
825b466468 test gitea docker 2026-04-26 12:33:46 -05:00
1cd7cd2629 test gitea docker 2026-04-26 12:28:11 -05:00
31 changed files with 549 additions and 372 deletions

226
flake.lock generated
View File

@@ -20,11 +20,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1776702787, "lastModified": 1778857089,
"narHash": "sha256-qc5uwEWbuubzYthmZcfCapooZGXhoYZWfTQ24TozbCQ=", "narHash": "sha256-TclWRW2SdFeETLaiTG4BA8C8C4m/LppQEldncqyTzAQ=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "9a1ca6b8cb4d86a599787a55b78f2ddf809bf945", "rev": "ab2b0af63fbc9fb779d684f19149b790978be8a8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -47,11 +47,11 @@
"rev": "b2ec3d9cd0a6e52c4922b26d8b8e25823afd89d1", "rev": "b2ec3d9cd0a6e52c4922b26d8b8e25823afd89d1",
"revCount": 52, "revCount": 52,
"type": "git", "type": "git",
"url": "https://gitea.esotericbytes.com/Blunkall-Technologies/Aurora" "url": "https://gitea.esotericbytes.com/nathan/Aurora"
}, },
"original": { "original": {
"type": "git", "type": "git",
"url": "https://gitea.esotericbytes.com/Blunkall-Technologies/Aurora" "url": "https://gitea.esotericbytes.com/nathan/Aurora"
} }
}, },
"disko": { "disko": {
@@ -61,11 +61,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1776613567, "lastModified": 1780290312,
"narHash": "sha256-gC9Cp5ibBmGD5awCA9z7xy6MW6iJufhazTYJOiGlCUI=", "narHash": "sha256-eTAlX0CwgB84Ts3GaBd944A3DRXVMzgA0EqroZBISUo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "32f4236bfc141ae930b5ba2fb604f561fed5219d", "rev": "115e5211780054d8a890b41f0b7734cafad54dfe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -82,11 +82,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1777003388, "lastModified": 1780286561,
"narHash": "sha256-IS8oeyaqYS/MPpDp0Z7i86PwcdTqJ2dritgdRtWzkew=", "narHash": "sha256-73UvAlulbn6cSaoq+Wllj7WxKrhti8wkT+zYKvFD9d0=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "03d4270c1f75494910b7b8039b1a050bc7055c97", "rev": "2838055f920c314b0731f71a53a6b878de0309cc",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -135,11 +135,11 @@
"nixpkgs-lib": "nixpkgs-lib_2" "nixpkgs-lib": "nixpkgs-lib_2"
}, },
"locked": { "locked": {
"lastModified": 1775087534, "lastModified": 1778716662,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -235,30 +235,30 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775425411, "lastModified": 1780341248,
"narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=", "narHash": "sha256-PPWavrpeQFqE3bEShp9xcWeh2xyVbUucjBbG64MLRl0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe", "rev": "4baa8ac595f6122d2899093f575347af9c4e66d7",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-25.11", "ref": "release-26.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"home-manager_3": { "home-manager_3": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1777004352, "lastModified": 1780347968,
"narHash": "sha256-SV+9PgNwZ8jHVCjK6YaCBzaheLSW7cDnm5DpOYrD8Vw=", "narHash": "sha256-I8ibSDQx+E8cgw6k3UxX6Bm7awmGoKSTXc8Gt1Zbpp4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "6012cf1fed3eba66115f3fd117b9be6bd2a15b2f", "rev": "d0af9b8bf3b4a1d449be7034bebc9f8f9fd6ee99",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -342,11 +342,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1776947531, "lastModified": 1780334452,
"narHash": "sha256-BnUJwexEDpt10Csws8UNq/34r5zaUl8oXNrDHd6oJVA=", "narHash": "sha256-v+GmvijnXvcpN7pMrKFSYnNozYZ/hz5w7fsswLaT7DM=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "b65714e3b8e123fb2febd507905d25fa6abd0400", "rev": "13be9a3305150fa9b9492418bbc409707129ab44",
"revCount": 7171, "revCount": 7402,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@@ -444,11 +444,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1776426736, "lastModified": 1777320127,
"narHash": "sha256-rl7i4aY+9p8LysJp7o8uRWahCkpFznCgGHXszlTw7b0=", "narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "7833ff33b2e82d3406337b5dcf0d1cec595d83e9", "rev": "090117506ddc3d7f26e650ff344d378c2ec329cc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -521,11 +521,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1776428866, "lastModified": 1779475241,
"narHash": "sha256-XfRlBolGtjvalTHJp3XvvpYLBjkMhaZLLU0WqZ91Fcg=", "narHash": "sha256-Nw4DN0A5krWNcPBvuWe5Gz2yuxsUUPiDgtu6SVPJQeU=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "eedd60805cd96d4442586f2ba5fe51d549b12674", "rev": "3cd3972b2ee658a14d2610d8494e09259e530124",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -546,11 +546,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1776430932, "lastModified": 1777159683,
"narHash": "sha256-Yv3RPiUvl7CAsJgwIVsqcj7akn1gLyJP1F/mocof5hA=", "narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwayland-scanner", "repo": "hyprwayland-scanner",
"rev": "4c2fcc06dc9722c97dbb54ba649c69b18ce83d2e", "rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -575,11 +575,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1776728575, "lastModified": 1778410714,
"narHash": "sha256-z9eGphrArEBpl1O/GCH0wlY6z4K9vA6yWh2gAS6qytU=", "narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwire", "repo": "hyprwire",
"rev": "f3a80888783702a39691b684d099e16b83ed4702", "rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -605,11 +605,11 @@
}, },
"import-tree_2": { "import-tree_2": {
"locked": { "locked": {
"lastModified": 1773693634, "lastModified": 1778781969,
"narHash": "sha256-BtZ2dtkBdSUnFPPFc+n0kcMbgaTxzFNPv2iaO326Ffg=", "narHash": "sha256-Jjuz5CmSkur8KvLDoGa+vylEp+RkQtv4mt/qcMznpH0=",
"owner": "vic", "owner": "vic",
"repo": "import-tree", "repo": "import-tree",
"rev": "c41e7d58045f9057880b0d85e1152d6a4430dbf1", "rev": "d321337efd0f23a9eb14a42adb7b2c29313ab274",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -619,12 +619,15 @@
} }
}, },
"nixos-hardware": { "nixos-hardware": {
"inputs": {
"nixpkgs": "nixpkgs_4"
},
"locked": { "locked": {
"lastModified": 1776983936, "lastModified": 1780310866,
"narHash": "sha256-ZOQyNqSvJ8UdrrqU1p7vaFcdL53idK+LOM8oRWEWh6o=", "narHash": "sha256-fPBRVf6A5xlACYcOI59shGrjURuvwu0lRsDoSCEXt/I=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "2096f3f411ce46e88a79ae4eafcfc9df8ed41c61", "rev": "4ed851c979641e28597a05086332d75cdc9e395f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -667,11 +670,11 @@
}, },
"nixpkgs-lib_2": { "nixpkgs-lib_2": {
"locked": { "locked": {
"lastModified": 1774748309, "lastModified": 1777168982,
"narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=", "narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "333c4e0545a6da976206c74db8773a1645b5870a", "rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -697,11 +700,11 @@
}, },
"nixpkgs-us": { "nixpkgs-us": {
"locked": { "locked": {
"lastModified": 1776548001, "lastModified": 1780243769,
"narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc", "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -729,11 +732,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1776548001, "lastModified": 1779357205,
"narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", "narHash": "sha256-cCO8aTqss5x9Ky8GWkpY0Hy5fyTZEbtifSUV8QjSzic=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc", "rev": "f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -745,37 +748,50 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1776734388, "lastModified": 1767892417,
"narHash": "sha256-vl3dkhlE5gzsItuHoEMVe+DlonsK+0836LIRDnm6MXQ=", "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
"owner": "nixos", "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"repo": "nixpkgs", "type": "tarball",
"rev": "10e7ad5bbcb421fe07e3a4ad53a634b0cd57ffac", "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
"type": "github"
}, },
"original": { "original": {
"owner": "nixos", "type": "tarball",
"ref": "nixos-25.11", "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
"repo": "nixpkgs",
"type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1775423009, "lastModified": 1780203844,
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=", "narHash": "sha256-K5sT4jTpGs15ADhviMKNBH38REpPf5Q6mM1+N6cArVE=",
"owner": "NixOS", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9", "rev": "b51242d7d43689db2f3be91bd05d5b24fbb469c4",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "nixos",
"ref": "nixos-unstable", "ref": "nixos-26.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": {
"lastModified": 1779877693,
"narHash": "sha256-NOF9NAREhxr50bbBfVcVOq+ArCMSoe8dP79Pk2uyARk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4100e830e085863741bc69b156ec4ccd53ab5be0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1775710090, "lastModified": 1775710090,
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
@@ -791,7 +807,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_7": { "nixpkgs_8": {
"locked": { "locked": {
"lastModified": 1774701658, "lastModified": 1774701658,
"narHash": "sha256-CIS/4AMUSwUyC8X5g+5JsMRvIUL3YUfewe8K4VrbsSQ=", "narHash": "sha256-CIS/4AMUSwUyC8X5g+5JsMRvIUL3YUfewe8K4VrbsSQ=",
@@ -807,7 +823,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_8": { "nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1772047000, "lastModified": 1772047000,
"narHash": "sha256-7DaQVv4R97cii/Qdfy4tmDZMB2xxtyIvNGSwXBBhSmo=", "narHash": "sha256-7DaQVv4R97cii/Qdfy4tmDZMB2xxtyIvNGSwXBBhSmo=",
@@ -827,7 +843,7 @@
"inputs": { "inputs": {
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_3",
"home-manager": "home-manager_3", "home-manager": "home-manager_3",
"nixpkgs": "nixpkgs_6", "nixpkgs": "nixpkgs_7",
"nixvim": "nixvim_2" "nixvim": "nixvim_2"
}, },
"locked": { "locked": {
@@ -837,17 +853,17 @@
"rev": "7fb16160f7170a580d6791d0f26736ff68cceb3c", "rev": "7fb16160f7170a580d6791d0f26736ff68cceb3c",
"revCount": 40, "revCount": 40,
"type": "git", "type": "git",
"url": "https://gitea.esotericbytes.com/Blunkall-Technologies/Moirai" "url": "https://gitea.esotericbytes.com/nathan/Moirai"
}, },
"original": { "original": {
"type": "git", "type": "git",
"url": "https://gitea.esotericbytes.com/Blunkall-Technologies/Moirai" "url": "https://gitea.esotericbytes.com/nathan/Moirai"
} }
}, },
"nixvim_2": { "nixvim_2": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_4", "flake-parts": "flake-parts_4",
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_8",
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": { "locked": {
@@ -864,24 +880,41 @@
"type": "github" "type": "github"
} }
}, },
"opi-zero2w": { "odysseus": {
"inputs": { "flake": false,
"nixpkgs": "nixpkgs_8"
},
"locked": { "locked": {
"lastModified": 1772415536, "lastModified": 1780360943,
"narHash": "sha256-dS4XyDDVCjGEFDX4zgaalQqMlfWL7JfeLGJpLwcAAFE=", "narHash": "sha256-hFdFwPmZrfugsvhZRZhPUiBrGR8bjRg5XWUUWaOG2KA=",
"owner": "virusdave", "owner": "pewdiepie-archdaemon",
"repo": "nixos-opi-zero2w", "repo": "odysseus",
"rev": "1337ecfb2443f059f8971eb89eae487fbc6b0dcc", "rev": "d60ff44c1b43b7f334ee2b22304ac9bbca90796c",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "virusdave", "owner": "pewdiepie-archdaemon",
"repo": "nixos-opi-zero2w", "repo": "odysseus",
"type": "github" "type": "github"
} }
}, },
"opi-zero2w": {
"inputs": {
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1777256028,
"narHash": "sha256-C05MeufANuAQxLytQDhfzCKtjqL6cKi9QaWhgI7BGZI=",
"ref": "ccacheless",
"rev": "b794fd757ef0f6d044548c9262fc4143a5b33f6d",
"revCount": 5,
"type": "git",
"url": "https://gitea.esotericbytes.com/nathan/nixos-opi-zero2w"
},
"original": {
"ref": "ccacheless",
"type": "git",
"url": "https://gitea.esotericbytes.com/nathan/nixos-opi-zero2w"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@@ -892,11 +925,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1776796298, "lastModified": 1778507602,
"narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=", "narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad", "rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -915,9 +948,10 @@
"hyprland": "hyprland", "hyprland": "hyprland",
"import-tree": "import-tree_2", "import-tree": "import-tree_2",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_5",
"nixpkgs-us": "nixpkgs-us", "nixpkgs-us": "nixpkgs-us",
"nixvim": "nixvim", "nixvim": "nixvim",
"odysseus": "odysseus",
"opi-zero2w": "opi-zero2w", "opi-zero2w": "opi-zero2w",
"sops-nix": "sops-nix" "sops-nix": "sops-nix"
} }
@@ -929,11 +963,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1776771786, "lastModified": 1777944972,
"narHash": "sha256-DRFGPfFV6hbrfO9a1PH1FkCi7qR5FgjSqsQGGvk1rdI=", "narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "bef289e2248991f7afeb95965c82fbcd8ff72598", "rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1000,11 +1034,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1776608502, "lastModified": 1778265244,
"narHash": "sha256-UH8YoQxx4hFOm6qjMdjRQNRvSejFIR/wBZ8fW1p9sME=", "narHash": "sha256-8jlPtGSsv/CQY6tVVyLF4Jjd0gnS+Zbn9yk/V13A9nM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "4a293523d36dfa367e67ec304cc718ea66a8fec2", "rev": "813ea5ca9a1702a9a2d1f5836bc00172ef698968",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -2,12 +2,15 @@
description = "Nixos config flake"; description = "Nixos config flake";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
#nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs-us.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-us.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-25.11"; url = "github:nix-community/home-manager/release-26.05";
#url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@@ -18,8 +21,8 @@
nixos-hardware.url = "github:nixos/nixos-hardware/master"; nixos-hardware.url = "github:nixos/nixos-hardware/master";
opi-zero2w.url = "github:virusdave/nixos-opi-zero2w"; #opi-zero2w.url = "github:virusdave/nixos-opi-zero2w";
#opi-zero2w.url = "git+file:///home/nathan/Projects/tests/nixos-opi-zero2w"; opi-zero2w.url = "git+https://gitea.esotericbytes.com/nathan/nixos-opi-zero2w?ref=ccacheless";
sops-nix = { sops-nix = {
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
@@ -35,12 +38,18 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
odysseus = {
url = "github:pewdiepie-archdaemon/odysseus";
flake = false;
};
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
nixvim.url = "git+https://gitea.esotericbytes.com/Blunkall-Technologies/Moirai"; nixvim.url = "git+https://gitea.esotericbytes.com/nathan/Moirai";
#nixvim.url = "git+file:///home/nathan/Projects/Moirai"; #nixvim.url = "git+file:///home/nathan/Projects/Moirai";
aurora.url = "git+https://gitea.esotericbytes.com/Blunkall-Technologies/Aurora"; aurora.url = "git+https://gitea.esotericbytes.com/nathan/Aurora";
#aurora.url = "git+file:///home/nathan/Projects/Aurora"; #aurora.url = "git+file:///home/nathan/Projects/Aurora";
}; };

View File

@@ -16,12 +16,6 @@
config = { config = {
networking.firewall.interfaces = {
"ve-traefik" = {
allowedTCPPorts = [ hostPort ];
};
};
sops.secrets = { sops.secrets = {
"authentik/pass" = {}; "authentik/pass" = {};
"authentik/secret_key" = {}; "authentik/secret_key" = {};
@@ -90,12 +84,15 @@
environmentFiles = [ config.sops.templates."authentik.env".path ]; environmentFiles = [ config.sops.templates."authentik.env".path ];
labels = { labels = {
"traefik.enable" = "true"; "traefik.enable" = "true";
"traefik.docker.network" = "docker-main";
"traefik.http.routers.${name}.entrypoints" = "websecure,localsecure"; "traefik.http.routers.${name}.entrypoints" = "websecure,localsecure";
"traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)"; "traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)";
"traefik.http.routers.${name}.service" = "${name}"; "traefik.http.routers.${name}.service" = "${name}";
"traefik.http.routers.${name}.tls.certResolver" = "cloudflare"; "traefik.http.routers.${name}.tls.certResolver" = "cloudflare";
"traefik.http.services.${name}.loadbalancer.server.url" = "http://192.168.101.1:${builtins.toString hostPort}"; #"traefik.http.services.${name}.loadbalancer.server.url" = "http://192.168.101.1:${builtins.toString hostPort}";
"traefik.http.services.${name}.loadbalancer.server.url" = "http://192.168.101.6:9000";
#"traefik.http.services.${name}.loadbalancer.server.port" = "${builtins.toString hostPort}";
"traefik.http.middlewares.authentik.forwardauth.address" = "https://auth.esotericbytes.com/outpost.goauthentik.io/auth/traefik"; "traefik.http.middlewares.authentik.forwardauth.address" = "https://auth.esotericbytes.com/outpost.goauthentik.io/auth/traefik";
@@ -108,7 +105,7 @@
"/etc/Authentik/data:/data:rw" "/etc/Authentik/data:/data:rw"
]; ];
ports = [ ports = [
"${builtins.toString hostPort}:9000/tcp" #"127.0.0.1:${builtins.toString hostPort}:9000/tcp"
#"9443:9443/tcp" #"9443:9443/tcp"
]; ];
cmd = [ "server" ]; cmd = [ "server" ];
@@ -121,6 +118,7 @@
"--network-alias=authentik-server" "--network-alias=authentik-server"
"--network-alias=${name}" "--network-alias=${name}"
"--ip=192.168.101.6" "--ip=192.168.101.6"
#"--expose=9000"
]; ];
networks = [ networks = [
"docker-main" "docker-main"

View File

@@ -11,7 +11,7 @@
ipv6 = true; ipv6 = true;
openFirewall = true; openFirewall = true;
nssmdns4 = true; nssmdns4 = true;
wideArea = true; wideArea = false;
}; };
}; };

View File

@@ -0,0 +1,12 @@
{ ... }: {
flake.nixosModules.default = { ... }: {
config = {
services.blueman = {
enable = true;
};
};
};
}

View File

@@ -1,120 +1,5 @@
{ ... }: { { ... }: {
flake.nixosModules.gitea = { config, lib, ... }: {
config = {
networking = {
nat.internalInterfaces = [ "ve-gitea" ];
};
sops.secrets = {
"gitea/dbpass" = {};
};
containers.gitea = {
autoStart = true;
privateNetwork = true;
hostAddress = "192.168.100.10";
localAddress = "192.168.100.20";
bindMounts = {
"/etc/gitea/data" = {
hostPath = "/ssd1/Gitea/data";
isReadOnly = false;
};
};
extraFlags = [
"--load-credential=dbpass:${config.sops.secrets."gitea/dbpass".path}"
];
config = {
systemd.services.secrets_setup = {
wantedBy = [ "gitea.service" ];
serviceConfig = {
LoadCredential = [
"dbpass"
];
};
script = ''
cat ''${CREDENTIALS_DIRECTORY}/dbpass > /etc/gitea/dbpass
chown gitea:gitea /etc/gitea/*
'';
};
services.gitea = {
enable = true;
stateDir = "/etc/gitea/data";
dump.enable = false;
appName = "Gitea";
settings = {
server = {
DOMAIN = "gitea.esotericbytes.com";
HTTP_PORT = 3000;
ROOT_URL = "https://gitea.esotericbytes.com/";
};
service = {
DISABLE_REGISTRATION = false;
ALLOW_ONLY_EXTERNAL_REGISTRATION = true;
REQUIRE_SIGNIN_VIEW = false;
};
oauth2_client = {
ENABLE_AUTO_REGISTRATION = true;
};
session.COOKIE_SECURE = true;
cron = {
ENABLED = true;
RUN_AT_START = true;
};
repository = {
DEFAULT_BRANCH = "master";
};
migrations = {
ALLOWED_DOMAINS = "*";
ALLOW_LOCALNETWORKS = true;
SKIP_TLS_VERIFY = true;
BLOCKED_DOMAINS = "";
};
};
database = {
passwordFile = "/etc/gitea/dbpass";
type = "postgres";
};
};
services.openssh = {
enable = true;
openFirewall = true;
settings = {
PermitRootLogin = lib.mkForce "no";
PasswordAuthentication = false;
KbdInteractiveAuthentication = false;
};
ports = [ 2222 ];
};
networking.firewall.allowedTCPPorts = [ 3000 ];
system.stateVersion = "24.11";
};
};
};
};
flake.nixosModules.gitea-docker = { config, lib, pkgs, ... }: let flake.nixosModules.gitea-docker = { config, lib, pkgs, ... }: let
subdomain = "gitea"; subdomain = "gitea";
@@ -145,7 +30,6 @@
POSTGRES_DB=gitea POSTGRES_DB=gitea
POSTGRES_PASSWORD=${config.sops.placeholder."gitea/dbpass"} POSTGRES_PASSWORD=${config.sops.placeholder."gitea/dbpass"}
''; '';
>>>>>>> dev
virtualisation.oci-containers.containers."${name}" = { virtualisation.oci-containers.containers."${name}" = {
image = "docker.gitea.com/gitea:1.25.4"; image = "docker.gitea.com/gitea:1.25.4";
@@ -161,7 +45,7 @@
labels = { labels = {
"traefik.enable" = "true"; "traefik.enable" = "true";
"traefik.http.routers.${name}.entrypoints" = "websecure"; "traefik.http.routers.${name}.entrypoints" = "websecure,localsecure";
"traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)"; "traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)";
"traefik.http.routers.${name}.service" = "${name}"; "traefik.http.routers.${name}.service" = "${name}";
"traefik.http.routers.${name}.tls.certResolver" = "cloudflare"; "traefik.http.routers.${name}.tls.certResolver" = "cloudflare";
@@ -173,12 +57,9 @@
"traefik.tcp.routers.${name}-ssh.rule" = "HostSNI(`*`)"; "traefik.tcp.routers.${name}-ssh.rule" = "HostSNI(`*`)";
"traefik.tcp.routers.${name}-ssh.service" = "${name}-ssh"; "traefik.tcp.routers.${name}-ssh.service" = "${name}-ssh";
"traefik.tcp.services.${name}-ssh.loadbalancer.server.port" = "2222"; "traefik.tcp.services.${name}-ssh.loadbalancer.server.port" = "22";
}; };
ports = [
];
extraOptions = [ extraOptions = [
"--ip=192.168.101.25" "--ip=192.168.101.25"
]; ];
@@ -208,12 +89,6 @@
"docker-main" "docker-main"
]; ];
labels = {
};
ports = [
];
extraOptions = [ extraOptions = [
"--ip=192.168.101.26" "--ip=192.168.101.26"
]; ];

View File

@@ -48,9 +48,6 @@
"--ip=192.168.101.13" "--ip=192.168.101.13"
]; ];
ports = [
];
volumes = [ volumes = [
"vol_home-assistant:/config/" "vol_home-assistant:/config/"
"/etc/home-assistant/configuration.yaml:/config/configuration.yaml" "/etc/home-assistant/configuration.yaml:/config/configuration.yaml"

View File

@@ -15,8 +15,6 @@
config = { config = {
networking.firewall.allowedUDPPorts = [ 7359 ];
virtualisation.oci-containers.containers.jellyfin = { virtualisation.oci-containers.containers.jellyfin = {
image = "jellyfin/jellyfin:10.11.6"; image = "jellyfin/jellyfin:10.11.6";
@@ -29,10 +27,6 @@
"docker-main" "docker-main"
]; ];
ports = [
"7359:7359/udp"
];
volumes = [ volumes = [
"vol_jellyfin-config:/config" "vol_jellyfin-config:/config"
"vol_jellyfin-cache:/cache" "vol_jellyfin-cache:/cache"

View File

@@ -1 +1,92 @@
{} { self, ... }: {
flake.nixosModules.minecraft = { config, lib, pkgs, ... }: let
name = "minecraft";
in {
imports = [
self.nixosModules.docker
];
config = {
networking.firewall.allowedTCPPorts = [ 25565 ];
networking.firewall.allowedUDPPorts = [ 25565 ];
virtualisation.oci-containers.containers.minecraft = {
image = "itzg/minecraft-server:java21";
# unstable, waiting for 26.05
#pull = "newer";
hostname = "${name}.esotericbytes.com";
networks = [
"docker-main"
];
ports = [
"25565:25565"
];
volumes = [
"/etc/minecraft/data:/data"
"/etc/minecraft/mods:/mods"
];
labels = {
};
extraOptions = lib.mkMerge [
[ "--ip=192.168.101.27" ]
];
environment = {
EULA = "TRUE";
TYPE = "NEOFORGE";
VERSION = "1.21.1";
NEOFORGE_VERSION = "latest";
MOTD = "Guess who is back?";
DIFFICULTY = "normal";
MEMORY = "8G";
ALLOW_FLIGHT = "true";
#ENABLE_WHITELIST = "false";
#WHITELIST = "";
};
};
systemd.services."docker-minecraft" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
RestartMaxDelaySec = lib.mkOverride 90 "1m";
RestartSec = lib.mkOverride 90 "100ms";
RestartSteps = lib.mkOverride 90 9;
};
after = [
"docker-network-setup.service"
];
requires = [
"docker-network-setup.service"
];
partOf = [
"docker-compose-minecraft-root.target"
];
wantedBy = [
"docker-compose-minecraft-root.target"
];
};
systemd.targets."docker-compose-minecraft-root" = {
wantedBy = [ "multi-user.target" ];
};
};
};
}

View File

@@ -38,15 +38,12 @@
"traefik.http.services.${name}.loadbalancer.server.port" = "5678"; "traefik.http.services.${name}.loadbalancer.server.port" = "5678";
}; };
ports = [
];
extraOptions = [ extraOptions = [
"--ip=192.168.101.14" "--ip=192.168.101.14"
]; ];
volumes = [ volumes = [
"vol_n8n:/etc/n8n" "/etc/n8n:/home/node/.n8n"
]; ];
environment = { environment = {
@@ -61,6 +58,8 @@
N8N_DIAGNOSTICS_CONFIG_BACKEND = ""; N8N_DIAGNOSTICS_CONFIG_BACKEND = "";
N8N_SECURE_COOKIE = "false"; N8N_SECURE_COOKIE = "false";
N8N_RUNNERS_ENABLED = "true";
}; };
}; };
@@ -73,11 +72,9 @@
}; };
after = [ after = [
"docker-network-setup.service" "docker-network-setup.service"
"docker-volume-n8n.service"
]; ];
requires = [ requires = [
"docker-network-setup.service" "docker-network-setup.service"
"docker-volume-n8n.service"
]; ];
partOf = [ partOf = [
"docker-compose-n8n-root.target" "docker-compose-n8n-root.target"
@@ -86,20 +83,6 @@
"docker-compose-n8n-root.target" "docker-compose-n8n-root.target"
]; ];
}; };
systemd.services."docker-volume-n8n" = {
path = [ pkgs.docker ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
docker volume inspect vol_n8n || docker volume create vol_n8n --driver=local
'';
partOf = [ "docker-compose-n8n-root.target" ];
wantedBy = [ "docker-compose-n8n-root.target" ];
};
}; };
}; };
} }

View File

@@ -51,6 +51,12 @@
hardened = false; hardened = false;
}; };
ui = {
enable = lib.mkDefault config.hardware.graphics.enable;
#package = pkgs-us.netbird-ui;
#package = pkgs.netbird-ui;
};
package = pkgs-us.netbird; package = pkgs-us.netbird;
#package = pkgs.netbird; #package = pkgs.netbird;
}; };

View File

@@ -4,38 +4,79 @@
config = { config = {
containers.esotericbytes-com = { environment.etc."nginx/nginx.conf".text = ''
events {
}
http {
server {
root /var/www/data;
}
}
'';
autoStart = true; virtualisation.oci-containers.containers.nginx = {
privateNetwork = true; image = "nginx:latest";
hostAddress = "192.168.100.10";
localAddress = "192.168.100.13";
bindMounts = { # unstable, waiting for 26.05
"/var/www/data" = { #pull = "newer";
hostPath = "/ssd1/esotericbytes-com/data";
isReadOnly = false; hostname = "esotericbytes.com";
networks = [
"docker-main"
];
volumes = [
"/ssd1/esotericbytes-com/data:/var/www/data"
"/etc/nginx/nginx.conf:/etc/nginx/nginx.conf"
];
labels = {
"traefik.enable" = "true";
"traefik.http.routers.homepage.entrypoints" = "websecure,localsecure";
"traefik.http.routers.homepage.rule" = "Host(`esotericbytes.com`) || Host(`www.esotericbytes.com`)";
"traefik.http.routers.homepage.service" = "homepage";
"traefik.http.routers.homepage.tls.certResolver" = "cloudflare";
#"traefik.http.routers.homepage.middlewares" = "authentik@docker";
"traefik.http.services.homepage.loadbalancer.server.port" = "80";
};
extraOptions = lib.mkMerge [
[ "--ip=192.168.101.28" ]
];
environment = {
}; };
}; };
config = { systemd.services."docker-nginx" = {
serviceConfig = {
services.nginx = { Restart = lib.mkOverride 90 "always";
enable = true; RestartMaxDelaySec = lib.mkOverride 90 "1m";
virtualHosts = { RestartSec = lib.mkOverride 90 "100ms";
"esotericbytes.com" = { RestartSteps = lib.mkOverride 90 9;
enableACME = false;
forceSSL = false;
root = "/var/www/data";
};
}; };
after = [
"docker-network-setup.service"
];
requires = [
"docker-network-setup.service"
];
partOf = [
"docker-compose-nginx-root.target"
];
wantedBy = [
"docker-compose-nginx-root.target"
];
};
systemd.targets."docker-compose-nginx-root" = {
wantedBy = [ "multi-user.target" ];
}; };
networking.firewall.allowedTCPPorts = [ 80 ];
system.stateVersion = "24.05";
};
};
}; };
}; };
} }

View File

@@ -0,0 +1,62 @@
{ self, inputs, ... }: {
flake.nixosModules.odysseus = { config, lib, pkgs, ... }: let
subdomain = "odysseus";
name = "odysseus";
in {
imports = [
self.nixosModules.docker
];
config = {
virtualisation.oci-containers.containers.odysseus = {
image = "odysseus:latest";
imageFile = pkgs.dockertools.buildImage {
name = "odysseus";
tag = "latest";
fromImage = "";
};
pull = "never";
hostname = "${subdomain}.esotericbytes.com";
networks = [
"docker-main"
];
volumes = [
"vol_odysseus:/etc/odysseus"
];
labels = {
"traefik.enable" = "true";
"traefik.http.routers.${name}.entrypoints" = "localsecure";
"traefik.http.routers.${name}.rule" = "Host(`${subdomain}.esotericbytes.com`)";
"traefik.http.routers.${name}.service" = "${name}";
"traefik.http.routers.${name}.tls.certResolver" = "cloudflare";
#"traefik.http.services.odysseus.loadbalancer.server.url" = "http://192.168.100.10:${builtins.toString hostPort}";
"traefik.http.services.${name}.loadbalancer.server.port" = "7000";
};
extraOptions = [
"--ip=192.168.101.29"
];
environment = {
};
};
};
};
}

View File

@@ -40,16 +40,6 @@
ollama ollama
]; ];
networking.firewall.interfaces = {
"ve-traefik" = {
allowedTCPPorts = [ hostPort ];
};
"ve-openwebui" = {
allowedTCPPorts = [ hostPort ];
};
};
virtualisation.oci-containers.containers.ollama = { virtualisation.oci-containers.containers.ollama = {
image = "ollama/ollama:latest"; image = "ollama/ollama:latest";
@@ -63,7 +53,7 @@
]; ];
ports = [ ports = [
"${builtins.toString hostPort}:11434" "127.0.0.1:${builtins.toString hostPort}:11434"
]; ];
volumes = [ volumes = [

View File

@@ -27,10 +27,6 @@
"docker-main" "docker-main"
]; ];
/*ports = [
"${builtins.toString hostPort}:8080"
];*/
volumes = [ volumes = [
"vol_openwebui:/app/backend/data" "vol_openwebui:/app/backend/data"
]; ];

View File

@@ -19,6 +19,8 @@
virtualisation.docker.daemon.settings.dns = [ "192.168.101.12" ]; virtualisation.docker.daemon.settings.dns = [ "192.168.101.12" ];
networking.resolvconf.enable = lib.mkForce false;
environment.etc."resolv.conf" = { environment.etc."resolv.conf" = {
enable = true; enable = true;
text = '' text = ''
@@ -32,12 +34,6 @@
mode = "0664"; mode = "0664";
}; };
networking.firewall.interfaces = {
"ve-traefik" = {
allowedTCPPorts = [ hostPort ];
};
};
virtualisation.oci-containers.containers.pihole = { virtualisation.oci-containers.containers.pihole = {
image = "pihole/pihole:latest"; image = "pihole/pihole:latest";
@@ -66,7 +62,7 @@
]; ];
ports = [ ports = [
"${builtins.toString hostPort}:80" "127.0.0.1:${builtins.toString hostPort}:80"
"127.0.0.1:53:53/tcp" "127.0.0.1:53:53/tcp"
"127.0.0.1:53:53/udp" "127.0.0.1:53:53/udp"
]; ];

View File

@@ -17,12 +17,6 @@
config = { config = {
networking.firewall.interfaces = {
"ve-traefik" = {
allowedTCPPorts = [ hostPort ];
};
};
virtualisation.oci-containers.containers.portainer = { virtualisation.oci-containers.containers.portainer = {
image = "portainer/portainer-ce:latest"; image = "portainer/portainer-ce:latest";
@@ -48,7 +42,7 @@
ports = [ ports = [
"127.0.0.1:8000:8000" "127.0.0.1:8000:8000"
"${builtins.toString hostPort}:9000" "127.0.0.1:${builtins.toString hostPort}:9000"
]; ];
extraOptions = [ extraOptions = [

View File

@@ -40,9 +40,6 @@
"traefik.http.services.${name}.loadbalancer.server.port" = "8080"; "traefik.http.services.${name}.loadbalancer.server.port" = "8080";
}; };
ports = [
];
extraOptions = [ extraOptions = [
"--ip=192.168.101.9" "--ip=192.168.101.9"
]; ];

View File

@@ -1,17 +1,6 @@
http: http:
routers: routers:
homepageSecure:
entryPoints:
- "websecure"
- "localsecure"
rule: "Host(`esotericbytes.com`) || Host(`www.esotericbytes.com`)"
service: "homepage"
middlewares:
- authentik@docker
tls:
certResolver: "cloudflare"
code-server: code-server:
entryPoints: entryPoints:
- "localsecure" - "localsecure"
@@ -30,11 +19,6 @@ http:
certResolver: "cloudflare" certResolver: "cloudflare"
services: services:
homepage:
loadBalancer:
servers:
- url: "http://192.168.100.13:80"
code-server: code-server:
loadBalancer: loadBalancer:
servers: servers:

View File

@@ -9,7 +9,7 @@
config = { config = {
networking.firewall.allowedTCPPorts = [ 80 81 443 444 2222 ]; networking.firewall.allowedTCPPorts = [ 80 443 2222 ];
sops.secrets = { sops.secrets = {
"traefik/cf_email" = {}; "traefik/cf_email" = {};
@@ -58,10 +58,10 @@
]; ];
ports = [ ports = [
"80:80" #"80:80"
"81:81" "80:81"
"443:443" #"443:443"
"444:444" "443:444"
"2222:2222" "2222:2222"
]; ];

View File

@@ -35,6 +35,7 @@
wyoming wyoming
virtual-machines virtual-machines
minecraft
]; ];
config = { config = {
@@ -68,17 +69,48 @@
networkmanager = { networkmanager = {
enable = true; enable = true;
dns = "none"; dns = "none";
unmanaged = [ "enp6s0" ];
}; };
useDHCP = false; useDHCP = false;
dhcpcd.enable = false; dhcpcd.enable = false;
nftables = {}; nftables = {};
interfaces."enp6s0" = {
ipv4.addresses = [{ address = "192.168.121.1"; prefixLength = 24; }];
};
nat = { nat = {
enable = true; enable = true;
internalInterfaces = [ "ve-.+" ]; internalInterfaces = [ "ve-.+" "enp6s0" "virbr0" ];
externalInterface = "wlp7s0"; # wifi externalInterface = "wlp7s0"; # wifi
#externalInterface = "enp6s0"; # ethernet #externalInterface = "enp6s0"; # ethernet
}; };
firewall.interfaces."enp6s0" = {
allowedUDPPorts = [ 53 67 68 ];
allowedTCPPorts = [ 53 67 68 ];
};
};
services.dnsmasq = {
enable = true;
settings = {
port = 0;
interface = "enp6s0";
dhcp-range = [ "192.168.121.2,192.168.121.254,1h" ];
bind-interfaces = true;
};
};
specialisation = {
desktop = {
configuration = with self.nixosModules; lib.mkMerge [
aurora-greeter
steam
hyprland
];
};
}; };
sops.secrets."netbirdKey".sopsFile = lib.mkForce ./secrets.yaml; sops.secrets."netbirdKey".sopsFile = lib.mkForce ./secrets.yaml;

View File

@@ -84,8 +84,6 @@
enable = true; enable = true;
#dns = "none"; #dns = "none";
}; };
useDHCP = false;
dhcpcd.enable = false;
}; };
services.openssh.openFirewall = false; services.openssh.openFirewall = false;
@@ -96,6 +94,12 @@
ethdhcp ethdhcp
]; ];
}; };
hotspot = {
configuration = with self.nixosModules; lib.mkMerge [
hotspot
];
};
}; };

View File

@@ -24,8 +24,48 @@
networking = { networking = {
hostName = lib.mkDefault "z2w"; hostName = lib.mkDefault "z2w";
nameservers = [ "1.1.1.1" "1.0.0.1" ]; nameservers = [ "1.1.1.1" "1.0.0.1" ];
#networkmanager.enable = true; /*networkmanager = {
#wireless.enable = lib.mkForce false; enable = true;
ensureProfiles.profiles = {
laptop = {
connection = {
id = "laptop";
permissions = "";
type = "wifi";
};
ipv4 = {
dns-search = "";
method = "auto";
};
ipv6 = {
addr-gen-mode = "stable-privacy";
dns-search = "";
method = "auto";
};
wifi = {
mac-address-blacklist = "";
mode = "infrastructure";
ssid = "laptopHotspot";
};
wifi-security = {
auth-alg = "open";
key-mgmt = "wpa-psk";
psk = "//falconAdjacent42";
};
};
};
};
wireless.enable = lib.mkForce false;*/
wireless = {
enable = true;
networks.laptop = {
ssid = "laptopHotspot";
psk = "//falconAdjacent42";
};
};
}; };

View File

@@ -36,6 +36,8 @@
theme.package = pkgs.tokyonight-gtk-theme; theme.package = pkgs.tokyonight-gtk-theme;
iconTheme.package = pkgs.rose-pine-icon-theme; iconTheme.package = pkgs.rose-pine-icon-theme;
iconTheme.name = "rose-pine-moon"; iconTheme.name = "rose-pine-moon";
gtk4.theme = config.gtk.theme;
}; };
services.mpris-proxy.enable = true; services.mpris-proxy.enable = true;

View File

@@ -1,6 +1,5 @@
dwindle { dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this preserve_split = yes # you probably want this
} }

View File

@@ -24,6 +24,8 @@
enable = true; enable = true;
package = pkgs.firefox; package = pkgs.firefox;
configPath = "${config.xdg.configHome}/mozilla/firefox";
profiles.nathan = { profiles.nathan = {
search = { search = {
default = "ddg"; default = "ddg";

View File

@@ -7,8 +7,9 @@
programs.opencode = { programs.opencode = {
enable = true; enable = true;
tui.theme = "system";
settings = { settings = {
theme = "system";
model = "ollama-remote/qwen3:8b"; model = "ollama-remote/qwen3:8b";
provider = { provider = {

View File

@@ -43,8 +43,7 @@
grim grim
slurp slurp
wl-clipboard wl-clipboard
xfce.thunar thunar
blueberry
brightnessctl brightnessctl
libdbusmenu-gtk3 libdbusmenu-gtk3
]; ];

View File

@@ -6,7 +6,7 @@
enable = true; enable = true;
enableDefaultConfig = false; enableDefaultConfig = false;
/*
matchBlocks = { matchBlocks = {
"*" = { "*" = {
@@ -29,6 +29,36 @@
port = 22; port = 22;
}; };
"remote" = {
hostname = "esotericbytes.com";
user = "nathan";
identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519";
port = 22;
};
};
*/
settings = {
"*" = {
forwardAgent = false;
addKeysToAgent = "no";
compression = false;
serverAliveInterval = 0;
serverAliveCountMax = 3;
hashKnownHosts = false;
userKnownHostsFile = "~/.ssh/known_hosts";
controlMaster = "no";
controlPath = "~/.ssh/master-%r@%n:%p";
controlPersist = "no";
};
"builder" = {
hostname = "esotericbytes.com";
user = "remote-builder";
identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519";
port = 22;
};
"remote" = { "remote" = {
hostname = "esotericbytes.com"; hostname = "esotericbytes.com";
user = "nathan"; user = "nathan";

View File

@@ -4,6 +4,7 @@
config = { config = {
programs.yazi = { programs.yazi = {
enable = true; enable = true;
shellWrapperName = "y";
}; };
}; };
}; };

View File

@@ -7,6 +7,7 @@
pi4 = [ "pi4" ]; pi4 = [ "pi4" ];
z2w = [ "red-black" "blue-white" "z2w" ]; z2w = [ "red-black" "blue-white" "z2w" ];
useWith = x: y: (lib.mkIf (builtins.any (z: z == config.networking.hostName) x) y); useWith = x: y: (lib.mkIf (builtins.any (z: z == config.networking.hostName) x) y);
useWithGraphical = x: y: (lib.mkIf (builtins.any (z: z == config.networking.hostName && config.hardware.graphics.enable) x) y);
in { in {
config = { config = {
@@ -49,17 +50,17 @@
home-manager.users.nathan = with self.homeModules; lib.mkMerge [ home-manager.users.nathan = with self.homeModules; lib.mkMerge [
self.homeModules.nathan self.homeModules.nathan
(useWith (laptop ++ iso) nathan-aurora) (useWithGraphical (laptop ++ homebox ++ iso) nathan-aurora)
(useWith (laptop ++ iso) nathan-firefox) (useWithGraphical (laptop ++ homebox ++ iso) nathan-firefox)
(useWith (laptop ++ iso) nathan-rofi) (useWithGraphical (laptop ++ homebox ++ iso) nathan-rofi)
(useWith (laptop ++ iso) nathan-hypridle) (useWithGraphical (laptop ++ iso) nathan-hypridle)
(useWith (laptop ++ iso) nathan-hyprland) (useWithGraphical (laptop ++ homebox ++ iso) nathan-hyprland)
(useWith (laptop ++ iso) nathan-kitty) (useWithGraphical (laptop ++ homebox ++ iso) nathan-kitty)
(useWith (laptop ++ iso) nathan-scripts) (useWithGraphical (laptop ++ homebox ++ iso) nathan-scripts)
(useWith (laptop ++ iso) nathan-pywal) (useWithGraphical (laptop ++ homebox ++ iso) nathan-pywal)
(useWith (laptop ++ homebox) nathan-sops) (useWith (laptop ++ homebox) nathan-sops)
(useWith laptop { (useWithGraphical laptop {
wayland.windowManager.hyprland.extraConfig = '' wayland.windowManager.hyprland.extraConfig = ''
monitor=eDP-1,1920x1080@60,0x0,1 monitor=eDP-1,1920x1080@60,0x0,1
bind = CTRL SHIFT, XF86Launch2, exec, bash -c 'if [[ $(hyprctl monitors | grep 0x0 | sed -n -e "s/\t*1920x1080@//" -e "s/.[1234567890]* at 0x0//p") == 300 ]]; then pkexec --user root /nix/var/nix/profiles/system/bin/switch-to-configuration switch; else pkexec --user root /nix/var/nix/profiles/system/specialisation/docked/bin/switch-to-configuration switch; fi' bind = CTRL SHIFT, XF86Launch2, exec, bash -c 'if [[ $(hyprctl monitors | grep 0x0 | sed -n -e "s/\t*1920x1080@//" -e "s/.[1234567890]* at 0x0//p") == 300 ]]; then pkexec --user root /nix/var/nix/profiles/system/bin/switch-to-configuration switch; else pkexec --user root /nix/var/nix/profiles/system/specialisation/docked/bin/switch-to-configuration switch; fi'
@@ -67,17 +68,24 @@
''; '';
}) })
(useWith (iso) { (useWithGraphical (iso ++ homebox) {
wayland.windowManager.hyprland.extraConfig = '' wayland.windowManager.hyprland.extraConfig = ''
monitor=,preferred,auto,1 monitor=,preferred,auto,1
''; '';
}) })
(useWithGraphical (homebox) {
olympus = {
packageSet = lib.mkForce "full";
};
})
(useWith (iso ++ pi4 ++ z2w ++ homebox) { (useWith (iso ++ pi4 ++ z2w ++ homebox) {
olympus = { olympus = {
packageSet = "minimal"; packageSet = lib.mkDefault "minimal";
}; };
}) })
]; ];