From 4859a250fd1a4bae3b9f1eb374a8b09aee09a5ea Mon Sep 17 00:00:00 2001 From: Chandler Swift Date: Sun, 21 Dec 2025 11:25:14 -0600 Subject: [PATCH 1/9] bert: Add Minecraft server to firewall --- bert/configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/bert/configuration.nix b/bert/configuration.nix index bb3f5cd..fba849c 100644 --- a/bert/configuration.nix +++ b/bert/configuration.nix @@ -109,6 +109,7 @@ networking.firewall.allowedTCPPorts = [ 80 # Caddy 443 # Caddy + 25565 # minecraft server ]; # This value determines the NixOS release from which the default From 8685dece56f00c0c2d7589380627c5ff04d98af7 Mon Sep 17 00:00:00 2001 From: Chandler Swift Date: Sun, 21 Dec 2025 11:35:46 -0600 Subject: [PATCH 2/9] bert: Unpin immich --- bert/services/http/photos.chandlerswift.com.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/bert/services/http/photos.chandlerswift.com.nix b/bert/services/http/photos.chandlerswift.com.nix index 9429147..844f309 100644 --- a/bert/services/http/photos.chandlerswift.com.nix +++ b/bert/services/http/photos.chandlerswift.com.nix @@ -1,6 +1,5 @@ {config, ...}: { services.immich.enable = true; - services.immich.package = (import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/328115af930e90649f97a3675a6b88d87c7e6920.tar.gz") {}).immich; services.immich.mediaLocation = "/srv/immich"; services.caddy.virtualHosts."photos.chandlerswift.com".extraConfig = '' From 36df179501afc7c7bab748687d08002f608309cb Mon Sep 17 00:00:00 2001 From: Chandler Swift Date: Sun, 21 Dec 2025 11:41:35 -0600 Subject: [PATCH 3/9] Set allowDiscards to enable NVMe TRIM --- bert/hardware-configuration.nix | 5 ++++- oscar/hardware-configuration.nix | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/bert/hardware-configuration.nix b/bert/hardware-configuration.nix index bd11bff..1d01430 100644 --- a/bert/hardware-configuration.nix +++ b/bert/hardware-configuration.nix @@ -18,7 +18,10 @@ fsType = "ext4"; }; - boot.initrd.luks.devices."luks-da40f6d2-49d7-4a55-8a2e-94fa5f28dbbc".device = "/dev/disk/by-uuid/da40f6d2-49d7-4a55-8a2e-94fa5f28dbbc"; + boot.initrd.luks.devices."luks-da40f6d2-49d7-4a55-8a2e-94fa5f28dbbc" = { + device = "/dev/disk/by-uuid/da40f6d2-49d7-4a55-8a2e-94fa5f28dbbc"; + allowDiscards = true; + }; fileSystems."/boot" = { device = "/dev/disk/by-uuid/B684-07FB"; diff --git a/oscar/hardware-configuration.nix b/oscar/hardware-configuration.nix index a950bd3..4ab4ac4 100644 --- a/oscar/hardware-configuration.nix +++ b/oscar/hardware-configuration.nix @@ -32,7 +32,10 @@ fsType = "ext4"; }; - boot.initrd.luks.devices."luks-8ecd33f4-36cf-44f2-b215-5e67887418b9".device = "/dev/disk/by-uuid/8ecd33f4-36cf-44f2-b215-5e67887418b9"; + boot.initrd.luks.devices."luks-8ecd33f4-36cf-44f2-b215-5e67887418b9" = { + device = "/dev/disk/by-uuid/8ecd33f4-36cf-44f2-b215-5e67887418b9"; + allowDiscards = true; + }; fileSystems."/boot" = { device = "/dev/disk/by-uuid/24AC-733A"; From 0ae0946f7a6ed8c477515ba88e53be78066cba5f Mon Sep 17 00:00:00 2001 From: Chandler Swift Date: Thu, 25 Dec 2025 18:16:31 -0600 Subject: [PATCH 4/9] oscar: Switch llama-cpp out for Vulkan extensions This results in a substantial speedup. Before: [ Prompt: 2.9 t/s | Generation: 2.5 t/s ] After (I haven't figured out what the story is with variable speeds, these are three successive messages of increasing length in the same conversation): [ Prompt: 95.7 t/s | Generation: 11.7 t/s ] [ Prompt: 2866.0 t/s | Generation: 13.4 t/s ] [ Prompt: 133.1 t/s | Generation: 14.0 t/s ] [ Prompt: 188.3 t/s | Generation: 13.6 t/s ] (benchmarks on Framework 13 AMD 7640U) --- oscar/configuration.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oscar/configuration.nix b/oscar/configuration.nix index b86f202..aa714fb 100644 --- a/oscar/configuration.nix +++ b/oscar/configuration.nix @@ -161,7 +161,7 @@ wl-clipboard # ✨ AI ✨ - llama-cpp + llama-cpp-vulkan # compilers/language utils cargo From 9acc79ce8aff110c8d797d57664bcfc26a10749c Mon Sep 17 00:00:00 2001 From: Chandler Swift Date: Thu, 25 Dec 2025 18:26:15 -0600 Subject: [PATCH 5/9] oscar: Install solvespace, recommended by Eric --- oscar/configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/oscar/configuration.nix b/oscar/configuration.nix index aa714fb..e0d8a4f 100644 --- a/oscar/configuration.nix +++ b/oscar/configuration.nix @@ -133,6 +133,7 @@ musescore prusa-slicer qgis + solvespace supersonic tenacity From a59df88a4445d00304d150da8e71df614c93be51 Mon Sep 17 00:00:00 2001 From: Chandler Swift Date: Sat, 27 Dec 2025 18:08:18 -0600 Subject: [PATCH 6/9] bert: Fix bible.chandlerswift.com link --- bert/services/http/bible.chandlerswift.com.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bert/services/http/bible.chandlerswift.com.html b/bert/services/http/bible.chandlerswift.com.html index 34aae28..ef81177 100644 --- a/bert/services/http/bible.chandlerswift.com.html +++ b/bert/services/http/bible.chandlerswift.com.html @@ -16,7 +16,7 @@

https://berean.bible/terms.htm

You can fetch JSON files under the /api/ path. For example:

From 6ece0febe7224d0d6349b28f410877bd2d5080a8 Mon Sep 17 00:00:00 2001 From: Chandler Swift Date: Sat, 27 Dec 2025 18:18:35 -0600 Subject: [PATCH 7/9] =?UTF-8?q?bert:=20Remove=20Factorio=20version=20pin?= =?UTF-8?q?=20(2.0.55=E2=86=922.0.72)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bert/services/factorio.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/bert/services/factorio.nix b/bert/services/factorio.nix index 14747ff..b71fa13 100644 --- a/bert/services/factorio.nix +++ b/bert/services/factorio.nix @@ -4,9 +4,6 @@ ]; services.factorio = { enable = true; - package = (import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/348ec8c846cce39c467cac90ddbbc9ce9bf61bd8.tar.gz") { - config.allowUnfree = true; - }).factorio-headless; openFirewall = true; nonBlockingSaving = true; game-name = "Chandler's Factorio Server"; From 873f552d8baf76ba242068053bb7f9ec8dbfd3d9 Mon Sep 17 00:00:00 2001 From: Chandler Swift Date: Sun, 28 Dec 2025 22:46:23 -0600 Subject: [PATCH 8/9] bert: Add in dynamic svsindustries.org server --- bert/services/http/svsindustries.org.nix | 55 +++++++++++++++++++++--- 1 file changed, 49 insertions(+), 6 deletions(-) diff --git a/bert/services/http/svsindustries.org.nix b/bert/services/http/svsindustries.org.nix index d9ad3c9..c15966a 100644 --- a/bert/services/http/svsindustries.org.nix +++ b/bert/services/http/svsindustries.org.nix @@ -1,20 +1,63 @@ +{ config, pkgs, ... }: +let + svsServicesSrc = pkgs.fetchgit { + url = "https://git.chandlerswift.com/chandlerswift/svs-services-server"; + rev = "ac0b8d427395e8b9ba51857a80256ceaf550b0a6"; + sha256 = "sha256-wxGpc1YarF55buP1CMrZwEVBFLwLtkc8swdciNjijvw="; + }; + svsServicesServer = pkgs.buildGoModule { + pname = "svs-services-server"; + version = "2025-12-28"; + src = svsServicesSrc; + vendorHash = "sha256-MmVwi5VZlw63LUG52i7wrb8OYHJDmHb9bXvsGilU5nY="; + subPackages = [ "." ]; + }; + + svsLanding = pkgs.runCommand "svsindustries-landing" { } '' + mkdir -p "$out" + cp ${svsServicesSrc}/landing-page.html "$out/index.html" + ''; +in { + systemd.services.svs-services-server = { + enable = true; + description = "SVS Industries services server"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${svsServicesServer}/bin/svs-services-server -database %S/svs-services-server/svs-services.db -completion-provider openrouter"; + Restart = "on-failure"; + DynamicUser = true; + StateDirectory = "svs-services-server"; + WorkingDirectory = "%S/svs-services-server"; + EnvironmentFile = "/root/svs-services-server-env"; + }; + }; + services.caddy.virtualHosts."svsindustries.org" = { - # serverAliases = ["*.svsindustries.org"]; + serverAliases = [ "www.svsindustries.org" ]; extraConfig = '' encode zstd gzip + root * ${svsLanding} file_server - root * /srv/www/svsindustries.org handle_errors { respond "{err.status_code} {err.status_text}" } ''; }; - systemd.tmpfiles.settings."10-svsindustries-org" = { - "/srv/www/svsindustries.org" = { - d = {}; - }; + + services.caddy.virtualHosts."*.svsindustries.org" = { + extraConfig = '' + tls /srv/svsindustries.org-ssl-bundle/domain.cert.pem /srv/svsindustries.org-ssl-bundle/private.key.pem + encode zstd gzip + reverse_proxy localhost:64434 + + handle_errors { + respond "{err.status_code} {err.status_text}" + } + ''; }; } From 132257fb7398ca408a96655cdef8d259fc36f492 Mon Sep 17 00:00:00 2001 From: Chandler Swift Date: Sun, 28 Dec 2025 22:46:55 -0600 Subject: [PATCH 9/9] bert: Fix bible.chandlerswift.com path --- bert/services/http/bible.chandlerswift.com.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bert/services/http/bible.chandlerswift.com.nix b/bert/services/http/bible.chandlerswift.com.nix index cd34d80..cafc362 100644 --- a/bert/services/http/bible.chandlerswift.com.nix +++ b/bert/services/http/bible.chandlerswift.com.nix @@ -14,8 +14,8 @@ let dontBuild = true; installPhase = '' - mkdir -p $out/api - mv * $out/api/ + mkdir -p $out/ + mv * $out/ ''; }; in {