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