Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f7ef2ef4e8 | |||
| 957110b7e9 | |||
| e7dc60f2c3 | |||
| 353a9d6787 | |||
| 9f2d3a3c89 | |||
| 73e221716f | |||
| 0d0ed5445a | |||
| 9e4c6f6f56 |
@@ -169,3 +169,6 @@ test.*
|
|||||||
# Frontend build output
|
# Frontend build output
|
||||||
frontend/dist/
|
frontend/dist/
|
||||||
frontend/node_modules/
|
frontend/node_modules/
|
||||||
|
|
||||||
|
# data from testing llms
|
||||||
|
data/*
|
||||||
Vendored
+1
@@ -203,6 +203,7 @@
|
|||||||
"peerconnection",
|
"peerconnection",
|
||||||
"PESKYFOX",
|
"PESKYFOX",
|
||||||
"PGID",
|
"PGID",
|
||||||
|
"pgvector",
|
||||||
"pipewire",
|
"pipewire",
|
||||||
"pkgs",
|
"pkgs",
|
||||||
"plugdev",
|
"plugdev",
|
||||||
|
|||||||
Generated
+18
-18
@@ -8,11 +8,11 @@
|
|||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1776398575,
|
"lastModified": 1777435375,
|
||||||
"narHash": "sha256-WArU6WOdWxzbzGqYk4w1Mucg+bw/SCl6MoSp+/cZMio=",
|
"narHash": "sha256-2WRfJbipnTz+EY3rHRnCoG4kWkzPczb/cLcWwhy/0QA=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "05815686caf4e3678f5aeb5fd36e567886ab0d30",
|
"rev": "4d89e8e2c50711ee3fea3a25e662cfa5c6628e07",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -29,11 +29,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776454077,
|
"lastModified": 1777434174,
|
||||||
"narHash": "sha256-7zSUFWsU0+jlD7WB3YAxQ84Z/iJurA5hKPm8EfEyGJk=",
|
"narHash": "sha256-KwTyQ5g2qDhWIs/O6vH8HeF8n4JCzZIT/VYE7nYnukQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "565e5349208fe7d0831ef959103c9bafbeac0681",
|
"rev": "d3b4e4b1bd59aedd3d4eb0a8df7162edb6da4607",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -44,11 +44,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775490113,
|
"lastModified": 1776983936,
|
||||||
"narHash": "sha256-2ZBhDNZZwYkRmefK5XLOusCJHnoeKkoN95hoSGgMxWM=",
|
"narHash": "sha256-ZOQyNqSvJ8UdrrqU1p7vaFcdL53idK+LOM8oRWEWh6o=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "c775c2772ba56e906cbeb4e0b2db19079ef11ff7",
|
"rev": "2096f3f411ce46e88a79ae4eafcfc9df8ed41c61",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -60,11 +60,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776169885,
|
"lastModified": 1777268161,
|
||||||
"narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=",
|
"narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9",
|
"rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -76,11 +76,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-master": {
|
"nixpkgs-master": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776469842,
|
"lastModified": 1777437048,
|
||||||
"narHash": "sha256-sqzM6PKMQoGk8Sl+uv2sbP1qiS2SPQhA2yn5zgZINMc=",
|
"narHash": "sha256-Ca4jKXJuYp1D+DqiuQ/vGHRYKPlAZTn1vq7XDU9t18w=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "025c852a89be820b3117f604c8ace42e9b4caa08",
|
"rev": "1e1459dda883651ef85e23c7c6e2224cba195065",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -125,11 +125,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776119890,
|
"lastModified": 1777338324,
|
||||||
"narHash": "sha256-Zm6bxLNnEOYuS/SzrAGsYuXSwk3cbkRQZY0fJnk8a5M=",
|
"narHash": "sha256-bc+ZZCmOTNq86/svGnw0tVpH7vJaLYvGLLKFYP08Q8E=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "d4971dd58c6627bfee52a1ad4237637c0a2fb0cd",
|
"rev": "8eaee5c45428b28b8c47a83e4c09dccec5f279b5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -42,6 +42,7 @@
|
|||||||
sqlalchemy
|
sqlalchemy
|
||||||
tenacity
|
tenacity
|
||||||
textual
|
textual
|
||||||
|
tiktoken
|
||||||
tinytuya
|
tinytuya
|
||||||
typer
|
typer
|
||||||
websockets
|
websockets
|
||||||
|
|||||||
@@ -42,12 +42,13 @@
|
|||||||
"qwen3:8b"
|
"qwen3:8b"
|
||||||
"qwen3.5:27b"
|
"qwen3.5:27b"
|
||||||
"qwen3.5:35b"
|
"qwen3.5:35b"
|
||||||
|
"qwen3.6:35b"
|
||||||
"translategemma:12b"
|
"translategemma:12b"
|
||||||
"translategemma:27b"
|
"translategemma:27b"
|
||||||
"translategemma:4b"
|
"translategemma:4b"
|
||||||
"rinex20/translategemma3:12b"
|
"rinex20/translategemma3:12b"
|
||||||
];
|
];
|
||||||
models = "/zfs/models";
|
models = "/zfs/storage/models";
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,5 +37,10 @@ in
|
|||||||
zerotierone.joinNetworks = [ "a09acf02330d37b9" ];
|
zerotierone.joinNetworks = [ "a09acf02330d37b9" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
users.groups = {
|
||||||
|
nornsight = { };
|
||||||
|
nornsight-admin = { };
|
||||||
|
};
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,3 +41,4 @@ sudo zfs create storage/secure/plex -o recordsize=1M -o compression=zstd-19
|
|||||||
sudo zfs create storage/secure/secrets -o compression=zstd-19 -o copies=3
|
sudo zfs create storage/secure/secrets -o compression=zstd-19 -o copies=3
|
||||||
sudo zfs create storage/secure/syncthing -o compression=zstd-19
|
sudo zfs create storage/secure/syncthing -o compression=zstd-19
|
||||||
sudo zfs create storage/secure/transmission -o recordsize=1M -o compression=zstd-9 -o exec=off -o sync=disabled
|
sudo zfs create storage/secure/transmission -o recordsize=1M -o compression=zstd-9 -o exec=off -o sync=disabled
|
||||||
|
sudo zfs create storage/secure/important -o compression=zstd-19 -o copies=2 -o mountpoint=/zfs/storage/important
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ in
|
|||||||
services.postgresql = {
|
services.postgresql = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.postgresql_17_jit;
|
package = pkgs.postgresql_17_jit;
|
||||||
|
extensions = ps: with ps; [ pgvector ];
|
||||||
enableTCPIP = true;
|
enableTCPIP = true;
|
||||||
enableJIT = true;
|
enableJIT = true;
|
||||||
dataDir = "${vars.database}/postgres";
|
dataDir = "${vars.database}/postgres";
|
||||||
|
|||||||
@@ -5,7 +5,9 @@ let
|
|||||||
"gitea"
|
"gitea"
|
||||||
"jellyfin"
|
"jellyfin"
|
||||||
"share"
|
"share"
|
||||||
|
"verilux"
|
||||||
];
|
];
|
||||||
|
extraDomains = [ "www.norn-sight.com" ];
|
||||||
|
|
||||||
makeCert = name: {
|
makeCert = name: {
|
||||||
name = "${name}.tmmworkshop.com";
|
name = "${name}.tmmworkshop.com";
|
||||||
@@ -16,7 +18,18 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
acmeServices = map (domain: "acme-${domain}.tmmworkshop.com.service") domains;
|
makeExtraCert = name: {
|
||||||
|
inherit name;
|
||||||
|
value = {
|
||||||
|
webroot = "/var/lib/acme/.challenges";
|
||||||
|
group = "acme";
|
||||||
|
reloadServices = [ "haproxy.service" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
acmeServices =
|
||||||
|
map (domain: "acme-${domain}.tmmworkshop.com.service") domains
|
||||||
|
++ map (domain: "acme-${domain}.service") extraDomains;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
users.users.haproxy.extraGroups = [ "acme" ];
|
users.users.haproxy.extraGroups = [ "acme" ];
|
||||||
@@ -24,7 +37,7 @@ in
|
|||||||
security.acme = {
|
security.acme = {
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
defaults.email = "Richie@tmmworkshop.com";
|
defaults.email = "Richie@tmmworkshop.com";
|
||||||
certs = builtins.listToAttrs (map makeCert domains);
|
certs = builtins.listToAttrs ((map makeCert domains) ++ (map makeExtraCert extraDomains));
|
||||||
};
|
};
|
||||||
|
|
||||||
# Minimal nginx to serve ACME HTTP-01 challenge files for HAProxy
|
# Minimal nginx to serve ACME HTTP-01 challenge files for HAProxy
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ defaults
|
|||||||
#Application Setup
|
#Application Setup
|
||||||
frontend ContentSwitching
|
frontend ContentSwitching
|
||||||
bind *:80 v4v6
|
bind *:80 v4v6
|
||||||
bind *:443 v4v6 ssl crt /var/lib/acme/audiobookshelf.tmmworkshop.com/full.pem crt /var/lib/acme/cache.tmmworkshop.com/full.pem crt /var/lib/acme/jellyfin.tmmworkshop.com/full.pem crt /var/lib/acme/share.tmmworkshop.com/full.pem crt /var/lib/acme/gitea.tmmworkshop.com/full.pem
|
bind *:443 v4v6 ssl crt /var/lib/acme/audiobookshelf.tmmworkshop.com/full.pem crt /var/lib/acme/cache.tmmworkshop.com/full.pem crt /var/lib/acme/jellyfin.tmmworkshop.com/full.pem crt /var/lib/acme/share.tmmworkshop.com/full.pem crt /var/lib/acme/gitea.tmmworkshop.com/full.pem crt /var/lib/acme/www.norn-sight.com/full.pem
|
||||||
mode http
|
mode http
|
||||||
|
|
||||||
# ACME challenge routing (must be first)
|
# ACME challenge routing (must be first)
|
||||||
@@ -36,6 +36,7 @@ frontend ContentSwitching
|
|||||||
acl host_jellyfin hdr(host) -i jellyfin.tmmworkshop.com
|
acl host_jellyfin hdr(host) -i jellyfin.tmmworkshop.com
|
||||||
acl host_share hdr(host) -i share.tmmworkshop.com
|
acl host_share hdr(host) -i share.tmmworkshop.com
|
||||||
acl host_gitea hdr(host) -i gitea.tmmworkshop.com
|
acl host_gitea hdr(host) -i gitea.tmmworkshop.com
|
||||||
|
acl host_norn_sight hdr(host) -i www.norn-sight.com
|
||||||
|
|
||||||
# Hosts allowed to serve plain HTTP (add entries to skip the HTTPS redirect)
|
# Hosts allowed to serve plain HTTP (add entries to skip the HTTPS redirect)
|
||||||
acl allow_http hdr(host) -i __none__
|
acl allow_http hdr(host) -i __none__
|
||||||
@@ -49,6 +50,7 @@ frontend ContentSwitching
|
|||||||
use_backend jellyfin if host_jellyfin
|
use_backend jellyfin if host_jellyfin
|
||||||
use_backend share_nodes if host_share
|
use_backend share_nodes if host_share
|
||||||
use_backend gitea if host_gitea
|
use_backend gitea if host_gitea
|
||||||
|
use_backend norn_sight if host_norn_sight
|
||||||
|
|
||||||
backend acme_challenge
|
backend acme_challenge
|
||||||
mode http
|
mode http
|
||||||
@@ -76,3 +78,7 @@ backend share_nodes
|
|||||||
backend gitea
|
backend gitea
|
||||||
mode http
|
mode http
|
||||||
server server 127.0.0.1:6443
|
server server 127.0.0.1:6443
|
||||||
|
|
||||||
|
backend norn_sight
|
||||||
|
mode http
|
||||||
|
server server 192.168.90.49:8000
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
systemd.services.agent-logger = {
|
||||||
|
description = "Unified agent logger";
|
||||||
|
after = [ "local-fs.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
AGENT_LOG_DB = "/var/lib/agent-logger/agent_log.sqlite";
|
||||||
|
HOME = "/home/richie";
|
||||||
|
PYTHONPATH = "${inputs.self}";
|
||||||
|
};
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
User = "richie";
|
||||||
|
WorkingDirectory = "/home/richie";
|
||||||
|
ExecStart = "${pkgs.my_python}/bin/python -m python.agent_logger.main";
|
||||||
|
StateDirectory = "agent-logger";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "5s";
|
||||||
|
StandardOutput = "journal";
|
||||||
|
StandardError = "journal";
|
||||||
|
NoNewPrivileges = true;
|
||||||
|
ProtectSystem = "strict";
|
||||||
|
ProtectHome = "read-only";
|
||||||
|
PrivateTmp = true;
|
||||||
|
ReadOnlyPaths = [ "${inputs.self}" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
services.open-webui = {
|
services.open-webui = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
host = "0.0.0.0";
|
||||||
environment = {
|
environment = {
|
||||||
ANONYMIZED_TELEMETRY = "False";
|
ANONYMIZED_TELEMETRY = "False";
|
||||||
DO_NOT_TRACK = "True";
|
DO_NOT_TRACK = "True";
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ in
|
|||||||
"hass"
|
"hass"
|
||||||
"libvirtd"
|
"libvirtd"
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
|
"nornsight"
|
||||||
|
"nornsight-admin"
|
||||||
"plugdev"
|
"plugdev"
|
||||||
"scanner"
|
"scanner"
|
||||||
"transmission"
|
"transmission"
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ in
|
|||||||
"hass"
|
"hass"
|
||||||
"libvirtd"
|
"libvirtd"
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
|
"nornsight"
|
||||||
|
"nornsight-admin"
|
||||||
"ollama"
|
"ollama"
|
||||||
"plugdev"
|
"plugdev"
|
||||||
"scanner"
|
"scanner"
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
settings = {
|
settings = {
|
||||||
allow_remote_control = "yes";
|
allow_remote_control = "yes";
|
||||||
shell = "${pkgs.zsh}/bin/zsh";
|
shell = "${pkgs.zsh}/bin/zsh";
|
||||||
|
scrollback_lines = 50000;
|
||||||
wayland_titlebar_color = "background";
|
wayland_titlebar_color = "background";
|
||||||
background_opacity = "0.75";
|
background_opacity = "0.75";
|
||||||
tab_bar_edge = "top";
|
tab_bar_edge = "top";
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
"git.pruneOnFetch": true,
|
"git.pruneOnFetch": true,
|
||||||
"terminal.integrated.scrollback": 10000,
|
"terminal.integrated.scrollback": 10000,
|
||||||
"update.mode": "none",
|
"update.mode": "none",
|
||||||
"workbench.colorTheme": "Default Dark+",
|
"workbench.colorTheme": "Dark+",
|
||||||
"workbench.secondarySideBar.showLabels": false,
|
"workbench.secondarySideBar.showLabels": false,
|
||||||
|
|
||||||
// turns off all sounds and announcements
|
// turns off all sounds and announcements
|
||||||
@@ -98,4 +98,5 @@
|
|||||||
"hediet.vscode-drawio.resizeImages": null,
|
"hediet.vscode-drawio.resizeImages": null,
|
||||||
"hediet.vscode-drawio.appearance": "automatic",
|
"hediet.vscode-drawio.appearance": "automatic",
|
||||||
"claudeCode.preferredLocation": "panel",
|
"claudeCode.preferredLocation": "panel",
|
||||||
|
"docker.extension.enableComposeLanguageServer": false,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user