code rules
All checks were successful
MCP Tests / mcp-tests (push) Successful in 19s

This commit is contained in:
Danilo Reyes
2026-03-23 15:49:51 -06:00
parent 32729627b1
commit 66483c89ac
75 changed files with 530 additions and 512 deletions

View File

@@ -11,13 +11,13 @@ in
options.my.servers.drpp = setup.mkOptions "drpp" "drpp" 0;
config.virtualisation.oci-containers.containers.drpp = lib.mkIf cfg.enable {
image = "ghcr.io/phin05/discord-rich-presence-plex:latest";
environment = {
DRPP_UID = toString config.users.users.jawz.uid;
DRPP_GID = toString config.users.groups.users.gid;
};
volumes = [
"${config.my.containerData}/drpp:/app/data"
"/run/user/${toString config.users.users.jawz.uid}:/run/app"
];
environment = {
DRPP_UID = toString config.users.users.jawz.uid;
DRPP_GID = toString config.users.groups.users.gid;
};
};
}

View File

@@ -15,9 +15,7 @@ in
flameSecret = setup.mkOptions "flameSecret" "qampqwn4wprhqny8h8zj" 5007;
};
config = lib.mkIf enable {
sops.secrets = {
flame.sopsFile = ../../secrets/env.yaml;
};
sops.secrets.flame.sopsFile = ../../secrets/env.yaml;
virtualisation.oci-containers.containers = lib.mkIf enable {
flame = lib.mkIf cfg.enable {
autoStart = true;

View File

@@ -9,11 +9,11 @@ let
cfg = config.my.servers.gitea;
in
{
options.my.servers.gitea = setup.mkOptions "gitea" "git" 9083;
imports = [
../nix/gitea-actions-runners/nixos.nix
../nix/gitea-actions-runners/docker.nix
];
options.my.servers.gitea = setup.mkOptions "gitea" "git" 9083;
config = lib.mkIf (cfg.enable && config.my.secureHost) {
sops.secrets.gitea.sopsFile = ../../secrets/env.yaml;
users.groups.gitea.gid = 974;

View File

@@ -154,8 +154,8 @@
icon = "${name}.png";
href = url;
widget = {
type = name;
inherit url;
type = name;
username = "{{HOMEPAGE_VAR_QBIT_USERNAME}}";
password = "{{HOMEPAGE_VAR_QBIT_PASSWORD}}";
};
@@ -169,8 +169,8 @@
icon = "${name}.png";
href = url;
widget = {
type = name;
inherit url;
type = name;
key = "{{HOMEPAGE_VAR_SABNZBD}}";
};
};
@@ -231,9 +231,9 @@
icon = "paperless.png";
href = url;
widget = {
inherit url;
type = name;
key = "{{HOMEPAGE_VAR_PAPERLESS}}";
inherit url;
fields = [
"total"
"inbox"
@@ -262,9 +262,9 @@
icon = "${name}.png";
href = url;
widget = {
inherit url;
type = name;
key = "{{HOMEPAGE_VAR_STASH}}";
inherit url;
fields = [
"scenes"
"images"

View File

@@ -22,14 +22,12 @@
{
openweathermap = {
label = "Apodaca";
format.maximumFractionDigits = 1;
latitude = 25.760339;
longitude = -100.2190662;
units = "metric";
provider = "openweathermap";
cache = 5;
format = {
maximumFractionDigits = 1;
};
};
}
]

View File

@@ -54,11 +54,9 @@ in
};
timers.sub-sync = {
enable = true;
timerConfig.OnCalendar = "20:00";
description = "syncronizes subtitles downloaded & modified today";
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = "20:00";
};
};
};
})

View File

@@ -13,11 +13,6 @@ in
autoStart = true;
image = "linuxserver/lidarr:latest";
ports = [ "${toString cfg.port}:${toString cfg.port}" ];
environment = {
TZ = config.my.timeZone;
PUID = toString config.users.users.jawz.uid;
PGID = toString config.users.groups.piracy.gid;
};
volumes = [
"/srv/pool/multimedia:/data"
"/srv/pool/multimedia/media/Music:/music"
@@ -31,5 +26,10 @@ in
extraOptions = [
"--network=host"
];
environment = {
TZ = config.my.timeZone;
PUID = toString config.users.users.jawz.uid;
PGID = toString config.users.groups.piracy.gid;
};
};
}

View File

@@ -15,6 +15,7 @@ in
image = "krateng/maloja:latest";
ports = [ "${toString cfg.port}:${toString cfg.port}" ];
environmentFiles = [ config.sops.secrets.maloja.path ];
volumes = [ "${config.my.containerData}/maloja:/mljdata" ];
environment = {
TZ = config.my.timeZone;
MALOJA_TIMEZONE = "-6";
@@ -23,7 +24,6 @@ in
MALOJA_DATA_DIRECTORY = "/mljdata";
MALOJA_SKIP_SETUP = "true";
};
volumes = [ "${config.my.containerData}/maloja:/mljdata" ];
};
};
}

View File

@@ -15,6 +15,7 @@ in
image = "foxxmd/multi-scrobbler:latest";
ports = [ "${toString cfg.port}:${toString cfg.port}" ];
environmentFiles = [ config.sops.secrets.multi-scrobbler.path ];
volumes = [ "${config.my.containerData}/multi-scrobbler:/config" ];
environment = {
TZ = config.my.timeZone;
PUID = toString config.users.users.jawz.uid;
@@ -25,7 +26,6 @@ in
PLEX_URL = "http://192.168.100.15:32400";
WS_ENABLE = "true";
};
volumes = [ "${config.my.containerData}/multi-scrobbler:/config" ];
};
};
}

