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 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/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"; 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:

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 { 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 = '' 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}" + } + ''; }; } diff --git a/oscar/configuration.nix b/oscar/configuration.nix index b86f202..e0d8a4f 100644 --- a/oscar/configuration.nix +++ b/oscar/configuration.nix @@ -133,6 +133,7 @@ musescore prusa-slicer qgis + solvespace supersonic tenacity @@ -161,7 +162,7 @@ wl-clipboard # ✨ AI ✨ - llama-cpp + llama-cpp-vulkan # compilers/language utils cargo 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";