cleanup
This commit is contained in:
34
.vscode/tasks.json
vendored
34
.vscode/tasks.json
vendored
@@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
|
||||||
// for the documentation about the tasks.json format
|
|
||||||
"version": "2.0.0",
|
|
||||||
"tasks": [
|
|
||||||
{
|
|
||||||
"label": "rebuild",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "#!/usr/bin/env bash sudo nixos-rebuild boot",
|
|
||||||
"problemMatcher": [],
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "switch",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "#!/usr/bin/env bash sudo nixos-rebuild switch",
|
|
||||||
"problemMatcher": [],
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "rebuild nas",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "#!/usr/bin/env bash nixos-rebuild boot --use-remote-sudo --target-host admin@10.0.1.18 --build-host admin@10.0.1.18 --flake ~/nix-config#jallen-nas",
|
|
||||||
"problemMatcher": [],
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -8,37 +8,21 @@
|
|||||||
./apps/jellyfin
|
./apps/jellyfin
|
||||||
./apps/jellyseerr
|
./apps/jellyseerr
|
||||||
./apps/lubelogger
|
./apps/lubelogger
|
||||||
./apps/netbootxyz
|
|
||||||
./apps/nextcloud
|
./apps/nextcloud
|
||||||
./apps/ollama
|
./apps/ollama
|
||||||
./apps/paperless
|
./apps/paperless
|
||||||
./apps/paperless-ai
|
|
||||||
./apps/traefik
|
./apps/traefik
|
||||||
./apps/vert
|
|
||||||
./apps/wyoming
|
./apps/wyoming
|
||||||
../../modules
|
../../modules
|
||||||
|
|
||||||
./apps/netdata
|
|
||||||
];
|
];
|
||||||
|
|
||||||
nas-apps = {
|
nas-apps = {
|
||||||
|
|
||||||
free-games-claimer.enable = true;
|
free-games-claimer.enable = true;
|
||||||
|
|
||||||
manyfold.enable = true;
|
manyfold.enable = true;
|
||||||
|
|
||||||
netbootxyz = {
|
|
||||||
enable = true;
|
|
||||||
port = "4000";
|
|
||||||
port2 = "4080";
|
|
||||||
};
|
|
||||||
|
|
||||||
paperless-ai.enable = false;
|
paperless-ai.enable = false;
|
||||||
|
|
||||||
tdarr.enable = true;
|
tdarr.enable = true;
|
||||||
|
|
||||||
# spotify cancelled, data still in db
|
|
||||||
your_spotify.enable = false;
|
|
||||||
mongodb.enable = false;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ in
|
|||||||
PROTOCOL = "http";
|
PROTOCOL = "http";
|
||||||
ROOT_URL = rootUrl;
|
ROOT_URL = rootUrl;
|
||||||
SSH_PORT = sshPort;
|
SSH_PORT = sshPort;
|
||||||
|
# SSH_LISTEN_PORT = sshPort;
|
||||||
};
|
};
|
||||||
service = {
|
service = {
|
||||||
REGISTER_EMAIL_CONFIRM = false;
|
REGISTER_EMAIL_CONFIRM = false;
|
||||||
@@ -96,9 +97,13 @@ in
|
|||||||
sourcePort = httpPort;
|
sourcePort = httpPort;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
destination = "${localAddress}:${toString sshPort}";
|
destination = "${localAddress}:${toString 22}";
|
||||||
sourcePort = sshPort;
|
sourcePort = sshPort;
|
||||||
}
|
}
|
||||||
|
# {
|
||||||
|
# destination = "${localAddress}:${toString 22}";
|
||||||
|
# sourcePort = 22;
|
||||||
|
# }
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
services.netdata = {
|
|
||||||
enable = true;
|
|
||||||
# package = pkgs.netdataCloud;
|
|
||||||
package = pkgs.netdata.override {
|
|
||||||
withCloudUi = true;
|
|
||||||
};
|
|
||||||
configDir."python.d.conf" = pkgs.writeText "python.d.conf" ''
|
|
||||||
samba: yes
|
|
||||||
'';
|
|
||||||
# claimTokenFile = config.sops.secrets."jallen-nas/netdata-token".path;
|
|
||||||
|
|
||||||
config = {
|
|
||||||
# enable machine learning plugin
|
|
||||||
ml = {
|
|
||||||
"enabled" = "yes";
|
|
||||||
};
|
|
||||||
|
|
||||||
# enable samba plugin
|
|
||||||
plugins = {
|
|
||||||
"enable running new plugins" = "yes";
|
|
||||||
"ioping.plugin" = "yes";
|
|
||||||
"freeipmi.plugin" = "yes";
|
|
||||||
"perf.plugin" = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# add samba and sudo to path of python plugin
|
|
||||||
systemd.services.netdata.path = [ pkgs.samba "/run/wrappers" ];
|
|
||||||
|
|
||||||
# permit to run sudo smbstatus -P
|
|
||||||
security.sudo.extraConfig = ''
|
|
||||||
netdata ALL=(root) NOPASSWD: ${pkgs.samba}/bin/smbstatus
|
|
||||||
'';
|
|
||||||
|
|
||||||
# as documented here : https://github.com/netdata/netdata/blob/master/system/netdata.service.in
|
|
||||||
# review capabilityset above if other plugins are non functional
|
|
||||||
systemd.services.netdata.serviceConfig.CapabilityBoundingSet = ["CAP_SETGID"];
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
{ lib, config, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.nas-apps.paperless-ai;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [ ./options.nix ];
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
|
|
||||||
virtualisation.oci-containers.containers.${cfg.name} = {
|
|
||||||
autoStart = true;
|
|
||||||
image = cfg.image;
|
|
||||||
extraOptions = [
|
|
||||||
"--device=nvidia.com/gpu=0"
|
|
||||||
"--network=bridge"
|
|
||||||
"--add-host=host.docker.internal:host-gateway"
|
|
||||||
];
|
|
||||||
volumes = [ "${cfg.configPath}:/app/data" ];
|
|
||||||
ports = [ "${cfg.port}:3000" ];
|
|
||||||
environment = {
|
|
||||||
NVIDIA_VISIBLE_DEVICES = "all";
|
|
||||||
NVIDIA_DRIVER_CAPABILITIES = "all";
|
|
||||||
PAPERLESS_API_URL = "http://10.0.1.20:28981";
|
|
||||||
PAPERLESS_API_TOKEN = "6f26e1a4632f23bc2da5b74c799ccbda18fa8022";
|
|
||||||
PUID = cfg.puid;
|
|
||||||
PGID = cfg.pgid;
|
|
||||||
TZ = cfg.timeZone;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
{ lib, ... }:
|
|
||||||
with lib;
|
|
||||||
{
|
|
||||||
options.nas-apps.paperless-ai = {
|
|
||||||
enable = mkEnableOption "paperless-ai docker service";
|
|
||||||
|
|
||||||
autoStart = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
port = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "3023";
|
|
||||||
};
|
|
||||||
|
|
||||||
name = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "paperless-ai";
|
|
||||||
};
|
|
||||||
|
|
||||||
image = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "clusterzx/paperless-ai";
|
|
||||||
};
|
|
||||||
|
|
||||||
configPath = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "/media/nas/ssd/nix-app-data/paperless-ai";
|
|
||||||
};
|
|
||||||
|
|
||||||
puid = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "911";
|
|
||||||
};
|
|
||||||
|
|
||||||
pgid = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "1000";
|
|
||||||
};
|
|
||||||
|
|
||||||
timeZone = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "America/Chicago";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
virtualisation.oci-containers.containers.vert = {
|
|
||||||
autoStart = true;
|
|
||||||
image = "ghcr.io/vert-sh/vert";
|
|
||||||
ports = [ "9876:80" ];
|
|
||||||
environment = {
|
|
||||||
PUID = toString config.users.users.nix-apps.uid;
|
|
||||||
PGID = toString config.users.groups.jallen-nas.gid;
|
|
||||||
TZ = "America/Chicago";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -6,7 +6,6 @@ let
|
|||||||
9000 # authentik
|
9000 # authentik
|
||||||
2342 # grafana
|
2342 # grafana
|
||||||
51820 # wireguard
|
51820 # wireguard
|
||||||
19999 # netdata
|
|
||||||
1025
|
1025
|
||||||
1143
|
1143
|
||||||
10200
|
10200
|
||||||
@@ -16,6 +15,7 @@ let
|
|||||||
4000 # netbootxyz
|
4000 # netbootxyz
|
||||||
4080 # netbootxyz
|
4080 # netbootxyz
|
||||||
3000 # gitea
|
3000 # gitea
|
||||||
|
2222 # gitea ssh
|
||||||
3300
|
3300
|
||||||
9898
|
9898
|
||||||
6754 # lubelogger
|
6754 # lubelogger
|
||||||
|
|||||||
@@ -101,9 +101,6 @@ in
|
|||||||
"jallen-nas/open-webui" = {
|
"jallen-nas/open-webui" = {
|
||||||
restartUnits = [ "open-webui.service" ];
|
restartUnits = [ "open-webui.service" ];
|
||||||
};
|
};
|
||||||
"jallen-nas/netdata-token" = {
|
|
||||||
restartUnits = [ "netdata.service" ];
|
|
||||||
};
|
|
||||||
"jallen-nas/paperless/secret" = {
|
"jallen-nas/paperless/secret" = {
|
||||||
restartUnits = [ "container@paperless.service" ];
|
restartUnits = [ "container@paperless.service" ];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ jallen-nas:
|
|||||||
secret: ENC[AES256_GCM,data:qrwi13OLSM1Oww4pttfblrjvsdPR,iv:IITw2M6YfoSP3nECeUPWlhr56n7u03ivp8+fx5MDd54=,tag:4thPUaa2ueO95LOB5SiL6w==,type:str]
|
secret: ENC[AES256_GCM,data:qrwi13OLSM1Oww4pttfblrjvsdPR,iv:IITw2M6YfoSP3nECeUPWlhr56n7u03ivp8+fx5MDd54=,tag:4thPUaa2ueO95LOB5SiL6w==,type:str]
|
||||||
authentik-client-id: ENC[AES256_GCM,data:8kHTmnT4kbxrN7Kyet1eu1KB+jA7bBx1Zs64cn5VZm0VjdSfYOwxxA==,iv:iTgsd9XWnRCQoBxj0QVjbIrSjPoYdnXv4lmn3qfllUA=,tag:CDAWMAOQ6X2sbu8RD8oiBw==,type:str]
|
authentik-client-id: ENC[AES256_GCM,data:8kHTmnT4kbxrN7Kyet1eu1KB+jA7bBx1Zs64cn5VZm0VjdSfYOwxxA==,iv:iTgsd9XWnRCQoBxj0QVjbIrSjPoYdnXv4lmn3qfllUA=,tag:CDAWMAOQ6X2sbu8RD8oiBw==,type:str]
|
||||||
authentik-client-secret: ENC[AES256_GCM,data:WROqpqGQrZ8+Xy6v4dxABfqWs4lPDnl/OdsD2xvw5nqZ8mD66IJMx5eoS9UJ1aIOAr0bvQCUyMtC+xzSMcEORCmMoxT7qfg2rV6KZgRzDtRGt1loYdHECXpz1hGAc87YwiD8fVrEsuTAmlK8N6tmmfie5o6QakcFeoTpZSlAUJ0=,iv:fQg5itx52OIZeqBSylSbwtR7FD/8kF0YiDZ0jguIKus=,tag:yIm8q0PJQVDt7F4IIljbdg==,type:str]
|
authentik-client-secret: ENC[AES256_GCM,data:WROqpqGQrZ8+Xy6v4dxABfqWs4lPDnl/OdsD2xvw5nqZ8mD66IJMx5eoS9UJ1aIOAr0bvQCUyMtC+xzSMcEORCmMoxT7qfg2rV6KZgRzDtRGt1loYdHECXpz1hGAc87YwiD8fVrEsuTAmlK8N6tmmfie5o6QakcFeoTpZSlAUJ0=,iv:fQg5itx52OIZeqBSylSbwtR7FD/8kF0YiDZ0jguIKus=,tag:yIm8q0PJQVDt7F4IIljbdg==,type:str]
|
||||||
netdata-token: ENC[AES256_GCM,data:kQiSTLxIztDoka5aa4/ymdp6Xyhc9VC2hwmr/afelGifjN7V7MgzhlMT6xfKoIQ+6RboH6kq50pS5A0AmY/ojog8QEP3k6zGjEsvlV3kNCGWvBU97L+7PH4okIApSYu+Hq996121rSOof+Pgk5mbG7Of5DZGeAJPXe9Dc9Z0cSLJrO6s6zCd,iv:0csCFa1XshbuGp0O3Kxs/NvQsJmadB091ZPSPAnuBL4=,tag:roTlcbeRwA/26G2GkhaaqA==,type:str]
|
|
||||||
wireguard:
|
wireguard:
|
||||||
private: ENC[AES256_GCM,data:/nOkn5nMrEEeKi1ySo9fAp+r1lQL02k0FZA99hUIKq7THvVWNaQ/Z6paoJU=,iv:iCTfGSdjJ0wMwv/34dv2ygKSm3qAJq6czOErMaFqHtg=,tag:EJZzBlVB5FSvveo5MWtC1g==,type:str]
|
private: ENC[AES256_GCM,data:/nOkn5nMrEEeKi1ySo9fAp+r1lQL02k0FZA99hUIKq7THvVWNaQ/Z6paoJU=,iv:iCTfGSdjJ0wMwv/34dv2ygKSm3qAJq6czOErMaFqHtg=,tag:EJZzBlVB5FSvveo5MWtC1g==,type:str]
|
||||||
public: ENC[AES256_GCM,data:rOmyhwpolxNV2JroLdh90gYAuCGNZu/gY5NBxkHHNJ+qEblmDsom9alNHMQ=,iv:bF+XCO9lPHopLCEILTT4gA349d/Sa5qReSKN70EA3d4=,tag:Yx2TL/37n5Uohlwnlx97vg==,type:str]
|
public: ENC[AES256_GCM,data:rOmyhwpolxNV2JroLdh90gYAuCGNZu/gY5NBxkHHNJ+qEblmDsom9alNHMQ=,iv:bF+XCO9lPHopLCEILTT4gA349d/Sa5qReSKN70EA3d4=,tag:Yx2TL/37n5Uohlwnlx97vg==,type:str]
|
||||||
@@ -150,7 +149,7 @@ sops:
|
|||||||
TWRvYVZ5eklJQU81SzBVZ1BBbENuTkEKwMTa1cAH3sNm2npVhQ/dDl5M7Q8T3vOx
|
TWRvYVZ5eklJQU81SzBVZ1BBbENuTkEKwMTa1cAH3sNm2npVhQ/dDl5M7Q8T3vOx
|
||||||
9slEt5EVUgqaJVhVr9AM9aAhghWJa5i5+Eh628C6p53XFxrO+6zUYA==
|
9slEt5EVUgqaJVhVr9AM9aAhghWJa5i5+Eh628C6p53XFxrO+6zUYA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-04-24T19:31:51Z"
|
lastmodified: "2025-04-24T20:09:26Z"
|
||||||
mac: ENC[AES256_GCM,data:uUlq9fHcjs1UsPBYSnpRq2OOH3AH24bq7QnIjaS1HsIoqxqJiUD6vmljQYUHUQoFV7w8yq8tD6z2yhzfrTUiZ18EOcW5GUC+k1eYXaJhUSPPm94TnkjWs7b5B9ldk2LM9CISWSo2hwBLJAhuI1Cw7Pr1TwMePqf5AhQYeZQiIFg=,iv:vTDGkvL/cJ4gMY4Cz3P/xLwhx3+C1lPUesX1KzXIXnc=,tag:sJE3+O3Et9JH0E3Zkoyc4w==,type:str]
|
mac: ENC[AES256_GCM,data:IpZwdqqGM9I7To1N/J/PTq/d7fXtmpYN5cK3l4SIjDlAtR2zlTEWxKYDWZauDATNSLEuZ8ssuohzfwaa+hVxkQLjqvKhvdlSlODVL5wdVZGP17E0uJPPQn6hoYmivslZ//91+/zD1TgcTPzEdm7F0q/NrvJVg4zgnWjOKrMhJVY=,iv:q52RCURJSZ+J4ZrebboM6YihuZrBSMIqomgI3aRRmBc=,tag:7ETvaLMs3JqcdNQvil1bqg==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.10.1
|
version: 3.10.1
|
||||||
|
|||||||
Reference in New Issue
Block a user