View File

@@ -21,8 +21,8 @@ let
version = "12.70";
in
{
pname = "Image-ExifTool";
inherit version;
pname = "Image-ExifTool";
src = pkgs.fetchurl {
url = "https://exiftool.org/Image-ExifTool-${version}.tar.gz";
hash = "sha256-TLJSJEXMPj870TkExq6uraX8Wl4kmNerrSlX3LQsr/4=";
@@ -54,7 +54,9 @@ in
"openssl-1.1.1v"
];
users = {
groups.nextcloud = { inherit gid; };
groups.nextcloud = {
inherit gid;
};
users.nextcloud = {
inherit uid;
isSystemUser = true;
@@ -189,20 +191,24 @@ in
go-vod = lib.mkIf config.my.servers.go-vod.enable {
autoStart = true;
image = "radialapps/go-vod:latest";
volumes = [ "ncdata:/var/www/html:ro" ];
extraOptions = [
"--device=/dev/dri" # VA-API (omit for NVENC)
];
environment = {
TZ = config.my.timeZone;
NEXTCLOUD_HOST = "https://${config.services.nextcloud.hostName}";
NVIDIA_VISIBLE_DEVICES = "all";
};
volumes = [ "ncdata:/var/www/html:ro" ];
extraOptions = [
"--device=/dev/dri" # VA-API (omit for NVENC)
];
};
collabora = lib.mkIf cfgC.enable {
autoStart = true;
image = "collabora/code:latest";
ports = [ "${toString cfgC.port}:${toString cfgC.port}" ];
extraOptions = [
"--cap-add"
"MKNOD"
];
environment = {
TZ = config.my.timeZone;
domain = cfg.host;
@@ -219,10 +225,6 @@ in
DONT_GEN_SSL_CERT = "1";
SLEEPFORDEBUGGER = "0";
};
extraOptions = [
"--cap-add"
"MKNOD"
];
};
};
systemd = lib.mkIf cfg.enableCron {
@@ -248,11 +250,9 @@ in
};
timers.nextcloud-cronjob = {
enable = true;
timerConfig.OnCalendar = "*:0/10";
description = "Runs various nextcloud-related cronjobs";
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = "*:0/10";
};
};
};
})

View File

@@ -99,16 +99,6 @@ in
};
user = {
services = {
qbit_manage = {
restartIfChanged = true;
description = "Tidy up my torrents";
wantedBy = [ "default.target" ];
serviceConfig = {
Type = "oneshot";
TimeoutStartSec = "5min";
ExecStart = "${qbit_manageEnv}/bin/python ${qbit_manage}/qbit_manage.py -r -c /home/jawz/.config/qbit_manage/config.yml";
};
};
unpackerr = lib.mkIf config.my.servers.unpackerr.enable {
enable = true;
restartIfChanged = true;
@@ -130,6 +120,16 @@ in
ExecStart = "${pkgs.unpackerr}/bin/unpackerr";
};
};
qbit_manage = {
restartIfChanged = true;
description = "Tidy up my torrents";
wantedBy = [ "default.target" ];
serviceConfig = {
Type = "oneshot";
TimeoutStartSec = "5min";
ExecStart = "${qbit_manageEnv}/bin/python ${qbit_manage}/qbit_manage.py -r -c /home/jawz/.config/qbit_manage/config.yml";
};
};
};
timers.qbit_manage = {
enable = true;

View File

@@ -15,13 +15,13 @@ in
image = "ghcr.io/ignisda/ryot:v10";
ports = [ "${toString cfg.port}:8000" ];
environmentFiles = [ config.sops.secrets.ryot.path ];
volumes = [ "${config.my.postgresSocket}:${config.my.postgresSocket}" ];
environment = {
RUST_LOG = "ryot=debug,sea_orm=debug";
TZ = config.my.timeZone;
DATABASE_URL = "postgres:///ryot?host=${config.my.postgresSocket}";
FRONTEND_INSECURE_COOKIES = "true";
};
volumes = [ "${config.my.postgresSocket}:${config.my.postgresSocket}" ];
};
};
}

View File

@@ -28,8 +28,12 @@ in
config = lib.mkMerge [
(lib.mkIf (cfg.enable && config.my.secureHost) {
my.servers = {
synapse = { inherit domain; };
element = { inherit domain; };
synapse = {
inherit domain;
};
element = {
inherit domain;
};
};
users.groups.matrix-synapse = { inherit gid; };
users.users.matrix-synapse = {

View File

@@ -17,8 +17,8 @@ let
version ? "git",
}:
pkgs.stdenvNoCC.mkDerivation {
name = "${libname}-${version}";
inherit src;
name = "${libname}-${version}";
installPhase = ''
runHook preInstall
mkdir -p "$out/lib/haxe/${withCommas libname}/${withCommas version}"

View File

@@ -18,6 +18,7 @@ in
ports = [ "${toString cfg.port}:8000" ];
dependsOn = [ "yamtrack-redis" ];
environmentFiles = [ config.sops.secrets.yamtrack.path ];
volumes = [ "${config.my.postgresSocket}:${config.my.postgresSocket}" ];
environment = {
TZ = config.my.timeZone;
URLS = cfg.url;
@@ -31,7 +32,6 @@ in
REDIS_URL = "redis://yamtrack-redis:6379/0";
SOCIAL_PROVIDERS = "allauth.socialaccount.providers.openid_connect";
};
volumes = [ "${config.my.postgresSocket}:${config.my.postgresSocket}" ];
};
};
};