From eb456b934fe5f3812a6d4a24ce1275e1b260ebe1 Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Sat, 6 Apr 2024 18:47:18 -0500 Subject: [PATCH] updates --- flake.lock | 128 +++++++++++++++--------------- hosts/nas/configuration.nix | 23 +++++- hosts/nas/home.nix | 50 ++++++------ modules/apps/homepage/default.nix | 24 ++++++ modules/apps/homepage/options.nix | 46 +++++++++++ modules/apps/vscode/default.nix | 24 ++++++ modules/apps/vscode/options.nix | 46 +++++++++++ modules/default.nix | 2 + scripts/node | 1 + 9 files changed, 254 insertions(+), 90 deletions(-) create mode 100644 modules/apps/homepage/default.nix create mode 100644 modules/apps/homepage/options.nix create mode 100644 modules/apps/vscode/default.nix create mode 100644 modules/apps/vscode/options.nix create mode 120000 scripts/node diff --git a/flake.lock b/flake.lock index 4d441a7..a1ced9b 100644 --- a/flake.lock +++ b/flake.lock @@ -21,12 +21,12 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1707922053, - "narHash": "sha256-wSZjK+rOXn+UQiP1NbdNn5/UW6UcBxjvlqr2wh++MbM=", - "rev": "6eabc3f02fae3683bffab483e614bebfcd476b21", - "revCount": 193, + "lastModified": 1711742460, + "narHash": "sha256-0O4v6e4a1toxXZ2gf5INhg4WPE5C5T+SVvsBt+45Mcc=", + "rev": "4dbdbee45728d8ce5788db6461aaaa89d98081f0", + "revCount": 197, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/zhaofengli/attic/0.1.193%2Brev-6eabc3f02fae3683bffab483e614bebfcd476b21/018da817-367d-75ac-bd41-470d92844bf2/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/zhaofengli/attic/0.1.197%2Brev-4dbdbee45728d8ce5788db6461aaaa89d98081f0/018e8bce-1229-7d78-a052-5121272f0341/source.tar.gz" }, "original": { "type": "tarball", @@ -53,11 +53,11 @@ "yafas": "yafas" }, "locked": { - "lastModified": 1711553831, - "narHash": "sha256-lhghmdbx85HiaO0SVzShLo1URAKaQ8di6wCza0dFl3s=", + "lastModified": 1712410564, + "narHash": "sha256-SaieRX6F81W84WA973bA8NGAybjomH01y79FLLj5l6c=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "540183bd3862a6ede4acc860e1b4e5f8f79eef27", + "rev": "658cc876186c56526ebacaa5954e3c88fb7e3577", "type": "github" }, "original": { @@ -113,11 +113,11 @@ ] }, "locked": { - "lastModified": 1711506264, - "narHash": "sha256-GaQJvPyEkZu3YMdV9m1UENoeE10fkV6PcnLUtzPmuOY=", + "lastModified": 1712369716, + "narHash": "sha256-9zs+0GTfSyGHdpiA6dPJXnDKAHmfr01OE9FxDE9KvPI=", "owner": "girlbossceo", "repo": "conduwuit", - "rev": "051668b62b76270dc8ad3b011c6adbfe8ee8bde2", + "rev": "2516d44cb178547194a66fa9c44930ab9bddd910", "type": "github" }, "original": { @@ -188,12 +188,12 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1709274179, - "narHash": "sha256-O6EC6QELBLHzhdzBOJj0chx8AOcd4nDRECIagfT5Nd0=", - "rev": "4be608f4f81d351aacca01b21ffd91028c23cc22", - "revCount": 1791, + "lastModified": 1711952616, + "narHash": "sha256-WJvDdOph001fA1Ap3AyaQtz/afJAe7meSG5uJAdSE+A=", + "rev": "209048d7c545905c470f6f8c05c5061f391031a8", + "revCount": 1822, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/nix-community/fenix/0.1.1791%2Brev-4be608f4f81d351aacca01b21ffd91028c23cc22/018df913-b6d3-756c-b05c-358eca6e487d/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/nix-community/fenix/0.1.1822%2Brev-209048d7c545905c470f6f8c05c5061f391031a8/018e98ba-d842-7dad-9d6a-0d0ee173b6b1/source.tar.gz" }, "original": { "type": "tarball", @@ -368,11 +368,11 @@ ] }, "locked": { - "lastModified": 1711554349, - "narHash": "sha256-RypwcWEIFePBI0Hubfj4chanbM/G2yzJzC6wgz+dmS4=", + "lastModified": 1712390667, + "narHash": "sha256-ebq+fJZfobqpsAdGDGpxNWSySbQejRwW9cdiil6krCo=", "owner": "nix-community", "repo": "home-manager", - "rev": "179f6acaf7c068c7870542cdae72afec9427a5b0", + "rev": "b787726a8413e11b074cde42704b4af32d95545c", "type": "github" }, "original": { @@ -388,11 +388,11 @@ ] }, "locked": { - "lastModified": 1711554349, - "narHash": "sha256-RypwcWEIFePBI0Hubfj4chanbM/G2yzJzC6wgz+dmS4=", + "lastModified": 1712390667, + "narHash": "sha256-ebq+fJZfobqpsAdGDGpxNWSySbQejRwW9cdiil6krCo=", "owner": "nix-community", "repo": "home-manager", - "rev": "179f6acaf7c068c7870542cdae72afec9427a5b0", + "rev": "b787726a8413e11b074cde42704b4af32d95545c", "type": "github" }, "original": { @@ -425,11 +425,11 @@ ] }, "locked": { - "lastModified": 1711231487, - "narHash": "sha256-dRdFjStMA7GeuD/V4vzKblzuHwxMPgzEboRleVdZlUM=", + "lastModified": 1712296875, + "narHash": "sha256-Cmyer1n39J5IucCiyy84kf1XLr1Gdz/i5HKbzzEOQYM=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "1171169117f63f1de9ef2ea36efd8dcf377c6d5a", + "rev": "9b0e8712f1a9e5569036b227d539b745fcf54aad", "type": "github" }, "original": { @@ -451,11 +451,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1711497966, - "narHash": "sha256-riUI0kKAPlx0IueXm6cn2jjAnorwumLSN2kFbVvDwT8=", + "lastModified": 1712361380, + "narHash": "sha256-1cEiFtUvjBlp4J4kCvlsEobrTEsAzRBhRNvG8N1XH9w=", "owner": "martinvonz", "repo": "jj", - "rev": "423a2a54463471e525a04959c9e79e3f4a206f4a", + "rev": "93cebcd0c0e910b8b7de606982efa8430a94676e", "type": "github" }, "original": { @@ -515,11 +515,11 @@ ] }, "locked": { - "lastModified": 1711518378, - "narHash": "sha256-+wOdvNOEtkb5sGeJBXK5CpUPx+NWeVwVH6y4NdVH2os=", + "lastModified": 1712150496, + "narHash": "sha256-24MK9P+3OIBeaVsyy6r/W77/9TVLCQGDF8RVOCkK4Uk=", "owner": "YaLTeR", "repo": "niri", - "rev": "e276c906bf4bea27dc8173815ff373d04c20caaf", + "rev": "8be938197486acb2af4ba91aae0fac57619a46c8", "type": "github" }, "original": { @@ -533,11 +533,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1710717205, - "narHash": "sha256-Wf3gHh5uV6W1TV/A8X8QJf99a5ypDSugY4sNtdJDe0A=", + "lastModified": 1711763326, + "narHash": "sha256-sXcesZWKXFlEQ8oyGHnfk4xc9f2Ip0X/+YZOq3sKviI=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "bcc8afd06e237df060c85bad6af7128e05fd61a3", + "rev": "36524adc31566655f2f4d55ad6b875fb5c1a4083", "type": "github" }, "original": { @@ -563,11 +563,11 @@ }, "nix-flatpak": { "locked": { - "lastModified": 1708781964, - "narHash": "sha256-qbEZgB1mNuMADLmM64EtcRjDHXR3UFL4xVmoanv9wZU=", + "lastModified": 1711997375, + "narHash": "sha256-KvU4gOtuFMS9Il67glRGtdNfguAINT9pCaXtvCL8uI8=", "owner": "gmodena", "repo": "nix-flatpak", - "rev": "09d07c73b4d9771f527a168e0b1b6d8a1f39de28", + "rev": "45bf66f7068db79b552da864c0e87452be624d6c", "type": "github" }, "original": { @@ -606,11 +606,11 @@ "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1711325419, - "narHash": "sha256-dKZUWMB4py9rhefu1lsrCrwksK4WX/dtW8Ma807KyPA=", + "lastModified": 1712279577, + "narHash": "sha256-Bwn4rmQi2L2iX6g3ycQMA4baE3zgPHAO0xPBpr2T4/k=", "owner": "tpwrules", "repo": "nixos-apple-silicon", - "rev": "93e85575f63b32b9996676513d95288fc1c87ca9", + "rev": "d47afc3f0f8b3078c818da8609c41340af61a2ec", "type": "github" }, "original": { @@ -621,11 +621,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1711352745, - "narHash": "sha256-luvqik+i3HTvCbXQZgB6uggvEcxI9uae0nmrgtXJ17U=", + "lastModified": 1712324865, + "narHash": "sha256-+BatEWd4HlMeK7Ora+gYIkarjxFVCg9oKrIeybHIIX4=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "9a763a7acc4cfbb8603bb0231fec3eda864f81c0", + "rev": "f3b959627bca46a9f7052b8fbc464b8323e68c2c", "type": "github" }, "original": { @@ -637,12 +637,12 @@ }, "nixpkgs": { "locked": { - "lastModified": 1711333969, - "narHash": "sha256-5PiWGn10DQjMZee5NXzeA6ccsv60iLu+Xtw+mfvkUAs=", - "rev": "57e6b3a9e4ebec5aa121188301f04a6b8c354c9b", - "revCount": 602673, + "lastModified": 1712163089, + "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", + "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", + "revCount": 606852, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.602673%2Brev-57e6b3a9e4ebec5aa121188301f04a6b8c354c9b/018e7c50-ca3c-7fd6-942c-ae00212f9fe1/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.606852%2Brev-fd281bd6b7d3e32ddfa399853946f782553163b5/018ea93e-9d24-76a4-810e-9d1f01e82d37/source.tar.gz" }, "original": { "type": "tarball", @@ -651,11 +651,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1702780907, - "narHash": "sha256-blbrBBXjjZt6OKTcYX1jpe9SRof2P9ZYWPzq22tzXAA=", + "lastModified": 1711460390, + "narHash": "sha256-akSgjDZL6pVHEfSE6sz1DNSXuYX6hq+P/1Z5IoYWs7E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1e2e384c5b7c50dbf8e9c441a9e58d85f408b01f", + "rev": "44733514b72e732bd49f5511bd0203dea9b9a434", "type": "github" }, "original": { @@ -683,11 +683,11 @@ }, "nixpkgs-stable_3": { "locked": { - "lastModified": 1711460390, - "narHash": "sha256-akSgjDZL6pVHEfSE6sz1DNSXuYX6hq+P/1Z5IoYWs7E=", + "lastModified": 1712310679, + "narHash": "sha256-XgC/a/giEeNkhme/AV1ToipoZ/IVm1MV2ntiK4Tm+pw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "44733514b72e732bd49f5511bd0203dea9b9a434", + "rev": "72da83d9515b43550436891f538ff41d68eecc7f", "type": "github" }, "original": { @@ -712,27 +712,27 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1711163522, - "narHash": "sha256-YN/Ciidm+A0fmJPWlHBGvVkcarYWSC+s3NTPk/P+q3c=", + "lastModified": 1712163089, + "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "44d0940ea560dee511026a53f0e2e2cde489b4d4", + "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", "type": "github" }, "original": { "owner": "nixos", "repo": "nixpkgs", - "rev": "44d0940ea560dee511026a53f0e2e2cde489b4d4", + "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", "type": "github" } }, "nixpkgs_4": { "locked": { - "lastModified": 1711333969, - "narHash": "sha256-5PiWGn10DQjMZee5NXzeA6ccsv60iLu+Xtw+mfvkUAs=", + "lastModified": 1712163089, + "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "57e6b3a9e4ebec5aa121188301f04a6b8c354c9b", + "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", "type": "github" }, "original": { @@ -791,11 +791,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1709219524, - "narHash": "sha256-8HHRXm4kYQLdUohNDUuCC3Rge7fXrtkjBUf0GERxrkM=", + "lastModified": 1711885694, + "narHash": "sha256-dyezzeSbWMpflma+E9USmvSxuLgGcNGcGw3cOnX36ko=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "9efa23c4dacee88b93540632eb3d88c5dfebfe17", + "rev": "e4a405f877efd820bef9c0e77a02494e47c17512", "type": "github" }, "original": { diff --git a/hosts/nas/configuration.nix b/hosts/nas/configuration.nix index e8361b4..412fb6c 100644 --- a/hosts/nas/configuration.nix +++ b/hosts/nas/configuration.nix @@ -36,6 +36,8 @@ in { jellyseerr.enable = true; + homepage.enable = true; + sabnzbd.enable = true; radarr.enable = true; @@ -54,6 +56,8 @@ in { orca-slicer.enable = true; + vscode.enable = true; + swag.enable = true; }; @@ -86,6 +90,14 @@ in { enableTimeMachine = true; timeMachineMaxSize = "1T"; }; + app_data = { + public = true; + sharePath = "/mnt/ssd/ssd_app_data"; + }; + nix-config = { + public = true; + sharePath = "/home/matt/nix-config"; + }; }; }; @@ -287,6 +299,11 @@ in { # etc."nut/upsmon.conf".source = ./upsmon.conf; # List packages installed in system profile. To search, run: # $ nix search wget + + sessionVariables = rec { + CACHIX_AGENT_TOKEN = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJlY2RjYjJiNi05YWQ4LTRiYmMtYWEwYS1mNGU5Yzk1ODM2OTMiLCJzY29wZXMiOiJhZ2VudCJ9.8SENqsNZ-UIFV4atm-cZnMT6LR08Iz_raAZi5QVsppo"; + }; + systemPackages = with pkgs; [ vim wget @@ -408,7 +425,11 @@ in { isSystemUser = true; uid = 911; group = "jallen-nas"; - extraGroups = [ "jallen-nas" ]; # Enable ‘sudo’ for the user. + extraGroups = [ + "jallen-nas" + "docker" + "podman" + ]; # Enable ‘sudo’ for the user. hashedPassword = password; }; diff --git a/hosts/nas/home.nix b/hosts/nas/home.nix index 912916f..34d66db 100644 --- a/hosts/nas/home.nix +++ b/hosts/nas/home.nix @@ -31,31 +31,31 @@ programs.command-not-found.enable = true; home.packages = with pkgs; [ - homepage-dashboard + # homepage-dashboard ]; - # Configure homepage-dashboard - home.file.".homepage-dashboard/config.json".text = '' - { - "modules": [ - { - "type": "greeting", - "config": { - "greetings": [ - "Welcome to My Dashboard!" - ] - } - }, - { - "type": "clock" - }, - { - "type": "weather", - "config": { - "location": "St. Paul, MN" - } - } - ] - } - ''; + # # Configure homepage-dashboard + # home.file.".homepage-dashboard/config.json".text = '' + # { + # "modules": [ + # { + # "type": "greeting", + # "config": { + # "greetings": [ + # "Welcome to My Dashboard!" + # ] + # } + # }, + # { + # "type": "clock" + # }, + # { + # "type": "weather", + # "config": { + # "location": "St. Paul, MN" + # } + # } + # ] + # } + # ''; } diff --git a/modules/apps/homepage/default.nix b/modules/apps/homepage/default.nix new file mode 100644 index 0000000..35f5e56 --- /dev/null +++ b/modules/apps/homepage/default.nix @@ -0,0 +1,24 @@ +{ lib, pkgs, config, ... }: +with lib; +let cfg = config.nas-apps.homepage; +in { + imports = [ ./options.nix ]; + + config = mkIf cfg.enable { + virtualisation.oci-containers.containers."${cfg.name}" = { + autoStart = cfg.autoStart; + image = cfg.image; + ports = [ "${cfg.httpPort}:3000" ]; + volumes = [ + "${cfg.configPath}:/app/config" + "/var/run/docker.sock:/var/run/docker.sock" + "/var/run/podman/podman.sock:/var/run/podman.sock" + ]; + environment = { + # PUID = cfg.puid; + # PGID = cfg.pgid; + TZ = cfg.timeZone; + }; + }; + }; +} diff --git a/modules/apps/homepage/options.nix b/modules/apps/homepage/options.nix new file mode 100644 index 0000000..063993e --- /dev/null +++ b/modules/apps/homepage/options.nix @@ -0,0 +1,46 @@ +{ lib, ... }: +with lib; { + options.nas-apps.homepage = { + enable = mkEnableOption "homepage docker service"; + + autoStart = mkOption { + type = types.bool; + default = true; + }; + + httpPort = mkOption { + type = types.str; + default = "3030"; + }; + + name = mkOption { + type = types.str; + default = "homepage"; + }; + + image = mkOption { + type = types.str; + default = " ghcr.io/gethomepage/homepage"; + }; + + configPath = mkOption { + type = types.str; + default = "/mnt/ssd/ssd_app_data/homepage"; + }; + + 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/apps/vscode/default.nix b/modules/apps/vscode/default.nix new file mode 100644 index 0000000..a504d80 --- /dev/null +++ b/modules/apps/vscode/default.nix @@ -0,0 +1,24 @@ +{ lib, pkgs, config, ... }: +with lib; +let cfg = config.nas-apps.vscode; +in { + imports = [ ./options.nix ]; + + config = mkIf cfg.enable { + virtualisation.oci-containers.containers."${cfg.name}" = { + autoStart = cfg.autoStart; + image = cfg.image; + ports = [ "${cfg.port}:8443" ]; + volumes = [ + "${cfg.configPath}:/config" + "/mnt/ssd/ssd_app_data:/ssd_app_data" + "/home/admin/nix-config:/nix-config" + ]; + environment = { + PUID = cfg.puid; + PGID = cfg.pgid; + TZ = cfg.timeZone; + }; + }; + }; +} diff --git a/modules/apps/vscode/options.nix b/modules/apps/vscode/options.nix new file mode 100644 index 0000000..ba26064 --- /dev/null +++ b/modules/apps/vscode/options.nix @@ -0,0 +1,46 @@ +{ lib, ... }: +with lib; { + options.nas-apps.vscode = { + enable = mkEnableOption "vscode docker service"; + + autoStart = mkOption { + type = types.bool; + default = true; + }; + + port = mkOption { + type = types.str; + default = "8443"; + }; + + name = mkOption { + type = types.str; + default = "vscode"; + }; + + image = mkOption { + type = types.str; + default = "linuxserver/code-server"; + }; + + configPath = mkOption { + type = types.str; + default = "/mnt/ssd/ssd_app_data/vscode"; + }; + + 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 8740495..c21dd4d 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -4,6 +4,7 @@ ./apps/collabora # ./apps/dashy ./apps/discover-wrapped + ./apps/homepage ./apps/jellyfin ./apps/jellyseerr ./apps/mariadb @@ -13,5 +14,6 @@ ./apps/sabnzbd ./apps/sonarr ./apps/swag + ./apps/vscode ]; } diff --git a/scripts/node b/scripts/node new file mode 120000 index 0000000..1961d5c --- /dev/null +++ b/scripts/node @@ -0,0 +1 @@ +/run/current-system/sw/bin/node \ No newline at end of file