diff --git a/flake.lock b/flake.lock index 57ee7fe5..9de15aa5 100644 --- a/flake.lock +++ b/flake.lock @@ -686,10 +686,10 @@ "mysecrets": { "flake": false, "locked": { - "lastModified": 1722319213, - "narHash": "sha256-yiG+fBKr8ChhZPNREPQFuSLsYxNLjQIx3BabUIr5dp8=", + "lastModified": 1722412796, + "narHash": "sha256-bV+DbfqItujekh62XWpqC2ldkw6KqAo6LOpKLh9M7Sc=", "ref": "refs/heads/main", - "rev": "bbdba5e791ef8bdfc5e285c7cb651222453b49d8", + "rev": "8e3cf78c9f6b016625681f668e154b3705851a0d", "shallow": true, "type": "git", "url": "ssh://git@github.com/ryan4yin/nix-secrets.git" diff --git a/hosts/12kingdoms-rakushun/caddy.nix b/hosts/idols-aquamarine/caddy.nix similarity index 88% rename from hosts/12kingdoms-rakushun/caddy.nix rename to hosts/idols-aquamarine/caddy.nix index fdf82082..3adcbbbc 100644 --- a/hosts/12kingdoms-rakushun/caddy.nix +++ b/hosts/idols-aquamarine/caddy.nix @@ -17,7 +17,7 @@ in { # Reload Caddy instead of restarting it when configuration file changes. enableReload = true; user = "caddy"; # User account under which caddy runs. - dataDir = "/var/lib/caddy"; + dataDir = "/data/apps/caddy"; logDir = "/var/log/caddy"; # Additional lines of configuration appended to the global config section of the Caddyfile. @@ -36,7 +36,7 @@ in { # https://caddyserver.com/docs/caddyfile/directives/file_server virtualHosts."file.writefor.fun".extraConfig = '' - root * /var/lib/caddy/fileserver/ + root * /data/apps/caddy/fileserver/ ${hostCommonConfig} file_server browse { hide .git @@ -83,15 +83,15 @@ in { # Create Directories systemd.tmpfiles.rules = [ - "d /var/lib/caddy/fileserver/ 0755 caddy caddy" + "d /data/apps/caddy/fileserver/ 0755 caddy caddy" # directory for virtual machine's images - "d /var/lib/caddy/fileserver/vms 0755 caddy caddy" + "d /data/apps/caddy/fileserver/vms 0755 caddy caddy" ]; - # Add all my wallpapers into /var/lib/caddy/fileserver/wallpapers + # Add all my wallpapers into /data/apps/caddy/fileserver/wallpapers # Install the homepage-dashboard configuration files system.activationScripts.installCaddyWallpapers = '' - mkdir -p /var/lib/caddy/fileserver/wallpapers - ${pkgs.rsync}/bin/rsync -avz --chmod=D2755,F644 ${wallpapers}/ /var/lib/caddy/fileserver/wallpapers/ + mkdir -p /data/apps/caddy/fileserver/wallpapers + ${pkgs.rsync}/bin/rsync -avz --chmod=D2755,F644 ${wallpapers}/ /data/apps/caddy/fileserver/wallpapers/ ''; } diff --git a/hosts/idols-aquamarine/default.nix b/hosts/idols-aquamarine/default.nix index 248f9782..d6a56da3 100644 --- a/hosts/idols-aquamarine/default.nix +++ b/hosts/idols-aquamarine/default.nix @@ -2,6 +2,7 @@ mylib, myvars, pkgs, + disko, ... }: ############################################################# @@ -12,7 +13,11 @@ let hostName = "aquamarine"; # Define your hostname. in { - imports = mylib.scanPaths ./.; + imports = + (mylib.scanPaths ./.) + ++ [ + disko.nixosModules.default + ]; # supported file systems, so we can mount any removable disks with these filesystems boot.supportedFilesystems = [ diff --git a/hosts/idols-aquamarine/disko-fs.nix b/hosts/idols-aquamarine/disko-fs.nix new file mode 100644 index 00000000..cb0c9461 --- /dev/null +++ b/hosts/idols-aquamarine/disko-fs.nix @@ -0,0 +1,62 @@ +# auto disk partitioning: +# nix run github:nix-community/disko -- --mode disko ./disko-fs.nix +{ + disko.devices = { + disk.data-apps = { + type = "disk"; + device = "/dev/disk/by-id/ata-WDC_WD40EJRX-89T1XY0_WD-WCC7K0XDCZE6"; + content = { + type = "gpt"; + partitions.data-apps = { + size = "100%"; + content = { + type = "btrfs"; + # extraArgs = ["-f"]; # Override existing partition + subvolumes = { + "@persistent" = { + mountpoint = "/data/apps"; + mountOptions = [ + "compress-force=zstd:1" + # https://www.freedesktop.org/software/systemd/man/latest/systemd.mount.html + "nofail" + ]; + }; + "@backups" = { + mountpoint = "/data/backups"; + mountOptions = ["compress-force=zstd:1" "noatime" "nofail"]; + }; + "@snapshots" = { + mountpoint = "/data/apps-snapshots"; + mountOptions = ["compress-force=zstd:1" "noatime" "nofail"]; + }; + }; + }; + }; + }; + }; + disk.data-fileshare = { + type = "disk"; + device = "/dev/disk/by-id/ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K7VV9613"; + content = { + type = "gpt"; + partitions.data-fileshare = { + size = "100%"; + content = { + type = "btrfs"; + # extraArgs = ["-f"]; # Override existing partition + subvolumes = { + "@persistent" = { + mountpoint = "/data/fileshare"; + mountOptions = ["compress-force=zstd:1" "nofail"]; + }; + "@snapshots" = { + mountpoint = "/data/fileshare-snapshots"; + mountOptions = ["compress-force=zstd:1" "noatime" "nofail"]; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/hosts/12kingdoms-rakushun/exporters/default.nix b/hosts/idols-aquamarine/exporters/default.nix similarity index 100% rename from hosts/12kingdoms-rakushun/exporters/default.nix rename to hosts/idols-aquamarine/exporters/default.nix diff --git a/hosts/idols-aquamarine/filesystems.nix b/hosts/idols-aquamarine/filesystems.nix deleted file mode 100644 index bd3fe0ef..00000000 --- a/hosts/idols-aquamarine/filesystems.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - fileSystems."/data/downloads" = { - device = "/dev/disk/by-label/Downloads"; - fsType = "ntfs-3g"; - options = ["rw" "uid=1000"]; - }; - fileSystems."/data/games" = { - device = "/dev/disk/by-label/Games"; - fsType = "ntfs-3g"; - options = ["rw" "uid=1000"]; - }; -} diff --git a/hosts/12kingdoms-rakushun/gitea.nix b/hosts/idols-aquamarine/gitea.nix similarity index 98% rename from hosts/12kingdoms-rakushun/gitea.nix rename to hosts/idols-aquamarine/gitea.nix index 3b920dfd..6621a6ba 100644 --- a/hosts/12kingdoms-rakushun/gitea.nix +++ b/hosts/idols-aquamarine/gitea.nix @@ -5,7 +5,7 @@ in { enable = true; user = "gitea"; group = "gitea"; - stateDir = "/var/lib/gitea"; + stateDir = "/data/apps/gitea"; appName = "Ryan Yin's Gitea Service"; lfs.enable = true; # Enable a timer that runs gitea dump to generate backup-files of the current gitea database and repositories. diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards.yml b/hosts/idols-aquamarine/grafana/dashboards.yml similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards.yml rename to hosts/idols-aquamarine/grafana/dashboards.yml diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards/README.md b/hosts/idols-aquamarine/grafana/dashboards/README.md similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards/README.md rename to hosts/idols-aquamarine/grafana/dashboards/README.md diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards/homelab/alertmanager-9578_rev4.json b/hosts/idols-aquamarine/grafana/dashboards/homelab/alertmanager-9578_rev4.json similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards/homelab/alertmanager-9578_rev4.json rename to hosts/idols-aquamarine/grafana/dashboards/homelab/alertmanager-9578_rev4.json diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards/homelab/node-exporter-full-1860_rev33.json b/hosts/idols-aquamarine/grafana/dashboards/homelab/node-exporter-full-1860_rev33.json similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards/homelab/node-exporter-full-1860_rev33.json rename to hosts/idols-aquamarine/grafana/dashboards/homelab/node-exporter-full-1860_rev33.json diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-addons-prometheus.json b/hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-addons-prometheus.json similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-addons-prometheus.json rename to hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-addons-prometheus.json diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-addons-trivy-operator.json b/hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-addons-trivy-operator.json similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-addons-trivy-operator.json rename to hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-addons-trivy-operator.json diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-system-api-server.json b/hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-system-api-server.json similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-system-api-server.json rename to hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-system-api-server.json diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-system-coredns.json b/hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-system-coredns.json similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-system-coredns.json rename to hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-system-coredns.json diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-views-global.json b/hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-views-global.json similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-views-global.json rename to hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-views-global.json diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-views-namespaces.json b/hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-views-namespaces.json similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-views-namespaces.json rename to hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-views-namespaces.json diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-views-nodes.json b/hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-views-nodes.json similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-views-nodes.json rename to hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-views-nodes.json diff --git a/hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-views-pods.json b/hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-views-pods.json similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/dashboards/kubernetes/k8s-views-pods.json rename to hosts/idols-aquamarine/grafana/dashboards/kubernetes/k8s-views-pods.json diff --git a/hosts/12kingdoms-rakushun/grafana/datasources.yml b/hosts/idols-aquamarine/grafana/datasources.yml similarity index 100% rename from hosts/12kingdoms-rakushun/grafana/datasources.yml rename to hosts/idols-aquamarine/grafana/datasources.yml diff --git a/hosts/12kingdoms-rakushun/grafana/default.nix b/hosts/idols-aquamarine/grafana/default.nix similarity index 98% rename from hosts/12kingdoms-rakushun/grafana/default.nix rename to hosts/idols-aquamarine/grafana/default.nix index 7520bdc9..7499f8b5 100644 --- a/hosts/12kingdoms-rakushun/grafana/default.nix +++ b/hosts/idols-aquamarine/grafana/default.nix @@ -5,7 +5,7 @@ }: { services.grafana = { enable = true; - dataDir = "/var/lib/grafana"; + dataDir = "/data/apps/grafana"; # DeclarativePlugins = with pkgs.grafanaPlugins; [ grafana-piechart-panel ]; settings = { server = { diff --git a/hosts/12kingdoms-rakushun/homepage/README.md b/hosts/idols-aquamarine/homepage/README.md similarity index 100% rename from hosts/12kingdoms-rakushun/homepage/README.md rename to hosts/idols-aquamarine/homepage/README.md diff --git a/hosts/12kingdoms-rakushun/homepage/config/bookmarks.yaml b/hosts/idols-aquamarine/homepage/config/bookmarks.yaml similarity index 100% rename from hosts/12kingdoms-rakushun/homepage/config/bookmarks.yaml rename to hosts/idols-aquamarine/homepage/config/bookmarks.yaml diff --git a/hosts/12kingdoms-rakushun/homepage/config/docker.yaml b/hosts/idols-aquamarine/homepage/config/docker.yaml similarity index 100% rename from hosts/12kingdoms-rakushun/homepage/config/docker.yaml rename to hosts/idols-aquamarine/homepage/config/docker.yaml diff --git a/hosts/12kingdoms-rakushun/homepage/config/kubernetes.yaml b/hosts/idols-aquamarine/homepage/config/kubernetes.yaml similarity index 100% rename from hosts/12kingdoms-rakushun/homepage/config/kubernetes.yaml rename to hosts/idols-aquamarine/homepage/config/kubernetes.yaml diff --git a/hosts/12kingdoms-rakushun/homepage/config/services.yaml b/hosts/idols-aquamarine/homepage/config/services.yaml similarity index 100% rename from hosts/12kingdoms-rakushun/homepage/config/services.yaml rename to hosts/idols-aquamarine/homepage/config/services.yaml diff --git a/hosts/12kingdoms-rakushun/homepage/config/settings.yaml b/hosts/idols-aquamarine/homepage/config/settings.yaml similarity index 100% rename from hosts/12kingdoms-rakushun/homepage/config/settings.yaml rename to hosts/idols-aquamarine/homepage/config/settings.yaml diff --git a/hosts/12kingdoms-rakushun/homepage/config/widgets.yaml b/hosts/idols-aquamarine/homepage/config/widgets.yaml similarity index 100% rename from hosts/12kingdoms-rakushun/homepage/config/widgets.yaml rename to hosts/idols-aquamarine/homepage/config/widgets.yaml diff --git a/hosts/12kingdoms-rakushun/homepage/default.nix b/hosts/idols-aquamarine/homepage/default.nix similarity index 87% rename from hosts/12kingdoms-rakushun/homepage/default.nix rename to hosts/idols-aquamarine/homepage/default.nix index 9147284d..038410cb 100644 --- a/hosts/12kingdoms-rakushun/homepage/default.nix +++ b/hosts/idols-aquamarine/homepage/default.nix @@ -1,5 +1,9 @@ -{pkgs, ...}: let - configDir = "/var/lib/homepage-dashboard"; +{ + lib, + pkgs, + ... +}: let + configDir = "/data/apps/homepage-dashboard"; in { # https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/services/misc/homepage-dashboard.nix services.homepage-dashboard = { @@ -8,7 +12,7 @@ in { openFirewall = false; }; systemd.services.homepage-dashboard.environment = { - HOMEPAGE_CONFIG_DIR = configDir; + HOMEPAGE_CONFIG_DIR = lib.mkForce configDir; # 1. The value of env var HOMEPAGE_VAR_XXX will replace {{HOMEPAGE_VAR_XXX}} in any config # HOMEPAGE_VAR_XXX_APIKEY = "myapikey"; diff --git a/hosts/12kingdoms-rakushun/prometheus/README.md b/hosts/idols-aquamarine/prometheus/README.md similarity index 100% rename from hosts/12kingdoms-rakushun/prometheus/README.md rename to hosts/idols-aquamarine/prometheus/README.md diff --git a/hosts/12kingdoms-rakushun/prometheus/alert_rules/coredns_embedded-exporter.yml b/hosts/idols-aquamarine/prometheus/alert_rules/coredns_embedded-exporter.yml similarity index 100% rename from hosts/12kingdoms-rakushun/prometheus/alert_rules/coredns_embedded-exporter.yml rename to hosts/idols-aquamarine/prometheus/alert_rules/coredns_embedded-exporter.yml diff --git a/hosts/12kingdoms-rakushun/prometheus/alert_rules/etcd_embedded-exporter.yml b/hosts/idols-aquamarine/prometheus/alert_rules/etcd_embedded-exporter.yml similarity index 100% rename from hosts/12kingdoms-rakushun/prometheus/alert_rules/etcd_embedded-exporter.yml rename to hosts/idols-aquamarine/prometheus/alert_rules/etcd_embedded-exporter.yml diff --git a/hosts/12kingdoms-rakushun/prometheus/alert_rules/istio_embedded-exporter.yml b/hosts/idols-aquamarine/prometheus/alert_rules/istio_embedded-exporter.yml similarity index 100% rename from hosts/12kingdoms-rakushun/prometheus/alert_rules/istio_embedded-exporter.yml rename to hosts/idols-aquamarine/prometheus/alert_rules/istio_embedded-exporter.yml diff --git a/hosts/12kingdoms-rakushun/prometheus/alert_rules/kubestate-exporter.yml b/hosts/idols-aquamarine/prometheus/alert_rules/kubestate-exporter.yml similarity index 100% rename from hosts/12kingdoms-rakushun/prometheus/alert_rules/kubestate-exporter.yml rename to hosts/idols-aquamarine/prometheus/alert_rules/kubestate-exporter.yml diff --git a/hosts/12kingdoms-rakushun/prometheus/alert_rules/node-exporter.yml b/hosts/idols-aquamarine/prometheus/alert_rules/node-exporter.yml similarity index 100% rename from hosts/12kingdoms-rakushun/prometheus/alert_rules/node-exporter.yml rename to hosts/idols-aquamarine/prometheus/alert_rules/node-exporter.yml diff --git a/hosts/12kingdoms-rakushun/prometheus/default.nix b/hosts/idols-aquamarine/prometheus/default.nix similarity index 96% rename from hosts/12kingdoms-rakushun/prometheus/default.nix rename to hosts/idols-aquamarine/prometheus/default.nix index df073d47..fbfa32d6 100644 --- a/hosts/12kingdoms-rakushun/prometheus/default.nix +++ b/hosts/idols-aquamarine/prometheus/default.nix @@ -83,7 +83,7 @@ metrics_path = "/metrics"; static_configs = [ { - targets = ["${myvars.networking.hostsAddr.rakushun.ipv4}:9153"]; + targets = ["${myvars.networking.hostsAddr.aquamarine.ipv4}:9153"]; labels.type = "app"; labels.app = "v2ray"; } @@ -96,7 +96,7 @@ metrics_path = "/metrics"; static_configs = [ { - targets = ["${myvars.networking.hostsAddr.rakushun.ipv4}:10000"]; + targets = ["${myvars.networking.hostsAddr.aquamarine.ipv4}:10000"]; labels.type = "app"; labels.app = "v2ray"; } diff --git a/hosts/12kingdoms-rakushun/restic.nix b/hosts/idols-aquamarine/restic.nix similarity index 100% rename from hosts/12kingdoms-rakushun/restic.nix rename to hosts/idols-aquamarine/restic.nix diff --git a/hosts/12kingdoms-rakushun/sftpgo.nix b/hosts/idols-aquamarine/sftpgo.nix similarity index 94% rename from hosts/12kingdoms-rakushun/sftpgo.nix rename to hosts/idols-aquamarine/sftpgo.nix index 997b4717..7638bce5 100644 --- a/hosts/12kingdoms-rakushun/sftpgo.nix +++ b/hosts/idols-aquamarine/sftpgo.nix @@ -1,11 +1,18 @@ -{config, ...}: { +{config, ...}: let + user = "sftpgo"; + dataDir = "/data/apps/sftpgo"; +in { # Read SFTPGO_DEFAULT_ADMIN_USERNAME and SFTPGO_DEFAULT_ADMIN_PASSWORD from a file systemd.services.sftpgo.serviceConfig.EnvironmentFile = config.age.secrets."sftpgo.env".path; + # Create Directories + systemd.tmpfiles.rules = [ + "d ${dataDir} 0755 ${user} ${user}" + ]; + services.sftpgo = { enable = true; - user = "sftpgo"; - dataDir = "/var/lib/sftpgo"; + inherit user dataDir; extraArgs = [ "--log-level" "info" diff --git a/hosts/12kingdoms-rakushun/transmission.nix b/hosts/idols-aquamarine/transmission.nix similarity index 99% rename from hosts/12kingdoms-rakushun/transmission.nix rename to hosts/idols-aquamarine/transmission.nix index ea58eefc..a03177ac 100644 --- a/hosts/12kingdoms-rakushun/transmission.nix +++ b/hosts/idols-aquamarine/transmission.nix @@ -3,7 +3,7 @@ myvars, ... }: let - dataDir = "/var/lib/transmission"; + dataDir = "/data/apps/transmission"; name = "transmission"; in { # the headless Transmission BitTorrent daemon diff --git a/hosts/12kingdoms-rakushun/uptime-kuma.nix b/hosts/idols-aquamarine/uptime-kuma.nix similarity index 77% rename from hosts/12kingdoms-rakushun/uptime-kuma.nix rename to hosts/idols-aquamarine/uptime-kuma.nix index 825bb1be..d4e9c9ac 100644 --- a/hosts/12kingdoms-rakushun/uptime-kuma.nix +++ b/hosts/idols-aquamarine/uptime-kuma.nix @@ -1,12 +1,12 @@ -{ +{lib, ...}: { # https://github.com/NixOS/nixpkgs/blob/nixos-24.05/nixos/modules/services/monitoring/uptime-kuma.nix services.uptime-kuma = { enable = true; # https://github.com/louislam/uptime-kuma/wiki/Environment-Variables - settings = { + settings = lib.mkForce { "UPTIME_KUMA_HOST" = "127.0.0.1"; "UPTIME_KUMA_PORT" = "3350"; - "DATA_DIR" = "/var/lib/uptime-kuma/"; + "DATA_DIR" = "/data/apps/uptime-kuma/"; }; }; } diff --git a/outputs/aarch64-linux/src/12kingdoms-rakushun.nix b/outputs/aarch64-linux/src/12kingdoms-rakushun.nix index 07dc55d3..df5a4c31 100644 --- a/outputs/aarch64-linux/src/12kingdoms-rakushun.nix +++ b/outputs/aarch64-linux/src/12kingdoms-rakushun.nix @@ -24,13 +24,10 @@ "hosts/12kingdoms-${name}" ]) ++ [ - {modules.secrets.server.application.enable = true;} - {modules.secrets.server.operation.enable = true;} - {modules.secrets.server.webserver.enable = true;} ]; - home-modules = map mylib.relativeToRoot [ - "home/linux/tui.nix" - ]; + home-modules = + map mylib.relativeToRoot [ + ]; }; inherit (inputs) nixos-rk3588; diff --git a/outputs/x86_64-linux/src/idols-aquamarine.nix b/outputs/x86_64-linux/src/idols-aquamarine.nix index 0bd12d22..0e621d34 100644 --- a/outputs/x86_64-linux/src/idols-aquamarine.nix +++ b/outputs/x86_64-linux/src/idols-aquamarine.nix @@ -26,7 +26,13 @@ "hosts/idols-${name}" ]) ++ [ + {modules.secrets.server.application.enable = true;} + {modules.secrets.server.operation.enable = true;} + {modules.secrets.server.webserver.enable = true;} ]; + home-modules = map mylib.relativeToRoot [ + "home/linux/tui.nix" + ]; }; systemArgs = modules // args;