From 9caa802d46a4f9de5570b52197acd728cb96302a Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Fri, 27 Dec 2024 13:32:29 -0600 Subject: [PATCH] updates and stuff --- flake.lock | 48 +++++++++++----------- hosts/desktop/configuration.nix | 18 ++++++--- hosts/desktop/home.nix | 3 ++ hosts/nas/apps.nix | 12 ++++-- hosts/nas/apps/arrs/default.nix | 24 ++++++++++- hosts/nas/apps/nextcloud/default.nix | 60 ++++++++++++++++++++++++---- modules/apps/netbootxyz/default.nix | 23 +++++++++++ modules/apps/netbootxyz/options.nix | 58 +++++++++++++++++++++++++++ modules/default.nix | 1 + 9 files changed, 206 insertions(+), 41 deletions(-) create mode 100644 modules/apps/netbootxyz/default.nix create mode 100644 modules/apps/netbootxyz/options.nix diff --git a/flake.lock b/flake.lock index f33b087..ca3963d 100644 --- a/flake.lock +++ b/flake.lock @@ -220,11 +220,11 @@ ] }, "locked": { - "lastModified": 1734344598, - "narHash": "sha256-wNX3hsScqDdqKWOO87wETUEi7a/QlPVgpC/Lh5rFOuA=", + "lastModified": 1735053786, + "narHash": "sha256-Gm+0DcbUS338vvkwyYWms5jsWlx8z8MeQBzcnIDuIkw=", "owner": "nix-community", "repo": "home-manager", - "rev": "83ecd50915a09dca928971139d3a102377a8d242", + "rev": "35b98d20ca8f4ca1f6a2c30b8a2c8bb305a36d84", "type": "github" }, "original": { @@ -235,11 +235,11 @@ }, "impermanence": { "locked": { - "lastModified": 1734200366, - "narHash": "sha256-0NursoP4BUdnc+wy+Mq3icHkXu/RgP1Sjo0MJxV2+Dw=", + "lastModified": 1734945620, + "narHash": "sha256-olIfsfJK4/GFmPH8mXMmBDAkzVQ1TWJmeGT3wBGfQPY=", "owner": "nix-community", "repo": "impermanence", - "rev": "c6323585fa0035d780e3d8906eb1b24b65d19a48", + "rev": "d000479f4f41390ff7cf9204979660ad5dd16176", "type": "github" }, "original": { @@ -306,11 +306,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1733570843, - "narHash": "sha256-sQJAxY1TYWD1UyibN/FnN97paTFuwBw3Vp3DNCyKsMk=", + "lastModified": 1735218083, + "narHash": "sha256-MoUAbmXz9TEr7zlKDRO56DBJHe30+7B5X7nhXm+Vpc8=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "a35b08d09efda83625bef267eb24347b446c80b8", + "rev": "bc03f7818771a75716966ce8c23110b715eff2aa", "type": "github" }, "original": { @@ -348,11 +348,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1733377410, - "narHash": "sha256-tZ9JEAaHIs3TPdRZeZzHsnJmUilkcnVaUTvyprbRb1A=", + "lastModified": 1735172763, + "narHash": "sha256-a6n8RsiAolz6p24Fsr/gTndx9xr9USpKqKK6kzBeXQc=", "owner": "tpwrules", "repo": "nixos-apple-silicon", - "rev": "e8c07c3ae199b55a8c1c35a7c067c5cef9c7e929", + "rev": "3daf0637409689d7a1304cedc50d20542bc47905", "type": "github" }, "original": { @@ -363,11 +363,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1734352517, - "narHash": "sha256-mfv+J/vO4nqmIOlq8Y1rRW8hVsGH3M+I2ESMjhuebDs=", + "lastModified": 1734954597, + "narHash": "sha256-QIhd8/0x30gEv8XEE1iAnrdMlKuQ0EzthfDR7Hwl+fk=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "b12e314726a4226298fe82776b4baeaa7bcf3dcd", + "rev": "def1d472c832d77885f174089b0d34854b007198", "type": "github" }, "original": { @@ -421,11 +421,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1734323986, - "narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=", + "lastModified": 1735141468, + "narHash": "sha256-VIAjBr1qGcEbmhLwQJD6TABppPMggzOvqFsqkDoMsAY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "394571358ce82dff7411395829aa6a3aad45b907", + "rev": "4005c3ff7505313cbc21081776ad0ce5dfd7a3ce", "type": "github" }, "original": { @@ -437,11 +437,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1734424634, - "narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=", + "lastModified": 1734649271, + "narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33", + "rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507", "type": "github" }, "original": { @@ -453,11 +453,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1733212471, - "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=", + "lastModified": 1734649271, + "narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776", + "rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507", "type": "github" }, "original": { diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index 66f2e2e..334cb5d 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -359,12 +359,18 @@ in shell = pkgs.zsh; }; - hardware.sane = { - enable = true; - brscan5.enable = true; - dsseries.enable = false; - # backends-package = pkgs.brscan5; - extraBackends = [ pkgs.brscan5 ]; + hardware = { + keyboard = { + qmk.enable = true; + }; + + sane = { + enable = true; + brscan5.enable = true; + dsseries.enable = false; + # backends-package = pkgs.brscan5; + extraBackends = [ pkgs.brscan5 ]; + }; }; # This option defines the first version of NixOS you have installed on this particular machine, diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix index 8b3bc3a..18d5835 100644 --- a/hosts/desktop/home.nix +++ b/hosts/desktop/home.nix @@ -98,12 +98,15 @@ in python312Packages.pytest python312Packages.pytest-cov python312Packages.pyaml + qmk smile sops spotify ssh-to-pgp tree + unigine-heaven vesktop + via virt-manager vmware-horizon-client vorta diff --git a/hosts/nas/apps.nix b/hosts/nas/apps.nix index 544d036..2653a2f 100644 --- a/hosts/nas/apps.nix +++ b/hosts/nas/apps.nix @@ -7,7 +7,7 @@ ./apps/paperless ../../modules - # ./apps/nextcloud + ./apps/nextcloud ]; nas-apps = { @@ -17,7 +17,7 @@ environmentFiles = [ config.sops.secrets."jallen-nas/collabora".path ]; }; - deluge.enable = true; + deluge.enable = false; free-games-claimer.enable = true; @@ -35,8 +35,14 @@ mongodb.enable = true; - nextcloud = { + netbootxyz = { enable = true; + port = "4000"; + port2 = "4080"; + }; + + nextcloud = { + enable = false; httpPort = "9981"; httpsPort = "9943"; }; diff --git a/hosts/nas/apps/arrs/default.nix b/hosts/nas/apps/arrs/default.nix index 56f9bf7..509522e 100644 --- a/hosts/nas/apps/arrs/default.nix +++ b/hosts/nas/apps/arrs/default.nix @@ -60,6 +60,19 @@ in configFile = "${sabnzbdConfig}/sabnzbd.ini"; }; + services.deluge = { + enable = true; + user = "arrs"; + group = "media"; + openFirewall = true; + dataDir = "/media"; + web = { + enable = true; + port = 8112; + openFirewall = true; + }; + }; + # Create required users and groups users.users.arrs = { isSystemUser = true; @@ -75,10 +88,11 @@ in # System packages environment.systemPackages = with pkgs; [ + glib sqlite mono mediainfo - protonvpn-cli + protonvpn-cli_2 ]; # Create and set permissions for required directories @@ -150,6 +164,10 @@ in hostPath = "/media/nas/main/tv"; isReadOnly = false; }; + "/media/isos" = { + hostPath = "/media/nas/main/isos"; + isReadOnly = false; + }; }; }; @@ -167,6 +185,10 @@ in destination = "10.0.1.51:8080"; sourcePort = sabnzbdPort; } + { + destination = "10.0.1.51:8112"; + sourcePort = 8112; + } ]; }; } \ No newline at end of file diff --git a/hosts/nas/apps/nextcloud/default.nix b/hosts/nas/apps/nextcloud/default.nix index f3080c4..2b07908 100644 --- a/hosts/nas/apps/nextcloud/default.nix +++ b/hosts/nas/apps/nextcloud/default.nix @@ -25,30 +25,49 @@ in isReadOnly = false; mountPoint = "/data"; }; + + "/var/lib/nextcloud" = { + hostPath = "/media/nas/ssd/nix-app-data/nextcloud"; + isReadOnly = false; + mountPoint = "/var/lib/nextcloud"; + }; + + "/var/lib/onlyoffice" = { + hostPath = "/media/nas/ssd/nix-app-data/onlyoffice"; + isReadOnly = false; + mountPoint = "/var/lib/onlyoffice"; + }; }; config = { pkgs, lib, ... }: { + nixpkgs.config.allowUnfree = true; + services = { nextcloud = { enable = true; package = pkgs.nextcloud30; # datadir = "/data"; - hostName = "localhost"; + database.createLocally = true; + hostName = "cloud.mjallen.dev"; appstoreEnable = true; caching.redis = true; configureRedis = true; + enableImagemagick = true; + https = true; + config = { adminuser = "mjallen"; adminpassFile = adminpass; - dbhost = "10.0.1.18:3306"; - dbtype = "mysql"; - dbname = "jallen_nextcloud"; + dbhost = "localhost"; + dbtype = "sqlite"; + dbname = "nextcloud"; dbuser = "nextcloud"; - dbpassFile = dbpass; }; settings = { + allow_local_remote_servers = true; + upgrade.disable-web = false; datadirectory = "/data"; trusted_domains = [ "10.0.1.18:9988" @@ -85,12 +104,27 @@ in "OC\\\\Preview\\\\HEIC" ]; installed = true; - # config_is_read_only = true; + user_oidc = { + auto_provision = false; + soft_auto_provision = false; + }; }; }; + onlyoffice = { + enable = true; + port = 8000; + hostname = "office.mjallen.dev"; + }; }; + # System packages + environment.systemPackages = with pkgs; [ + nextcloud30 + onlyoffice-documentserver + sqlite + ]; + # Create required users and groups users.users.nextcloud = { isSystemUser = true; @@ -98,18 +132,26 @@ in group = "nextcloud"; }; + users.users.onlyoffice = { + group = lib.mkForce "nextcloud"; + }; + users.groups = { nextcloud = { gid = lib.mkForce nextcloudGroupId; }; downloads = {}; }; # Create and set permissions for required directories - system.activationScripts.radarr-dirs = '' + system.activationScripts.nextcloud-dirs = '' mkdir -p /data chown -R nextcloud:nextcloud /data + + chown -R nextcloud:nextcloud /run/secrets/jallen-nas/nextcloud chmod -R 775 /data + + chmod -R 750 /run/secrets/jallen-nas/nextcloud ''; @@ -138,6 +180,10 @@ in destination = "10.0.2.18:80"; sourcePort = 9988; } + { + destination = "10.0.2.18:8000"; + sourcePort = 8000; + } ]; }; } diff --git a/modules/apps/netbootxyz/default.nix b/modules/apps/netbootxyz/default.nix new file mode 100644 index 0000000..1dab31e --- /dev/null +++ b/modules/apps/netbootxyz/default.nix @@ -0,0 +1,23 @@ +{ lib, config, ... }: +with lib; +let + cfg = config.nas-apps.netbootxyz; +in +{ + imports = [ ./options.nix ]; + + config = mkIf cfg.enable { + + virtualisation.oci-containers.containers.${cfg.name} = { + autoStart = true; + image = cfg.image; + volumes = [ "${cfg.configPath}:/config" "${cfg.assetsPath}:/assets" ]; + ports = [ "${cfg.port}:3000" "69:69" "${cfg.port2}:80" ]; + environment = { + PUID = cfg.puid; + PGID = cfg.pgid; + TZ = cfg.timeZone; + }; + }; + }; +} diff --git a/modules/apps/netbootxyz/options.nix b/modules/apps/netbootxyz/options.nix new file mode 100644 index 0000000..4473dc5 --- /dev/null +++ b/modules/apps/netbootxyz/options.nix @@ -0,0 +1,58 @@ +{ lib, ... }: +with lib; +{ + options.nas-apps.netbootxyz = { + enable = mkEnableOption "netbootxyz docker service"; + + autoStart = mkOption { + type = types.bool; + default = true; + }; + + port = mkOption { + type = types.str; + default = "3000"; + }; + + port2 = mkOption { + type = types.str; + default = "8080"; + }; + + name = mkOption { + type = types.str; + default = "netbootxyz"; + }; + + image = mkOption { + type = types.str; + default = "ghcr.io/netbootxyz/netbootxyz"; + }; + + configPath = mkOption { + type = types.str; + default = "/media/nas/ssd/nix-app-data/netbootxyz"; + }; + + assetsPath = mkOption { + type = types.str; + default = "/media/nas/main/isos"; + }; + + + puid = mkOption { + type = types.str; + default = "911"; + }; + + pgid = mkOption { + type = types.str; + default = "1000"; + }; + + timeZone = mkOption { + type = types.str; + default = "America/Chicago"; + }; + }; +} diff --git a/modules/default.nix b/modules/default.nix index 8599817..055f2bd 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -10,6 +10,7 @@ ./apps/manyfold ./apps/mariadb ./apps/mongodb + ./apps/netbootxyz ./apps/nextcloud ./apps/ollama ./apps/open-webui