From 1d55fff3a0dd0fbfaa21de8a172ccb7426a6faa4 Mon Sep 17 00:00:00 2001 From: TheWanderingCrow Date: Mon, 8 Dec 2025 09:03:45 -0500 Subject: [PATCH 1/3] fix backup service --- modules/services/flamesites/default.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/services/flamesites/default.nix b/modules/services/flamesites/default.nix index 08c0a08..8373dfd 100644 --- a/modules/services/flamesites/default.nix +++ b/modules/services/flamesites/default.nix @@ -2,9 +2,11 @@ pkgs, inputs, ... -}: let +}: +let volumePath = "/overseer/services"; -in { +in +{ systemd.tmpfiles.rules = [ "d ${volumePath}/flamesites 0750 crow" "d ${volumePath}/flamesites/swgalaxyproject 0750 crow" @@ -13,7 +15,7 @@ in { systemd.timers.flamesite-backup = { enable = true; - wantedBy = ["timers.target"]; + wantedBy = [ "timers.target" ]; timerConfig = { OnBootSec = "1hr"; OnUnitActiveSec = "1hr"; @@ -24,7 +26,7 @@ in { systemd.services.flamesite-backup = { script = '' ${pkgs.podman}/bin/podman exec swgal_db_1 sh -c 'exec mysqldump --no-tablespaces -usgr_user -psgr_pass sgr_db' > ${volumePath}/flamesites/swgalaxyproject/db.sql - ${pkgs.podman}/bin/podman exec nssbluegrass_db_1 sh -c 'exec mysqldump --no-tablespaces -unns_user -pnns_pass nns_db' > ${volumePath}/flamesites/nnsbluegrass/db.sql + ${pkgs.podman}/bin/podman exec nnsbluegrass_db_1 sh -c 'exec mysqldump --no-tablespaces -unns_user -pnns_pass nns_db' > ${volumePath}/flamesites/nnsbluegrass/db.sql ''; serviceConfig = { Type = "oneshot"; From 558115d0d802c1a30dff589c63702a1b8843efa9 Mon Sep 17 00:00:00 2001 From: TheWanderingCrow Date: Mon, 8 Dec 2025 09:04:41 -0500 Subject: [PATCH 2/3] add quadlet-nix --- flake.lock | 16 ++++++++++++++++ flake.nix | 1 + hosts/nixos/HandlerOne/default.nix | 3 +++ modules/quatlets/default.nix | 11 +++++++++++ 4 files changed, 31 insertions(+) create mode 100644 modules/quatlets/default.nix diff --git a/flake.lock b/flake.lock index a1197ae..d2b2bc5 100644 --- a/flake.lock +++ b/flake.lock @@ -384,6 +384,21 @@ "type": "github" } }, + "quadlet-nix": { + "locked": { + "lastModified": 1763141753, + "narHash": "sha256-XAHkOkLEWbRQZ6t/SowwOukrUfIneNQOC/UEQlTaPBU=", + "owner": "SEIAROTg", + "repo": "quadlet-nix", + "rev": "211b5c626cf9ea91403b510e2ac5ca03a7194566", + "type": "github" + }, + "original": { + "owner": "SEIAROTg", + "repo": "quadlet-nix", + "type": "github" + } + }, "root": { "inputs": { "disko": "disko", @@ -398,6 +413,7 @@ "nixpkgs-stable": "nixpkgs-stable", "nixpkgs-unstable": "nixpkgs-unstable", "nvix": "nvix", + "quadlet-nix": "quadlet-nix", "sops-nix": "sops-nix" } }, diff --git a/flake.nix b/flake.nix index 6136468..431eeac 100644 --- a/flake.nix +++ b/flake.nix @@ -115,6 +115,7 @@ }; iamb-flake.url = "github:ulyssa/iamb/v0.0.11-alpha.1"; + quadlet-nix.url = "github:SEIAROTg/quadlet-nix"; # CrOS inputs nix-secrets.url = "git+ssh://git@github.com/TheWanderingCrow/nix-secrets"; diff --git a/hosts/nixos/HandlerOne/default.nix b/hosts/nixos/HandlerOne/default.nix index 3e5a545..396c8f2 100644 --- a/hosts/nixos/HandlerOne/default.nix +++ b/hosts/nixos/HandlerOne/default.nix @@ -39,6 +39,9 @@ "hosts/common/optional/keyd.nix" "hosts/common/optional/podman.nix" + # Quadlets + "modules/quadlets" + # Hosted services "modules/services/mealie" "modules/services/actualbudget" diff --git a/modules/quatlets/default.nix b/modules/quatlets/default.nix new file mode 100644 index 0000000..2dfb424 --- /dev/null +++ b/modules/quatlets/default.nix @@ -0,0 +1,11 @@ +{ inputs, lib, ... }: +{ + imports = [ + inputs.quadlet-nix.nixosModules.quadlet + ]; + + virtualisation.quadlet = { + enable = true; + autoEscape = lib.mkForce true; + }; +} From b2a250e5841df0b8f24ad60be22ee09bd2dcde16 Mon Sep 17 00:00:00 2001 From: TheWanderingCrow Date: Mon, 8 Dec 2025 18:55:32 -0500 Subject: [PATCH 3/3] drop calibre; add booklore quadlet; need to figure out proxying --- modules/quadlets/booklore/default.nix | 40 ++++++++++++++++++++++ modules/{quatlets => quadlets}/default.nix | 0 modules/services/calibre/default.nix | 12 ------- 3 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 modules/quadlets/booklore/default.nix rename modules/{quatlets => quadlets}/default.nix (100%) delete mode 100644 modules/services/calibre/default.nix diff --git a/modules/quadlets/booklore/default.nix b/modules/quadlets/booklore/default.nix new file mode 100644 index 0000000..22fd884 --- /dev/null +++ b/modules/quadlets/booklore/default.nix @@ -0,0 +1,40 @@ +{ config, ... }: +{ + services.caddy.virtualHosts."booklore.wanderingcrow.net".extraConfig = '' + reverse_proxy http://10.88.0.4:6060 + ''; + virtualisation.quadlet = { + containers = { + booklore-web.containerConfig = { + image = "ghcr.io/booklore-app/booklore:v1.13.2"; + environments = { + USER_ID = "0"; + GROUP_ID = "0"; + TZ = "America/New_York"; + DATABASE_URL = "jdbc:mariadb://booklore-db:3306/booklore"; + DB_USER = "booklore"; + DB_PASSWORD = "changeme"; + BOOKLORE_PORT = "6060"; + }; + publishPorts = [ + "" + ]; + pod = config.virtualisation.quadlet.pods.booklore.ref; + }; + booklore-db.containerConfig = { + image = "lscr.io/linuxserver/mariadb:11.4.5"; + environments = { + PUID = "1000"; + PGID = "1000"; + TZ = "America/New_York"; + MYSQL_ROOT_PASSWORD = "changeme"; + MYSQL_DATABASE = "booklore"; + MYSQL_USER = "booklore"; + MYSQL_PASSWORD = "changeme"; + }; + pod = config.virtualisation.quadlet.pods.booklore.ref; + }; + }; + pods.booklore = { }; + }; +} diff --git a/modules/quatlets/default.nix b/modules/quadlets/default.nix similarity index 100% rename from modules/quatlets/default.nix rename to modules/quadlets/default.nix diff --git a/modules/services/calibre/default.nix b/modules/services/calibre/default.nix deleted file mode 100644 index 559bd77..0000000 --- a/modules/services/calibre/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - config, - lib, - ... -}: -{ - services.calibre-server = { - enable = true; - host = "0.0.0.0"; - port = "8092"; - }; -}