This commit is contained in:
mjallen18
2025-10-21 11:31:20 -05:00
parent 2cfbc6d854
commit d61dfda3d5
9 changed files with 171 additions and 120 deletions

172
flake.lock generated
View File

@@ -86,11 +86,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1760395520,
"narHash": "sha256-4hVEyj3H4i0kwtO8dDIKee1WoZ0iMZxr3ageSdJ6Cck=",
"lastModified": 1760986121,
"narHash": "sha256-ilwuwZDPh0pNPTUYKUQQarAnwJwsggr60lQyae5R1vc=",
"owner": "chaotic-cx",
"repo": "nyx",
"rev": "c438d72cee048fe6203df15c81a230efb16fa409",
"rev": "45286364d2570149037013a4fa098709776bdb41",
"type": "github"
},
"original": {
@@ -141,11 +141,11 @@
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1760338583,
"narHash": "sha256-IGwy02SH5K2hzIFrKMRsCmyvwOwWxrcquiv4DbKL1S4=",
"lastModified": 1760721282,
"narHash": "sha256-aAHphQbU9t/b2RRy2Eb8oMv+I08isXv2KUGFAFn7nCo=",
"owner": "LnL7",
"repo": "nix-darwin",
"rev": "9a9ab01072f78823ca627ae5e895e40d493c3ecf",
"rev": "c3211fcd0c56c11ff110d346d4487b18f7365168",
"type": "github"
},
"original": {
@@ -161,11 +161,11 @@
]
},
"locked": {
"lastModified": 1758287904,
"narHash": "sha256-IGmaEf3Do8o5Cwp1kXBN1wQmZwQN3NLfq5t4nHtVtcU=",
"lastModified": 1760701190,
"narHash": "sha256-y7UhnWlER8r776JsySqsbTUh2Txf7K30smfHlqdaIQw=",
"owner": "nix-community",
"repo": "disko",
"rev": "67ff9807dd148e704baadbd4fd783b54282ca627",
"rev": "3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5",
"type": "github"
},
"original": {
@@ -360,7 +360,7 @@
},
"flake-utils-plus": {
"inputs": {
"flake-utils": "flake-utils_4"
"flake-utils": "flake-utils_3"
},
"locked": {
"lastModified": 1715533576,
@@ -399,24 +399,6 @@
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
@@ -482,11 +464,11 @@
]
},
"locked": {
"lastModified": 1760312644,
"narHash": "sha256-U9SkK45314urw9P7MmjhEgiQwwD/BTj+T3HTuz1JU1Q=",
"lastModified": 1760929667,
"narHash": "sha256-nZh6uvc71nVNaf/y+wesnjwsmJ6IZZUnP2EzpZe48To=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e121f3773fa596ecaba5b22e518936a632d72a90",
"rev": "189c21cf879669008ccf06e78a553f17e88d8ef0",
"type": "github"
},
"original": {
@@ -502,11 +484,11 @@
]
},
"locked": {
"lastModified": 1760500983,
"narHash": "sha256-zfY4F4CpeUjTGgecIJZ+M7vFpwLc0Gm9epM/iMQd4w8=",
"lastModified": 1761005073,
"narHash": "sha256-r6qbieh8iC1q1eCaWv15f4UIp8SeGffwswhNSA1Qk3s=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c53e65ec92f38d30e3c14f8d628ab55d462947aa",
"rev": "84e1adb0cdd13f5f29886091c7234365e12b1e7f",
"type": "github"
},
"original": {
@@ -535,11 +517,11 @@
"homebrew-cask": {
"flake": false,
"locked": {
"lastModified": 1760622175,
"narHash": "sha256-y9q2IPDxI84meGr/LfrJUlTYo/rnmTZ0m1vpPtDXhtk=",
"lastModified": 1761055599,
"narHash": "sha256-WYmQOY+MtelsNMSr//tuvAy35olx81sL+KGpOdZN5P0=",
"owner": "homebrew",
"repo": "homebrew-cask",
"rev": "65469180e57b0d3abd18f3386e0f5178badaf450",
"rev": "b20b02bb3636186b3734c12a13044bbb733bc7d4",
"type": "github"
},
"original": {
@@ -551,11 +533,11 @@
"homebrew-core": {
"flake": false,
"locked": {
"lastModified": 1760626955,
"narHash": "sha256-itpYMHfkDX5wOAye91G2EedJHvUo4JKF4ccP3Ds6BJo=",
"lastModified": 1761055133,
"narHash": "sha256-GHKd37uaO4vuGWvAgupV78PAlOPDG6ai/KY9H/hCiks=",
"owner": "homebrew",
"repo": "homebrew-core",
"rev": "08e77fbdb7d82c47f10ca134c84676178daff0de",
"rev": "e9aa896143d05a6bde56bd7bc85350255c541f4c",
"type": "github"
},
"original": {
@@ -588,11 +570,11 @@
]
},
"locked": {
"lastModified": 1760266702,
"narHash": "sha256-TP19RpzIyo1JeYAhKii13seYwmhkv7IOD+dCnQOrcgQ=",
"lastModified": 1760534924,
"narHash": "sha256-OIOCC86DxTxp1VG7xAiM+YABtVqp6vTkYIoAiGQMqso=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"rev": "3d7e970d4cac5d3ee3fe7cafa17cc9868fa21fed",
"rev": "100b4e000032b865563a9754e5bca189bc544764",
"type": "github"
},
"original": {
@@ -607,11 +589,11 @@
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1760534924,
"narHash": "sha256-OIOCC86DxTxp1VG7xAiM+YABtVqp6vTkYIoAiGQMqso=",
"lastModified": 1761045626,
"narHash": "sha256-N0OyyLp7VIYUdrtLSPt6y40q3+wAAeJWRwAtrKtHYtU=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"rev": "100b4e000032b865563a9754e5bca189bc544764",
"rev": "493f3428943605a9a34494cfcba32cd21633752f",
"type": "github"
},
"original": {
@@ -760,11 +742,11 @@
]
},
"locked": {
"lastModified": 1760241904,
"narHash": "sha256-OD7QnaGEVNdukYEbJbUNWPsvnDrpbZOZxVIk6Pt9Jhw=",
"lastModified": 1760846226,
"narHash": "sha256-xmU8kAsRprJiTGBTaGrwmjBP3AMA9ltlrxHKFuy5JWc=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "c9f5ea45f25652ec2f771f9426ccacb21cbbaeaa",
"rev": "5024e1901239a76b7bf94a4cd27f3507e639d49e",
"type": "github"
},
"original": {
@@ -794,15 +776,14 @@
},
"nix-vscode-extensions": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1760579789,
"narHash": "sha256-LJ4Mv9zPQi/ajvMLVV4JSzK3irLRJTcScJQUtSKiRbU=",
"lastModified": 1761011896,
"narHash": "sha256-p6oWYhpJGIV76tJExGUFRkir29yCTUYLsnKmnhzW2C0=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "97d848675f39fb32f5d3bab8ccefe0f0aff545b8",
"rev": "0a74c6a180110ac18584780eeff31e302b0bf8a4",
"type": "github"
},
"original": {
@@ -813,7 +794,7 @@
},
"nixai": {
"inputs": {
"flake-utils": "flake-utils_3",
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_10"
},
"locked": {
@@ -836,11 +817,11 @@
"nixpkgs": "nixpkgs_11"
},
"locked": {
"lastModified": 1759818599,
"narHash": "sha256-4Go3gVl3E+geWMcFQ+06qlkO/lJlSvS9dyhYiXLWYq0=",
"lastModified": 1760946398,
"narHash": "sha256-TzK0LwvZlstxEjS8vVtaYRKNZeCc5Q2xSCPc63ihOTI=",
"owner": "nix-community",
"repo": "nixos-apple-silicon",
"rev": "24ab28e47b586f741910b3a2f0428f3523a0fff3",
"rev": "7aad69158fc1b5bbbddac19040b6aae14daaa35c",
"type": "github"
},
"original": {
@@ -851,11 +832,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1760106635,
"narHash": "sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b+VolKU=",
"lastModified": 1760958188,
"narHash": "sha256-2m1S4jl+GEDtlt2QqeHil8Ny456dcGSKJAM7q3j/BFU=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "9ed85f8afebf2b7478f25db0a98d0e782c0ed903",
"rev": "d6645c340ef7d821602fd2cd199e8d1eed10afbc",
"type": "github"
},
"original": {
@@ -977,11 +958,11 @@
},
"nixpkgs-stable_3": {
"locked": {
"lastModified": 1760423683,
"narHash": "sha256-Tb+NYuJhWZieDZUxN6PgglB16yuqBYQeMJyYBGCXlt8=",
"lastModified": 1760862643,
"narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a493e93b4a259cd9fea8073f89a7ed9b1c5a1da2",
"rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c",
"type": "github"
},
"original": {
@@ -1009,15 +990,15 @@
},
"nixpkgs_11": {
"locked": {
"lastModified": 1759756860,
"narHash": "sha256-7QLUQZein1TbpouPOAsTka8vQLujHRmmTqze2IkdrqY=",
"lastModified": 1760878510,
"narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d3baaf296366efdea6737124f05b65d1cf25fa7c",
"rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67",
"type": "github"
},
"original": {
"owner": "nixos",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
@@ -1041,11 +1022,11 @@
},
"nixpkgs_13": {
"locked": {
"lastModified": 1760522646,
"narHash": "sha256-QXds0iuc8JqK8Fdpmn/Gozpz7FKsio2rT6D2VROmqCw=",
"lastModified": 1761034965,
"narHash": "sha256-FbNXKhDJ2PrH2c7luOrlKy8QcGjNs+n5feKNaFJcCh4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3ce5398bca4f937a37cbb07c9d18cb2c37be43a8",
"rev": "dacb1090113e1443c941a5c5908c414b73c7f466",
"type": "github"
},
"original": {
@@ -1073,11 +1054,11 @@
},
"nixpkgs_15": {
"locked": {
"lastModified": 1760164275,
"narHash": "sha256-gKl2Gtro/LNf8P+4L3S2RsZ0G390ccd5MyXYrTdMCFE=",
"lastModified": 1760596604,
"narHash": "sha256-J/i5K6AAz/y5dBePHQOuzC7MbhyTOKsd/GLezSbEFiM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "362791944032cb532aabbeed7887a441496d5e6e",
"rev": "3cbe716e2346710d6e1f7c559363d14e11c32a43",
"type": "github"
},
"original": {
@@ -1089,11 +1070,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1760284886,
"narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=",
"lastModified": 1760878510,
"narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43",
"rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67",
"type": "github"
},
"original": {
@@ -1249,11 +1230,11 @@
"nixpkgs": "nixpkgs_14"
},
"locked": {
"lastModified": 1760392170,
"narHash": "sha256-WftxJgr2MeDDFK47fQKywzC72L2jRc/PWcyGdjaDzkw=",
"lastModified": 1760663237,
"narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "46d55f0aeb1d567a78223e69729734f3dca25a85",
"rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
"type": "github"
},
"original": {
@@ -1351,11 +1332,11 @@
]
},
"locked": {
"lastModified": 1760236527,
"narHash": "sha256-h9+WEQtUIZaZMvA1pnbZbMM+5X39OFnW92Q8hNoToD0=",
"lastModified": 1760927964,
"narHash": "sha256-+TjujgwBpeN0aaQ/lZQ8UPsWl9oEaihgbt6FvxTlpZk=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "a38dd7f462825c75ce8567816ae38c2e7d826bfa",
"rev": "6b1e691089a62d0852f9d3fd6693ee027bc98ac3",
"type": "github"
},
"original": {
@@ -1433,11 +1414,11 @@
"nixpkgs": "nixpkgs_15"
},
"locked": {
"lastModified": 1760393368,
"narHash": "sha256-8mN3kqyqa2PKY0wwZ2UmMEYMcxvNTwLaOrrDsw6Qi4E=",
"lastModified": 1760998189,
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "ab8d56e85b8be14cff9d93735951e30c3e86a437",
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
"type": "github"
},
"original": {
@@ -1514,21 +1495,6 @@
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
@@ -1536,11 +1502,11 @@
]
},
"locked": {
"lastModified": 1760120816,
"narHash": "sha256-gq9rdocpmRZCwLS5vsHozwB6b5nrOBDNc2kkEaTXHfg=",
"lastModified": 1760945191,
"narHash": "sha256-ZRVs8UqikBa4Ki3X4KCnMBtBW0ux1DaT35tgsnB1jM4=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "761ae7aff00907b607125b2f57338b74177697ed",
"rev": "f56b1934f5f8fcab8deb5d38d42fd692632b47c2",
"type": "github"
},
"original": {

View File

@@ -14,8 +14,12 @@ in
{
programs.git = {
enable = true;
userName = "mjallen18";
userEmail = "matt.l.jallen@gmail.com";
aliases = gitAliases;
settings = {
user = {
name = "mjallen18";
email = "matt.l.jallen@gmail.com";
};
aliases = gitAliases;
};
};
}

View File

@@ -28,10 +28,9 @@ let
serviceConfig = {
ExecStart = lib.mkForce "${lib.getExe pkgs.actual-server} --config ${cfg.dataDir}/config.json";
WorkingDirectory = lib.mkForce cfg.dataDir;
StateDirectory = lib.mkForce cfg.dataDir;
StateDirectoryMode = lib.mkForce 700;
DynamicUser = lib.mkForce false;
ProtectSystem = lib.mkForce null;
ProtectSystem = lib.mkForce "full";
};
};
};

View File

@@ -7,12 +7,12 @@
}:
with lib;
let
inherit (lib.${namespace}) mkOpt mkReverseProxyOpt;
cfg = config.${namespace}.services.headscale;
headscaleConfig = {
services.headscale = {
enable = true;
openFirewall = true;
address = "0.0.0.0";
port = cfg.port;
settings = {

View File

@@ -84,7 +84,7 @@ in
services = {
nextcloud = {
enable = true;
package = pkgs.nextcloud31;
package = pkgs.nextcloud32;
# datadir = "/data";
database.createLocally = true;
hostName = "cloud.mjallen.dev";
@@ -185,7 +185,7 @@ in
environment.systemPackages = with pkgs; [
ffmpeg
# libtensorflow-bin
nextcloud31
nextcloud32
nodejs
onlyoffice-documentserver
sqlite

View File

@@ -0,0 +1,73 @@
{
config,
pkgs,
lib,
namespace,
...
}:
with lib;
let
inherit (lib.${namespace}) mkOpt mkReverseProxyOpt;
cfg = config.${namespace}.services.uptime-kuma;
uptime-kumaConfig = {
services.uptime-kuma = {
enable = true;
appriseSupport = true;
settings = {
HOST = "0.0.0.0";
PORT = "${toString cfg.port}";
# DATA_DIR = lib.mkForce cfg.dataDir;
};
};
# systemd.services = {
# uptime-kuma = {
# serviceConfig = {
# WorkingDirectory = lib.mkForce cfg.dataDir;
# StateDirectory = lib.mkForce null; # cfg.dataDir;
# StateDirectoryMode = lib.mkForce 700;
# DynamicUser = lib.mkForce false;
# ProtectSystem = lib.mkForce false;
# };
# };
# };
# users.users.uptime-kuma = {
# isSystemUser = true;
# group = "uptime-kuma";
# home = cfg.dataDir;
# };
# users.groups.uptime-kuma = {};
};
# Create reverse proxy configuration using mkReverseProxy
reverseProxyConfig = lib.${namespace}.mkReverseProxy {
name = "uptime-kuma";
subdomain = cfg.reverseProxy.subdomain;
url = "http://${cfg.localAddress}:${toString cfg.port}";
middlewares = cfg.reverseProxy.middlewares;
};
fullConfig = {
"${namespace}".services.traefik = lib.mkIf cfg.reverseProxy.enable {
reverseProxies = [ reverseProxyConfig ];
};
}
// uptime-kumaConfig;
in
{
options.${namespace}.services.uptime-kuma = {
enable = mkEnableOption "uptime-kuma service";
port = mkOpt types.int 4000 "Port for uptime-kuma to be hosted on";
localAddress = mkOpt types.str "127.0.0.1" "local address of the service";
dataDir = mkOpt types.str "" "Path to the data dir";
reverseProxy = mkReverseProxyOpt;
};
config = mkIf cfg.enable fullConfig;
}

View File

@@ -2,13 +2,15 @@
final: prev: {
rcon = inputs.nixpkgs-stable.legacyPackages.${prev.system}.rcon;
open-webui = inputs.nixpkgs-stable.legacyPackages.${prev.system}.open-webui;
immich-machine-learning = inputs.nixpkgs-stable.legacyPackages.${prev.system}.immich-machine-learning;
wyoming-faster-whisper = inputs.nixpkgs-stable.legacyPackages.${prev.system}.wyoming-faster-whisper;
ollama = inputs.nixpkgs-stable.legacyPackages.${prev.system}.ollama;
nextcloud-client = inputs.nixpkgs-stable.legacyPackages.${prev.system}.nextcloud-client;
calibre = inputs.nixpkgs-stable.legacyPackages.${prev.system}.calibre;
# immich-machine-learning = inputs.nixpkgs-stable.legacyPackages.${prev.system}.immich-machine-learning;
# wyoming-faster-whisper = inputs.nixpkgs-stable.legacyPackages.${prev.system}.wyoming-faster-whisper;
# ollama = inputs.nixpkgs-stable.legacyPackages.${prev.system}.ollama;
fex = inputs.nixpkgs-stable.legacyPackages.${prev.system}.fex;
gjs = inputs.nixpkgs-stable.legacyPackages.${prev.system}.gjs;
libsecret = inputs.nixpkgs-stable.legacyPackages.${prev.system}.libsecret;
electron = inputs.nixpkgs-stable.legacyPackages.${prev.system}.electron;
# fex = inputs.nixpkgs-stable.legacyPackages.${prev.system}.fex;
# gjs = inputs.nixpkgs-stable.legacyPackages.${prev.system}.gjs;
# libsecret = inputs.nixpkgs-stable.legacyPackages.${prev.system}.libsecret;
# electron = inputs.nixpkgs-stable.legacyPackages.${prev.system}.electron;
# sdl3 = inputs.nixpkgs-stable.legacyPackages.${prev.system}.sdl3;
}

View File

@@ -100,7 +100,7 @@
};
headscale = {
enable = true;
enable = false;
port = 2112;
dataDir = "/media/nas/main/nix-app-data/headscale";
reverseProxy = {
@@ -121,6 +121,12 @@
transcodePath = "/media/nas/main/nix-app-data/unmanic/transcode";
};
uptime-kuma = {
enable = true;
port = 3001;
dataDir = "/media/nas/main/nix-app-data/uptime-kuma";
};
glance = {
enable = true;
port = 5555;

View File

@@ -152,6 +152,7 @@ in
2222
8181
5432
3001
];
allowedUDPPorts = config.${namespace}.network.firewall.allowedTCPPorts;
};
@@ -290,7 +291,7 @@ in
virt-manager.enable = true;
coolercontrol = {
enable = true;
nvidiaSupport = true;
nvidiaSupport = false;
};
};
}