finally fixing the ups, plus tons of formatting

This commit is contained in:
mjallen18
2024-08-23 12:00:51 -05:00
parent a8dfd2b7da
commit cd809e4156
59 changed files with 321 additions and 641 deletions

View File

@@ -1,11 +1,4 @@
{ { lib, pkgs, ... }:
config,
lib,
pkgs,
inputs,
globals,
...
}:
let let
timezone = "America/Chicago"; timezone = "America/Chicago";
in in
@@ -99,7 +92,10 @@ in
}; };
}; };
environment.systemPackages = with pkgs; [ pinentry-curses ]; environment.systemPackages = with pkgs; [
nixd
pinentry-curses
];
# users.mutableUsers = lib.mkDefault false; # users.mutableUsers = lib.mkDefault false;

View File

@@ -43,7 +43,10 @@ in
apps.discover-wrapped.enable = lib.mkDefault false; apps.discover-wrapped.enable = lib.mkDefault false;
nix.settings.trusted-users = lib.mkDefault [ "root" user ]; nix.settings.trusted-users = lib.mkDefault [
"root"
user
];
services = { services = {
# Enable Desktop Environment. # Enable Desktop Environment.
@@ -132,7 +135,10 @@ in
user.services = { user.services = {
rclone-home-proton = { rclone-home-proton = {
enable = lib.mkDefault true; enable = lib.mkDefault true;
path = [ pkgs.bash pkgs.rclone ]; path = [
pkgs.bash
pkgs.rclone
];
script = '' script = ''
rclone sync /home/matt proton-drive:backup-nix --exclude '/home/matt/Games/**' --exclude '/home/matt/1TB/**' --exclude '/home/matt/Downloads/**' rclone sync /home/matt proton-drive:backup-nix --exclude '/home/matt/Games/**' --exclude '/home/matt/1TB/**' --exclude '/home/matt/Downloads/**'
''; '';
@@ -140,7 +146,11 @@ in
rsync-home = { rsync-home = {
enable = lib.mkDefault true; enable = lib.mkDefault true;
path = [ pkgs.bash pkgs.rsync pkgs.openssh ]; path = [
pkgs.bash
pkgs.rsync
pkgs.openssh
];
script = '' script = ''
rsync -rtpogvPlHzs --ignore-existing --exclude={'/home/matt/Games', '/home/matt/1TB', '/home/matt/Downloads/*', '/home/matt/.cache'} -e ssh /home/matt admin@10.0.1.18:/media/nas/main/backup/desktop-nix/home rsync -rtpogvPlHzs --ignore-existing --exclude={'/home/matt/Games', '/home/matt/1TB', '/home/matt/Downloads/*', '/home/matt/.cache'} -e ssh /home/matt admin@10.0.1.18:/media/nas/main/backup/desktop-nix/home
''; '';
@@ -207,9 +217,7 @@ in
wineWowPackages.waylandFull wineWowPackages.waylandFull
]; ];
sessionVariables = lib.mkDefault { sessionVariables = lib.mkDefault { STEAM_FORCE_DESKTOPUI_SCALING = "1"; };
STEAM_FORCE_DESKTOPUI_SCALING = "1";
};
}; };

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }: { ... }:
{ {
specialisation.cosmic.configuration = { specialisation.cosmic.configuration = {
services = { services = {

View File

@@ -1,10 +1,4 @@
{ { ... }:
config,
lib,
outputs,
pkgs,
...
}:
{ {
fileSystems."/media/nas/backup" = { fileSystems."/media/nas/backup" = {
device = "//10.0.1.18/Backup"; device = "//10.0.1.18/Backup";

View File

@@ -4,11 +4,9 @@
{ {
config, config,
lib, lib,
pkgs,
modulesPath, modulesPath,
... ...
}: }:
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];

View File

@@ -1,4 +1,4 @@
{ pkgs, lib, ... }: { pkgs, ... }:
let let
shellAliases = { shellAliases = {
ll = "ls -alh"; ll = "ls -alh";

View File

@@ -204,6 +204,7 @@
"nomaxsize, class:Remote Desktop Connection" "nomaxsize, class:Remote Desktop Connection"
"minsize 3840 2160, class:Remote Desktop Connection" "minsize 3840 2160, class:Remote Desktop Connection"
]; ];
windowrulev2 = [ windowrulev2 = [
"float, class:Vmware-view,title:VMware Horizon Client" "float, class:Vmware-view,title:VMware Horizon Client"
"size 3840 2160, class:Remote Desktop Connection" "size 3840 2160, class:Remote Desktop Connection"

View File

@@ -13,13 +13,9 @@
passthrough = false; passthrough = false;
gtk-layer-shell = true; gtk-layer-shell = true;
height = 0; height = 0;
modules-left = [ modules-left = [ "hyprland/workspaces" ];
"hyprland/workspaces"
];
modules-center = [ modules-center = [ "hyprland/window" ];
"hyprland/window"
];
modules-right = [ modules-right = [
"tray" "tray"
@@ -88,7 +84,11 @@
phone = ""; phone = "";
portable = ""; portable = "";
car = ""; car = "";
default = ["" "" ""]; default = [
""
""
""
];
}; };
}; };

View File

@@ -1,6 +1,4 @@
{ { ... }:
...
}:
{ {
sops.defaultSopsFile = ../../secrets/secrets.yaml; sops.defaultSopsFile = ../../secrets/secrets.yaml;
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];

View File

@@ -2,13 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page, on # your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). # https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ { pkgs, ... }:
config,
lib,
pkgs,
...
}:
{ {
imports = [ imports = [
# Include the results of the hardware scan. # Include the results of the hardware scan.
@@ -91,7 +85,7 @@
wget wget
]; ];
environment.sessionVariables = rec { environment.sessionVariables = {
DBX_CONTAINER_MANAGER = "podman"; DBX_CONTAINER_MANAGER = "podman";
}; };

View File

@@ -1,13 +1,7 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { lib, modulesPath, ... }:
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];

View File

@@ -1,9 +1,4 @@
{ { ... }:
config,
pkgs,
inputs,
...
}:
{ {
imports = [ ./trampoline-apps ]; imports = [ ./trampoline-apps ];

View File

@@ -1,11 +1,4 @@
{ { config, ... }:
inputs,
outputs,
config,
lib,
pkgs,
...
}:
{ {
nas-apps = { nas-apps = {
beszel.enable = true; beszel.enable = true;

View File

@@ -1,11 +1,4 @@
{ { pkgs, ... }:
inputs,
outputs,
config,
lib,
pkgs,
...
}:
let let
configLimit = 5; configLimit = 5;
kernel = pkgs.linuxPackages_latest; kernel = pkgs.linuxPackages_latest;

View File

@@ -3,10 +3,8 @@
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). # https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ {
inputs,
outputs, outputs,
config, config,
lib,
pkgs, pkgs,
... ...
}: }:
@@ -62,10 +60,6 @@ in
# Configure environment # Configure environment
environment = { environment = {
# etc."nut/upsd.conf".source = /home/matt/upsd.conf;
# etc."nut/upsd.users".source = /home/matt/upsd.users;
# etc."nut/upsmon.conf".source = /home/matt/upsmon.conf;
etc.crypttab.text = '' etc.crypttab.text = ''
ssd1 UUID=eff4b19c-aba7-41ab-b452-a8c6654d8754 none tpm2-device=auto ssd1 UUID=eff4b19c-aba7-41ab-b452-a8c6654d8754 none tpm2-device=auto
ssd2 UUID=c8640e19-6cd9-49d0-a355-bac09d17ea0d none tpm2-device=auto ssd2 UUID=c8640e19-6cd9-49d0-a355-bac09d17ea0d none tpm2-device=auto
@@ -79,7 +73,7 @@ in
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
sessionVariables = rec { sessionVariables = {
CACHIX_AGENT_TOKEN = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJlY2RjYjJiNi05YWQ4LTRiYmMtYWEwYS1mNGU5Yzk1ODM2OTMiLCJzY29wZXMiOiJhZ2VudCJ9.8SENqsNZ-UIFV4atm-cZnMT6LR08Iz_raAZi5QVsppo"; CACHIX_AGENT_TOKEN = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJlY2RjYjJiNi05YWQ4LTRiYmMtYWEwYS1mNGU5Yzk1ODM2OTMiLCJzY29wZXMiOiJhZ2VudCJ9.8SENqsNZ-UIFV4atm-cZnMT6LR08Iz_raAZi5QVsppo";
}; };

View File

@@ -1,159 +1,102 @@
{ { ... }:
inputs,
config,
lib,
outputs,
pkgs,
...
}:
let let
defaultOptions = [ defaultOptions = [ "compress=zstd" ];
"compress=zstd"
];
in in
{ {
fileSystems."/media/nas/ssd/nix-app-data" = { fileSystems."/media/nas/ssd/nix-app-data" = {
device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c"; device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=nix-app-data" ] ++ defaultOptions;
"subvol=nix-app-data"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/ssd/ssd_app_data" = { fileSystems."/media/nas/ssd/ssd_app_data" = {
device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c"; device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=ssd_app_data" ] ++ defaultOptions;
"subvol=ssd_app_data"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/ssd/mariadb" = { fileSystems."/media/nas/ssd/mariadb" = {
device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c"; device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=mariadb" ] ++ defaultOptions;
"subvol=mariadb"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/ssd/VMs" = { fileSystems."/media/nas/ssd/VMs" = {
device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c"; device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=VMs" ] ++ defaultOptions;
"subvol=VMs"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/3d_printer" = { fileSystems."/media/nas/main/3d_printer" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=3d_printer" ] ++ defaultOptions;
"subvol=3d_printer"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/backup" = { fileSystems."/media/nas/main/backup" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=backup" ] ++ defaultOptions;
"subvol=backup"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/books" = { fileSystems."/media/nas/main/books" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=books" ] ++ defaultOptions;
"subvol=books"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/documents" = { fileSystems."/media/nas/main/documents" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=documents" ] ++ defaultOptions;
"subvol=documents"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/homeassistant" = { fileSystems."/media/nas/main/homeassistant" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=homeassistant" ] ++ defaultOptions;
"subvol=homeassistant"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/isos" = { fileSystems."/media/nas/main/isos" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=isos" ] ++ defaultOptions;
"subvol=isos"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/movies" = { fileSystems."/media/nas/main/movies" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=movies" ] ++ defaultOptions;
"subvol=movies"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/nextcloud" = { fileSystems."/media/nas/main/nextcloud" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=nextcloud" ] ++ defaultOptions;
"subvol=nextcloud"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/photos" = { fileSystems."/media/nas/main/photos" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=photos" ] ++ defaultOptions;
"subvol=photos"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/switch" = { fileSystems."/media/nas/main/switch" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=switch" ] ++ defaultOptions;
"subvol=switch"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/tv" = { fileSystems."/media/nas/main/tv" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=tv" ] ++ defaultOptions;
"subvol=tv"
]
++ defaultOptions;
}; };
fileSystems."/media/nas/main/timemachine" = { fileSystems."/media/nas/main/timemachine" = {
device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28";
fsType = "btrfs"; fsType = "btrfs";
options = [ options = [ "subvol=timemachine" ] ++ defaultOptions;
"subvol=timemachine"
]
++ defaultOptions;
}; };
# fileSystems."/media/nas/junk/nextcloud-backup" = { # fileSystems."/media/nas/junk/nextcloud-backup" = {

View File

@@ -4,7 +4,6 @@
{ {
config, config,
lib, lib,
pkgs,
modulesPath, modulesPath,
... ...
}: }:

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }: { ... }:
{ {
home.username = "admin"; home.username = "admin";
@@ -46,33 +46,4 @@
}; };
programs.command-not-found.enable = true; programs.command-not-found.enable = true;
home.packages = with pkgs; [
# 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"
# }
# }
# ]
# }
# '';
} }

View File

@@ -1,12 +1,4 @@
{ { ... }@args:
pkgs,
lib,
LT,
config,
utils,
inputs,
...
}@args:
{ {
# Set up impernance configuration for things like bluetooth # Set up impernance configuration for things like bluetooth
# In this configuration with /etc and /var/log being persistent, only directories outside of that need to be done here. See hardware configuration for all mountpoints. # In this configuration with /etc and /var/log being persistent, only directories outside of that need to be done here. See hardware configuration for all mountpoints.

View File

@@ -1,11 +1,4 @@
{ { config, ... }:
inputs,
outputs,
config,
lib,
pkgs,
...
}:
let let
hostname = "jallen-nas"; hostname = "jallen-nas";
ipAddress = "10.0.1.18"; ipAddress = "10.0.1.18";

View File

@@ -1,11 +1,4 @@
{ { ... }:
inputs,
outputs,
config,
lib,
pkgs,
...
}:
{ {
nas-samba = { nas-samba = {
enable = true; enable = true;

View File

@@ -1,11 +1,4 @@
{ { config, pkgs, ... }:
inputs,
outputs,
config,
lib,
pkgs,
...
}:
let let
enableDisplayManager = false; enableDisplayManager = false;
hostname = "jallen-nas"; hostname = "jallen-nas";
@@ -195,7 +188,10 @@ in
description = "Protonmail Bridge"; description = "Protonmail Bridge";
enable = true; enable = true;
script = "${pkgs.protonmail-bridge}/bin/protonmail-bridge --noninteractive"; script = "${pkgs.protonmail-bridge}/bin/protonmail-bridge --noninteractive";
path = [ pkgs.pass pkgs.protonmail-bridge ]; path = [
pkgs.pass
pkgs.protonmail-bridge
];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
partOf = [ "multi-user.target" ]; partOf = [ "multi-user.target" ];
}; };
@@ -204,7 +200,10 @@ in
systemd.services = { systemd.services = {
rsync-ssd = { rsync-ssd = {
path = [ pkgs.bash pkgs.rsync ]; path = [
pkgs.bash
pkgs.rsync
];
script = '' script = ''
rsync -rtpogvPlHzs --ignore-existing /media/nas/ssd /media/nas/main/backup/ssd rsync -rtpogvPlHzs --ignore-existing /media/nas/ssd /media/nas/main/backup/ssd
''; '';

View File

@@ -1,6 +1,4 @@
{ { config, ... }:
config, ...
}:
{ {
sops.defaultSopsFile = ../../secrets/secrets.yaml; sops.defaultSopsFile = ../../secrets/secrets.yaml;
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
@@ -10,6 +8,10 @@
sops.secrets."wifi" = { }; sops.secrets."wifi" = { };
sops.secrets."jallen-nas/ups_password" = {
# restartUnits = [ "ups stuff lol" ];
};
sops.secrets."jallen-nas/collabora" = { sops.secrets."jallen-nas/collabora" = {
restartUnits = [ "podman-collabora.service" ]; restartUnits = [ "podman-collabora.service" ];
}; };

View File

@@ -1,59 +1,46 @@
{ { config, ... }:
inputs,
outputs,
config,
lib,
pkgs,
...
}:
let let
enableUps = true; enableUps = true;
upsmonCmd = "nasups@localhost 1 upsuser BogieDudie1 primary"; upsName = "nas-ups";
upsName = "nasups"; upsUser = "nas-admin";
in in
{ {
power.ups = { power.ups = {
ups = {
enable = enableUps; enable = enableUps;
openFirewall = enableUps;
mode = "netserver"; mode = "netserver";
ups.upsName = {
ups = {
"${upsName}" = {
description = "NAS UPS";
driver = "usbhid-ups"; driver = "usbhid-ups";
port = "auto"; port = "auto";
description = "NAS UPS";
}; };
upsmon = {
monitor = upsmonCmd;
};
upsd = {
enable = enableUps;
listen = {
address = 0.0 0.0 0.0;
port = 3493;
};
};
# users = {
# actions = [ "SET" ];
# instcmds = [ "ALL" ];
##* upsmon = "primary";
# passwordFile = "/home/matt/ups.conf";
# };
}; };
# Add UPS monitoring service users."${upsUser}" = {
upsmon = { passwordFile = config.sops.secrets."jallen-nas/ups_password".path;
enable = true; actions = [ "ALL" ];
# Configure UPS device instcmds = [ "ALL" ];
device = "/dev/usb/hiddev1"; # Change this to your UPS device upsmon = "primary";
driver = "usbhid-ups"; # Change this if your UPS uses a different driver
# Set UPS monitoring options
options = {
# NOTIFYCMD = "/path/to/notify-script.sh"; # Path to your notification script
POLLFREQ = 5;
POLLFREQALERT = 5;
HOSTSYNC = "on";
DEADTIME = 15;
FINALDELAY = 5;
}; };
upsmon = {
enable = enableUps;
monitor."${upsName}" = {
passwordFile = config.sops.secrets."jallen-nas/ups_password".path;
user = upsUser;
};
};
upsd = {
enable = enableUps;
listen = [
{
address = "0.0.0.0";
port = 3493;
}
];
}; };
}; };
} }

View File

@@ -2,17 +2,12 @@
# your system. Help is available in the configuration.nix(5) man page, on # your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). # https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ { lib, pkgs, ... }:
config,
lib,
pkgs,
...
}:
let let
user = "matt"; user = "matt";
password = "$y$j9T$EkPXmsmIMFFZ.WRrBYCxS1$P0kwo6e4.WM5DsqUcEqWC3MrZp5KfCjxffraMFZWu06"; password = "$y$j9T$EkPXmsmIMFFZ.WRrBYCxS1$P0kwo6e4.WM5DsqUcEqWC3MrZp5KfCjxffraMFZWu06";
SSID = "Joeys Jungle"; SSID = "Joey's Jungle 5G";
SSIDpassword = "kR8v&3Qd"; SSIDpassword = "kR8v&3Qd";
interface = "wlan0"; interface = "wlan0";
timezone = "America/Chicago"; timezone = "America/Chicago";

View File

@@ -1,35 +0,0 @@
{ config, pkgs, ... }:
{
# Portainer
virtualisation.oci-containers.containers."portainer" = {
autoStart = true;
image = "portainer/portainer-ce";
ports = [
"8000:8000"
"9443:9443"
];
volumes = [
"/var/run/docker.sock:/var/run/docker.sock"
"/media/T5/docker/config/portainer:/data"
];
};
# Jellyfin
virtualisation.oci-containers.containers."jellyfin" = {
autoStart = true;
image = "jellyfin/jellyfin";
volumes = [
"/media/T5/containers/jellyfin/config:/config"
"/media/T5/containers/jellyfin/cache:/cache"
"/media/T5/containers/jellyfin/log:/log"
"/media/T5/movies:/movies"
"/media/T5/tv:/tv"
];
ports = [ "8096:8096" ];
environment = {
JELLYFIN_LOG_DIR = "/log";
};
};
}

View File

@@ -1,13 +1,7 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { lib, modulesPath, ... }:
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];

View File

@@ -1,7 +1,4 @@
{ pkgs, ... }: { ... }:
# let
# gnome = false;
# in
{ {
home.username = "matt"; home.username = "matt";

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.beszel-agent; cfg = config.nas-apps.beszel-agent;
@@ -16,9 +11,7 @@ in
autoStart = cfg.autoStart; autoStart = cfg.autoStart;
image = cfg.image; image = cfg.image;
ports = [ "${cfg.port}:45876" ]; ports = [ "${cfg.port}:45876" ];
volumes = [ volumes = [ "${cfg.podmanSock}:/var/run/docker.sock:ro" ];
"${cfg.podmanSock}:/var/run/docker.sock:ro"
];
environment = { environment = {
PORT = cfg.port; PORT = cfg.port;
KEY = cfg.key; KEY = cfg.key;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.beszel; cfg = config.nas-apps.beszel;
@@ -16,9 +11,7 @@ in
autoStart = cfg.autoStart; autoStart = cfg.autoStart;
image = cfg.image; image = cfg.image;
ports = [ "${cfg.httpPort}:8090" ]; ports = [ "${cfg.httpPort}:8090" ];
volumes = [ volumes = [ "${cfg.configPath}:/beszel_data" ];
"${cfg.configPath}:/beszel_data"
];
environment = { environment = {
PUID = cfg.puid; PUID = cfg.puid;
PGID = cfg.pgid; PGID = cfg.pgid;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.collabora; cfg = config.nas-apps.collabora;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.deluge; cfg = config.nas-apps.deluge;
@@ -22,9 +17,7 @@ in
"${toString cfg.port3}:58846" "${toString cfg.port3}:58846"
"${toString cfg.port4}:58966" "${toString cfg.port4}:58966"
]; ];
extraOptions = [ extraOptions = [ "--cap-add=NET_ADMIN" ];
"--cap-add=NET_ADMIN"
];
volumes = [ volumes = [
"${cfg.configPath}:/config" "${cfg.configPath}:/config"
"${cfg.moviesPath}:/data/downloads" "${cfg.moviesPath}:/data/downloads"

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.jackett; cfg = config.nas-apps.jackett;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.jellyfin; cfg = config.nas-apps.jellyfin;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.jellyseerr; cfg = config.nas-apps.jellyseerr;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.mariadb; cfg = config.nas-apps.mariadb;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.mealie; cfg = config.nas-apps.mealie;

View File

@@ -35,7 +35,9 @@ in
}; };
}; };
config = { config, pkgs, lib, ... }: { config =
{ pkgs, lib, ... }:
{
services = { services = {
nextcloud = { nextcloud = {
enable = true; enable = true;
@@ -60,9 +62,7 @@ in
"10.0.1.18:9943" "10.0.1.18:9943"
"cloud.mjallen.dev" "cloud.mjallen.dev"
]; ];
trusted_proxies = [ trusted_proxies = [ "10.0.1.18" ];
"10.0.1.18"
];
maintenance_window_start = 6; maintenance_window_start = 6;
default_phone_region = "US"; default_phone_region = "US";
mail_from_address = "matt.l.jallen"; mail_from_address = "matt.l.jallen";
@@ -97,7 +97,12 @@ in
virtualHosts = { virtualHosts = {
"nextcloud-container.local" = { "nextcloud-container.local" = {
# Change this to the desired port number # Change this to the desired port number
listen = [{ addr = "0.0.0.0"; port = 9943; }]; listen = [
{
addr = "0.0.0.0";
port = 9943;
}
];
root = "/var/www/nextcloud"; root = "/var/www/nextcloud";

View File

@@ -1,8 +1,4 @@
{ { lib, config, ... }:
lib,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.nextcloud; cfg = config.nas-apps.nextcloud;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.ollama; cfg = config.nas-apps.ollama;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.open-webui; cfg = config.nas-apps.open-webui;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.orca-slicer; cfg = config.nas-apps.orca-slicer;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.radarr; cfg = config.nas-apps.radarr;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.sabnzbd; cfg = config.nas-apps.sabnzbd;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.sonarr; cfg = config.nas-apps.sonarr;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.swag; cfg = config.nas-apps.swag;
@@ -34,9 +29,7 @@ in
"${toString cfg.httpsPort}:443" "${toString cfg.httpsPort}:443"
"81:81" "81:81"
]; ];
extraOptions = [ extraOptions = [ "--cap-add=NET_ADMIN" ];
"--cap-add=NET_ADMIN"
];
volumes = [ "${cfg.configPath}:/config" ]; volumes = [ "${cfg.configPath}:/config" ];
environment = { environment = {
PUID = cfg.puid; PUID = cfg.puid;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.tdarr; cfg = config.nas-apps.tdarr;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.vscode; cfg = config.nas-apps.vscode;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-apps.wireguard; cfg = config.nas-apps.wireguard;
@@ -20,9 +15,7 @@ in
"--cap-add=NET_ADMIN" "--cap-add=NET_ADMIN"
"--sysctl=\"net.ipv4.conf.all.src_valid_mark=1\"" "--sysctl=\"net.ipv4.conf.all.src_valid_mark=1\""
]; ];
volumes = [ volumes = [ "${cfg.configPath}:/config" ];
"${cfg.configPath}:/config"
];
environment = { environment = {
PUID = cfg.puid; PUID = cfg.puid;
PGID = cfg.pgid; PGID = cfg.pgid;

View File

@@ -1,9 +1,4 @@
{ { lib, config, ... }:
lib,
pkgs,
config,
...
}:
with lib; with lib;
let let
cfg = config.nas-samba; cfg = config.nas-samba;

View File

@@ -2,6 +2,7 @@
wifi: ENC[AES256_GCM,data:Rs+4Km4DogO7XatA,iv:JUv9HkNWsv/l4Fli5sFeUeYuWG1Yju95G59FJ/Q5W50=,tag:gRFCG4d5OBMRx1QayRV8Zg==,type:str] wifi: ENC[AES256_GCM,data:Rs+4Km4DogO7XatA,iv:JUv9HkNWsv/l4Fli5sFeUeYuWG1Yju95G59FJ/Q5W50=,tag:gRFCG4d5OBMRx1QayRV8Zg==,type:str]
jallen-nas: jallen-nas:
admin_password: ENC[AES256_GCM,data:RGb0UQkLhqfBWflIc5r8yWgYvc0EZuM49uhnXH1r6o9d7Ya7eAoTn2DHdWmYnd9/LpTXPmLF07Nf8s1+/odYx8RBmaji56yWbQ==,iv:dGlvZtZFB8jsI33Qkmmb3iHTXqpVWfbd0EfNK0uX3i4=,tag:z6THeY0UmG64VwOdwnL/AA==,type:str] admin_password: ENC[AES256_GCM,data:RGb0UQkLhqfBWflIc5r8yWgYvc0EZuM49uhnXH1r6o9d7Ya7eAoTn2DHdWmYnd9/LpTXPmLF07Nf8s1+/odYx8RBmaji56yWbQ==,iv:dGlvZtZFB8jsI33Qkmmb3iHTXqpVWfbd0EfNK0uX3i4=,tag:z6THeY0UmG64VwOdwnL/AA==,type:str]
ups_password: ENC[AES256_GCM,data:yHCwM7XbbhQZwxE=,iv:m4dD6VlrplHbZB5hnV1fk5N8IOsc+fA5qhTcrqiTxDM=,tag:41EaB9z2jlNTfPw5wlWQ3g==,type:str]
collabora: ENC[AES256_GCM,data:A01H7FzgSplAEn0dsENgllyWza4=,iv:L9bPHKdeIHn7caYn78XOkdmuSk1RIuSVcIW5HFQL8PY=,tag:h0kiClGAwGB6iP327flWew==,type:str] collabora: ENC[AES256_GCM,data:A01H7FzgSplAEn0dsENgllyWza4=,iv:L9bPHKdeIHn7caYn78XOkdmuSk1RIuSVcIW5HFQL8PY=,tag:h0kiClGAwGB6iP327flWew==,type:str]
mariadb: mariadb:
root_pass: ENC[AES256_GCM,data:YLPfEG4/6FeCnrKdfXv9z4hHwtpM/KtBCYqlm4IUvA==,iv:pc9Ljasy76bfkmFRJ4M+wfEtjXBUD7Kb0S0WQZhCmOs=,tag:Wk/7gpKidirhRqw4+Pu96g==,type:str] root_pass: ENC[AES256_GCM,data:YLPfEG4/6FeCnrKdfXv9z4hHwtpM/KtBCYqlm4IUvA==,iv:pc9Ljasy76bfkmFRJ4M+wfEtjXBUD7Kb0S0WQZhCmOs=,tag:Wk/7gpKidirhRqw4+Pu96g==,type:str]
@@ -46,8 +47,8 @@ sops:
UGhsN2N0Mjl3UEJvUVlGRlJiN05WaUkKW37lU4G4CLTo6JoHC2OyhKsG/FuO+BiN UGhsN2N0Mjl3UEJvUVlGRlJiN05WaUkKW37lU4G4CLTo6JoHC2OyhKsG/FuO+BiN
pzlVJwzRnmAqwklRbc6RMbQLl2EQrp6KQcgYsUxCMH9OQ/9WJ98dxQ== pzlVJwzRnmAqwklRbc6RMbQLl2EQrp6KQcgYsUxCMH9OQ/9WJ98dxQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-08-08T02:00:25Z" lastmodified: "2024-08-23T16:35:44Z"
mac: ENC[AES256_GCM,data:IVfBgo6DeJ4WPwF5Uzol1F/ORaWehP6Ax5NvBInQAelHV3wLWIwj+BnPqtJfWIHdUxNqPZCOmEjZ4DskYRAvxWvF+GyOJZ34tkxBMkASl76l9OmCf2KZtGERyUI+JmDh3qJ1K6KP6Mc/3p0xketrndm1mz42lc42VsL6Id2NUcY=,iv:+XiyBL5slouhfK4iOhS51IoWthdsEZ6HYJd8nHlCLT4=,tag:jZ2ISWYE/aA0OF6IORgVZQ==,type:str] mac: ENC[AES256_GCM,data:gVu0zOwEB/Mup8fXdlFxg8qRMHULMmQeDAsoFw8dlZpFe2IOAHOdemiV1T4oVhhZ78Or+c4PHO0a0M1piscLoHeAVnwPURe5t8tu+8BlwmKRu0+B618ekMXnDs8OYeNvRkA0DcsBr7lF08dbVSLdjfOqrT72XIuCm8XWnPnLPyE=,iv:MoThEq02i+G4BFbHzi6B2QgF7o0TlX3Ew1pB9SUaBRc=,tag:11/5WaAfx9731mo07Vi/ZQ==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.0 version: 3.9.0