This commit is contained in:
mjallen18
2025-12-23 21:04:21 -06:00
parent 8f08f24761
commit d981fb20c2
68 changed files with 957 additions and 543 deletions

View File

@@ -1,7 +1,6 @@
{
config,
lib,
pkgs,
namespace,
...
}:

View File

@@ -1,7 +1,6 @@
{
config,
lib,
pkgs,
namespace,
...
}:
@@ -60,52 +59,61 @@
"uv"
"webkitgtk"
];
cacheDir = "/var/cache/ccache"; # default location
cacheDir = "/var/cache/ccache"; # default location
};
nixpkgs.overlays = [
(self: super: {
(_self: super: {
"linux_rpi-bcm2711" = super."linux_rpi-bcm2711".override { stdenv = super.ccacheStdenv; };
})
(self: super: {
(_self: super: {
"mesa" = super."mesa".override { buildPackages.stdenv = super.ccacheStdenv; };
})
(self: super: {
(_self: super: {
"webkitgtk_4_1" = super.stable."webkitgtk_4_1".override { clangStdenv = super.ccacheStdenv; };
})
(self: super: {
(_self: super: {
"webkitgtk_6_0" = super."webkitgtk_6_0".override { clangStdenv = super.ccacheStdenv; };
})
(self: super: {
"jellyfin-ffmpeg" = super."jellyfin-ffmpeg".override { ffmpeg_7-full = super.ffmpeg_7-full.override { stdenv = super.ccacheStdenv; }; };
(_self: super: {
"jellyfin-ffmpeg" = super."jellyfin-ffmpeg".override {
ffmpeg_7-full = super.ffmpeg_7-full.override { stdenv = super.ccacheStdenv; };
};
})
# (self: super: {
# "ffmpeg-headless-rpi" = super."ffmpeg-headless-rpi".override { ffmpeg = super.ffmpeg_7.override { stdenv = super.ccacheStdenv; }; };
# })
# todo: make these work
(self: super: {
(_self: super: {
pcsx2 = super.pcsx2.override {
llvmPackages = super.llvmPackages // {
stdenv = super.ccacheStdenv;
};
};
})
(self: super: {
(_self: super: {
driversi686Linux = super.driversi686Linux // {
mesa = super.driversi686Linux.mesa.override { stdenv = super.ccacheStdenv; buildPackages.stdenv = super.ccacheStdenv; };
mesa = super.driversi686Linux.mesa.override {
stdenv = super.ccacheStdenv;
buildPackages.stdenv = super.ccacheStdenv;
};
};
})
(self: super: {
(_self: super: {
kdePackages = super.kdePackages // {
qt3d = super.kdePackages.qt3d.override { qtbase = super.kdePackages.qtbase.override { stdenv = super.ccacheStdenv; }; };
qt3d = super.kdePackages.qt3d.override {
qtbase = super.kdePackages.qtbase.override { stdenv = super.ccacheStdenv; };
};
# qtbase = super.kdePackages.qtbase.override { stdenv = super.ccacheStdenv; };
qtwebengine = super.kdePackages.qtwebengine.override { stdenv = super.ccacheStdenv; };
};
})
(self: super: {
(_self: super: {
linuxAndFirmware = super.linuxAndFirmware // {
linuxPackages_rpi4 = super.linuxAndFirmware.linuxPackages_rpi4.override { stdenv = super.ccacheStdenv; };
linuxPackages_rpi4 = super.linuxAndFirmware.linuxPackages_rpi4.override {
stdenv = super.ccacheStdenv;
};
};
})
];

View File

@@ -1,6 +1,15 @@
{ config, namespace, lib, pkgs, ... }:
{
config,
namespace,
lib,
pkgs,
...
}:
let
hasGui = config.${namespace}.desktop.hyprland.enable || config.${namespace}.desktop.gnome.enable || config.${namespace}.desktop.cosmic.enable;
hasGui =
config.${namespace}.desktop.hyprland.enable
|| config.${namespace}.desktop.gnome.enable
|| config.${namespace}.desktop.cosmic.enable;
in
{
security = {
@@ -37,12 +46,15 @@ in
};
};
environment.systemPackages = with pkgs; [
age-plugin-yubikey
libsecret
yubikey-manager
yubikey-personalization
] ++ (if hasGui then [ yubioath-flutter ] else [ ]);
environment.systemPackages =
with pkgs;
[
age-plugin-yubikey
libsecret
yubikey-manager
yubikey-personalization
]
++ (if hasGui then [ yubioath-flutter ] else [ ]);
services = {
yubikey-agent.enable = true;

View File

@@ -1,5 +1,10 @@
{ lib, pkgs, system, ... }:
let
{
lib,
pkgs,
system,
...
}:
let
isArm = "aarch64-linux" == system;
in
{

View File

@@ -26,8 +26,8 @@ let
disableUpdateCheck = true;
extraEnvironment = cfg.extraEnvironment;
extraGroups = [
"admin"
"wheel"
"admin"
"wheel"
];
}
// optionalAttrs (cfg.hashedPassword != null) {

View File

@@ -7,7 +7,6 @@
let
name = "collabora";
cfg = config.${namespace}.services.${name};
jwtSecretFile = config.sops.secrets."jallen-nas/onlyoffice-key".path;
collaboraConfig = lib.${namespace}.mkModule {
inherit config name;
@@ -40,7 +39,7 @@ let
# Restrict loading documents from WOPI Host
storage.wopi = {
"@allow" = true;
host = ["cloud.mjallen.dev"];
host = [ "cloud.mjallen.dev" ];
};
# Set FQDN of server

View File

@@ -0,0 +1,42 @@
{
lib,
config,
namespace,
...
}:
with lib;
let
name = "dispatcharr";
cfg = config.${namespace}.services.${name};
dispatcharrConfig = lib.${namespace}.mkModule {
inherit config name;
serviceName = "podman-${name}";
description = "dispatcharr podman container";
options = { };
moduleConfig = {
virtualisation.oci-containers.containers.${name} = {
autoStart = true;
image = "ghcr.io/dispatcharr/dispatcharr";
extraOptions = [ "--device=/dev/dri" ];
volumes = [
"${cfg.configDir}/dispatcharr:/data"
"${cfg.dataDir}/movies:/movies"
"${cfg.dataDir}/tv:/tv"
];
ports = [
"${toString cfg.port}:9191"
];
environment = {
DISPATCHARR_ENV = "aio";
PUID = cfg.puid;
PGID = cfg.pgid;
TZ = cfg.timeZone;
};
};
};
};
in
{
imports = [ dispatcharrConfig ];
}

View File

@@ -249,10 +249,10 @@ let
size = "small";
widgets = [
{
type = "adguard";
url = "http://pi4.local:3000";
username = "mjallen";
password = "BogieDudie1";
type = "adguard";
url = "http://pi4.local:3000";
username = "mjallen";
password = "BogieDudie1";
}
];
}

View File

@@ -55,7 +55,7 @@ let
};
users.groups.glances = { };
};
};
};
in
{

View File

@@ -16,7 +16,7 @@ let
description = "immich";
options = { };
moduleConfig = {
# Enable immich service
# Enable immich service
services.immich = {
enable = true;
port = cfg.port;

View File

@@ -15,26 +15,26 @@ let
description = "lubelogger";
options = { };
moduleConfig = {
virtualisation.oci-containers.containers.lubelogger = {
autoStart = true;
image = "ghcr.io/hargata/lubelogger";
ports = [ "${toString cfg.port}:8080" ];
volumes = [
"${cfg.configDir}/lubelogger:/App/data"
"${cfg.configDir}/lubelogger/keys:/root/.aspnet/DataProtection-Keys"
];
environmentFiles = [
"${cfg.configDir}/lubelogger/lubelogger.env"
];
environment = {
PUID = toString config.users.users.nix-apps.uid;
PGID = toString config.users.groups.jallen-nas.gid;
TZ = "America/Chicago";
virtualisation.oci-containers.containers.lubelogger = {
autoStart = true;
image = "ghcr.io/hargata/lubelogger";
ports = [ "${toString cfg.port}:8080" ];
volumes = [
"${cfg.configDir}/lubelogger:/App/data"
"${cfg.configDir}/lubelogger/keys:/root/.aspnet/DataProtection-Keys"
];
environmentFiles = [
"${cfg.configDir}/lubelogger/lubelogger.env"
];
environment = {
PUID = toString config.users.users.nix-apps.uid;
PGID = toString config.users.groups.jallen-nas.gid;
TZ = "America/Chicago";
};
};
};
};
};
in
in
{
imports = [ lubeloggerConfig ];
}

View File

@@ -1,4 +1,9 @@
{ config, lib, namespace, ... }:
{
config,
lib,
namespace,
...
}:
let
name = "minecraft";
cfg = config.${namespace}.services.${name};

View File

@@ -5,7 +5,6 @@
...
}:
let
inherit (lib.${namespace}) mkOpt mkReverseProxyOpt;
name = "ntfy";
cfg = config.${namespace}.services.${name};

View File

@@ -5,10 +5,8 @@
...
}:
let
inherit (lib.${namespace}) mkOpt mkReverseProxyOpt;
inherit (lib.${namespace}) mkOpt;
cfg = config.${namespace}.services.onlyoffice;
jwtSecretFile = config.sops.secrets."jallen-nas/onlyoffice-key".path;
in
{
options.${namespace}.services.onlyoffice = with lib; {

View File

@@ -57,7 +57,7 @@ let
OC_SYSTEM_USER_ID = cfg.puid;
OC_LOG_LEVEL = "info";
APP_PROVIDER_PROVIDERS = "collabora";
APP_PROVIDER_COLLABORA_NAME = "Collabora";

View File

@@ -6,7 +6,6 @@
}:
with lib;
let
inherit (lib.${namespace}) mkOpt mkReverseProxyOpt;
name = "unmanic";
cfg = config.${namespace}.services.${name};