From c1a1a53fab1999b46241d967b7567eaa4eec1bbf Mon Sep 17 00:00:00 2001 From: xunuwu Date: Mon, 28 Jul 2025 03:07:11 +0200 Subject: [PATCH 01/11] update website version --- flake.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flake.lock b/flake.lock index 10ba854..96c4809 100644 --- a/flake.lock +++ b/flake.lock @@ -846,11 +846,11 @@ ] }, "locked": { - "lastModified": 1749197856, - "narHash": "sha256-Vk9HO8RMe8fsDCzFQJlp4hAUDFMrduOMDmh6ZifiVHA=", + "lastModified": 1753663917, + "narHash": "sha256-9QEqhONBbyrDOyVL9VT9zXEi8jA1Rs+ebCDfObVnjsk=", "ref": "refs/heads/main", - "rev": "3943ddd64bf04e3631d39f110723f1aee27c3a82", - "revCount": 7, + "rev": "fc096058db0d8ddacec56c182572cfcc4593bdc3", + "revCount": 8, "type": "git", "url": "https://git.xunuwu.xyz/xun/xunuwu.xyz" }, From 185a14fee82bf13b641c0e0856490a247043baf6 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Mon, 28 Jul 2025 19:22:57 +0200 Subject: [PATCH 02/11] add audio-abtest script --- pkgs/audio-abtest/default.nix | 11 +++++++++++ pkgs/default.nix | 1 + 2 files changed, 12 insertions(+) create mode 100644 pkgs/audio-abtest/default.nix diff --git a/pkgs/audio-abtest/default.nix b/pkgs/audio-abtest/default.nix new file mode 100644 index 0000000..f341eaa --- /dev/null +++ b/pkgs/audio-abtest/default.nix @@ -0,0 +1,11 @@ +{writeShellScriptBin}: +writeShellScriptBin "audio-abtest" '' + track_1=$(shuf -i 0-1 -n 1) + track_2=$(( 1 - track_1 )) + + ffmpeg -i "$1" -i "$2" -f lavfi -i color=c=black:s=100x100:r=3 \ + -c:v libx264 -tune stillimage -b:v 100k \ + -c:a copy \ + -map $track_1:a:0 -map $track_2:a:0 -map 2:v:0 \ + -shortest output.mkv +'' diff --git a/pkgs/default.nix b/pkgs/default.nix index 6cce354..12662d5 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -4,5 +4,6 @@ ida-pro = pkgs.callPackage ./ida-pro {}; cartograph-cf = pkgs.callPackage ./cartograph-cf {}; keyboard-state = pkgs.callPackage ./keyboard-state {}; + audio-abtest = pkgs.callPackage ./audio-abtest {}; }; } From 0b8fa028a22fd2160f3883b8a4126f8e8bb57bf3 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Mon, 28 Jul 2025 21:02:15 +0200 Subject: [PATCH 03/11] update nvim config --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 96c4809..42ebca3 100644 --- a/flake.lock +++ b/flake.lock @@ -825,11 +825,11 @@ ] }, "locked": { - "lastModified": 1752968690, - "narHash": "sha256-8795clbksJi4RTEf9OI4+1rZ9FQsqxrl6/e3xTWcLfM=", + "lastModified": 1753729317, + "narHash": "sha256-JMphM031nMKEZkVY9/0PDorx3dDnl7AgeDcRil2cTYk=", "owner": "xunuwu", "repo": "nvim-config", - "rev": "bbcffc07bdbf52ba359fb6e1c1678104525fc330", + "rev": "1b1b7376fb6332e72ea48e27ee353ff969f64802", "type": "github" }, "original": { From ea75c7c4b07f7af82d35e727246867c905e25e6b Mon Sep 17 00:00:00 2001 From: xunuwu Date: Thu, 17 Jul 2025 23:00:02 +0200 Subject: [PATCH 04/11] add garage on hopper --- hosts/hopper/profiles/lab/caddy.nix | 3 +++ hosts/hopper/profiles/lab/default.nix | 1 + hosts/hopper/profiles/lab/garage.nix | 30 +++++++++++++++++++++++++++ hosts/rackserv/profiles/caddy.nix | 4 +++- 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 hosts/hopper/profiles/lab/garage.nix diff --git a/hosts/hopper/profiles/lab/caddy.nix b/hosts/hopper/profiles/lab/caddy.nix index 1466ebf..70be7dc 100644 --- a/hosts/hopper/profiles/lab/caddy.nix +++ b/hosts/hopper/profiles/lab/caddy.nix @@ -49,6 +49,8 @@ in { vaultwarden = mkPublicEntry "vw" "${bridge}:${toString config.services.vaultwarden.config.ROCKET_PORT}"; abs = mkPublicEntry "abs" "${bridge}:${toString config.services.audiobookshelf.port}"; miniflux = mkPublicEntry "rss" "${bridge}:18632"; + s3 = mkPublicEntry "s3" "unix//run/garage/s3.sock"; + s3-2 = mkPublicEntry "*.s3" "unix//run/garage/s3.sock"; navidrome2 = mkPrivateEntry "navidrome" "${bridge}:${toString config.services.navidrome.settings.Port}"; slskd = mkPrivateEntry "slskd" "localhost:${toString config.services.slskd.settings.web.port}"; @@ -58,6 +60,7 @@ in { absPriv = mkPrivateEntry "abs" "${bridge}:${toString config.services.audiobookshelf.port}"; glances = mkPrivateEntry "glances" "${bridge}:${toString config.services.glances.port}"; alertmanager = mkPrivateEntry "alerts" "${bridge}:${toString config.services.prometheus.alertmanager.port}"; + s3-web = mkPrivateEntry "s3-web" "unix//run/garage/web.sock"; other = { hostName = "*.${domain}:80"; diff --git a/hosts/hopper/profiles/lab/default.nix b/hosts/hopper/profiles/lab/default.nix index 710d3c9..a2e221e 100644 --- a/hosts/hopper/profiles/lab/default.nix +++ b/hosts/hopper/profiles/lab/default.nix @@ -6,6 +6,7 @@ ./audiobookshelf.nix ./caddy.nix ./dnsmasq.nix + ./garage.nix ./glances.nix ./homepage.nix ./minecraft.nix diff --git a/hosts/hopper/profiles/lab/garage.nix b/hosts/hopper/profiles/lab/garage.nix new file mode 100644 index 0000000..75298e8 --- /dev/null +++ b/hosts/hopper/profiles/lab/garage.nix @@ -0,0 +1,30 @@ +{ + pkgs, + vars, + config, + ... +}: { + services.garage = { + enable = true; + package = pkgs.garage_1_2_0; + settings = { + replication_factor = 1; + + rpc_bind_addr = "[::]:8005"; + rpc_secret = "4425f5c26c5e11581d3223904324dcb5b5d5dfb14e5e7f35e38c595424f5f1e6"; + + s3_api = { + api_bind_addr = "/run/garage/s3.sock"; + s3_region = "garage"; + root_domain = "s3.${vars.domain}"; + }; + + s3_web = { + bind_addr = "/run/garage/web.sock"; + root_domain = "s3-web.hopper.priv.${vars.domain}"; + }; + }; + }; + + systemd.services.garage.serviceConfig.RuntimeDirectory = "garage"; +} diff --git a/hosts/rackserv/profiles/caddy.nix b/hosts/rackserv/profiles/caddy.nix index d40eafb..9e732a9 100644 --- a/hosts/rackserv/profiles/caddy.nix +++ b/hosts/rackserv/profiles/caddy.nix @@ -16,7 +16,7 @@ in { certs = { "${domain}" = { domain = "${domain}"; - extraDomainNames = ["*.${domain}"]; + extraDomainNames = ["*.${domain}" "*.s3.${domain}"]; dnsProvider = "cloudflare"; reloadServices = ["caddy.service"]; credentialFiles.CF_DNS_API_TOKEN_FILE = config.sops.secrets.cloudflare.path; @@ -45,6 +45,8 @@ in { "vw.${domain}" "abs.${domain}" "rss.${domain}" + "s3.${domain}" + "*.s3.${domain}" ]; useACMEHost = domain; logFormat = "output file ${config.services.caddy.logDir}/access-hopper.log"; From b075c76f758976e70168f9f8a6dbc235a3f64101 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Wed, 30 Jul 2025 03:17:18 +0200 Subject: [PATCH 05/11] enable i2c (monitor settings changing thing) on nixdesk --- hosts/nixdesk/hardware.nix | 2 ++ hosts/nixdesk/home.nix | 1 + 2 files changed, 3 insertions(+) diff --git a/hosts/nixdesk/hardware.nix b/hosts/nixdesk/hardware.nix index a871836..5fc24ea 100644 --- a/hosts/nixdesk/hardware.nix +++ b/hosts/nixdesk/hardware.nix @@ -12,6 +12,8 @@ inputs.hardware.nixosModules.gigabyte-b550 ]; + hardware.i2c.enable = true; + boot = { kernelPackages = pkgs.linuxPackages_latest; initrd = { diff --git a/hosts/nixdesk/home.nix b/hosts/nixdesk/home.nix index d5b57d7..cfcb001 100644 --- a/hosts/nixdesk/home.nix +++ b/hosts/nixdesk/home.nix @@ -144,6 +144,7 @@ # system things kdePackages.dolphin + ddcui # music puddletag From 13e7874536fdca64cdb207417a435bf585c801aa Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 5 Aug 2025 23:08:59 +0200 Subject: [PATCH 06/11] update website lockfile --- flake.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flake.lock b/flake.lock index 42ebca3..966ecbc 100644 --- a/flake.lock +++ b/flake.lock @@ -846,11 +846,11 @@ ] }, "locked": { - "lastModified": 1753663917, - "narHash": "sha256-9QEqhONBbyrDOyVL9VT9zXEi8jA1Rs+ebCDfObVnjsk=", + "lastModified": 1754428097, + "narHash": "sha256-e+2gFKE+yyj72B/5K3QX9lPJ6PP42r/0hNcHoXkWuso=", "ref": "refs/heads/main", - "rev": "fc096058db0d8ddacec56c182572cfcc4593bdc3", - "revCount": 8, + "rev": "a5f69e7dddf807af6478e566a73992bd52f11e4d", + "revCount": 9, "type": "git", "url": "https://git.xunuwu.xyz/xun/xunuwu.xyz" }, From b50da9d1d0cf1c8d2e5903fccc38a3832e5800f7 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Fri, 8 Aug 2025 17:11:01 +0200 Subject: [PATCH 07/11] fix private s3-web subdomain --- hosts/hopper/profiles/lab/acme.nix | 2 +- hosts/hopper/profiles/lab/caddy.nix | 1 + hosts/hopper/profiles/lab/garage.nix | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/hosts/hopper/profiles/lab/acme.nix b/hosts/hopper/profiles/lab/acme.nix index 3e38cca..d124e9c 100644 --- a/hosts/hopper/profiles/lab/acme.nix +++ b/hosts/hopper/profiles/lab/acme.nix @@ -11,7 +11,7 @@ in { certs = { "${domain}" = { domain = "${domain}"; - extraDomainNames = ["*.${domain}" "*.hopper.priv.${domain}"]; + extraDomainNames = ["*.${domain}" "*.hopper.priv.${domain}" "*.s3-web.hopper.priv.${domain}"]; dnsProvider = "cloudflare"; reloadServices = ["caddy.service"]; credentialFiles = { diff --git a/hosts/hopper/profiles/lab/caddy.nix b/hosts/hopper/profiles/lab/caddy.nix index 70be7dc..a837c46 100644 --- a/hosts/hopper/profiles/lab/caddy.nix +++ b/hosts/hopper/profiles/lab/caddy.nix @@ -61,6 +61,7 @@ in { glances = mkPrivateEntry "glances" "${bridge}:${toString config.services.glances.port}"; alertmanager = mkPrivateEntry "alerts" "${bridge}:${toString config.services.prometheus.alertmanager.port}"; s3-web = mkPrivateEntry "s3-web" "unix//run/garage/web.sock"; + s3-web2 = mkPrivateEntry "*.s3-web" "unix//run/garage/web.sock"; other = { hostName = "*.${domain}:80"; diff --git a/hosts/hopper/profiles/lab/garage.nix b/hosts/hopper/profiles/lab/garage.nix index 75298e8..96a65e4 100644 --- a/hosts/hopper/profiles/lab/garage.nix +++ b/hosts/hopper/profiles/lab/garage.nix @@ -21,7 +21,7 @@ s3_web = { bind_addr = "/run/garage/web.sock"; - root_domain = "s3-web.hopper.priv.${vars.domain}"; + root_domain = ".s3-web.hopper.priv.${vars.domain}"; }; }; }; From feb035f3b47243f4c1cbfd77cd0b9cfcf5637892 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Fri, 8 Aug 2025 23:18:21 +0200 Subject: [PATCH 08/11] prometheus metrics for garage --- hosts/hopper/profiles/lab/garage.nix | 2 ++ hosts/hopper/profiles/lab/prometheus.nix | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/hosts/hopper/profiles/lab/garage.nix b/hosts/hopper/profiles/lab/garage.nix index 96a65e4..64d76cd 100644 --- a/hosts/hopper/profiles/lab/garage.nix +++ b/hosts/hopper/profiles/lab/garage.nix @@ -23,6 +23,8 @@ bind_addr = "/run/garage/web.sock"; root_domain = ".s3-web.hopper.priv.${vars.domain}"; }; + + admin.api_bind_addr = "127.0.0.1:3903"; }; }; diff --git a/hosts/hopper/profiles/lab/prometheus.nix b/hosts/hopper/profiles/lab/prometheus.nix index 315548a..536c99f 100644 --- a/hosts/hopper/profiles/lab/prometheus.nix +++ b/hosts/hopper/profiles/lab/prometheus.nix @@ -112,6 +112,13 @@ targets = ["rackserv:9615"]; }; } + + { + job_name = "garage"; + static_configs = lib.singleton { + targets = ["localhost:3903"]; + }; + } ]; exporters = { node = { From 205d65754c6c8e03ceb29b8f5675306b9dee101c Mon Sep 17 00:00:00 2001 From: xunuwu Date: Fri, 8 Aug 2025 23:33:22 +0200 Subject: [PATCH 09/11] update to garage v2 --- hosts/hopper/profiles/lab/garage.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/hopper/profiles/lab/garage.nix b/hosts/hopper/profiles/lab/garage.nix index 64d76cd..3a5e85a 100644 --- a/hosts/hopper/profiles/lab/garage.nix +++ b/hosts/hopper/profiles/lab/garage.nix @@ -6,7 +6,7 @@ }: { services.garage = { enable = true; - package = pkgs.garage_1_2_0; + package = pkgs.garage_2_0_0; settings = { replication_factor = 1; From ade851bf98661df03a0da892ba8441e1bca8c450 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Sat, 9 Aug 2025 01:40:37 +0200 Subject: [PATCH 10/11] update nvim config --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 966ecbc..f05bf5b 100644 --- a/flake.lock +++ b/flake.lock @@ -825,11 +825,11 @@ ] }, "locked": { - "lastModified": 1753729317, - "narHash": "sha256-JMphM031nMKEZkVY9/0PDorx3dDnl7AgeDcRil2cTYk=", + "lastModified": 1754696412, + "narHash": "sha256-NphnpnnD5/hHiKRuSDeHnPSxaKf8SJjMaOL2xzXJqcs=", "owner": "xunuwu", "repo": "nvim-config", - "rev": "1b1b7376fb6332e72ea48e27ee353ff969f64802", + "rev": "8c608d5359757b5b13a98a8fd41e7f65f4a0c080", "type": "github" }, "original": { From 858cd526b51506b6db445d087342ebdeaeecc447 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Sun, 10 Aug 2025 11:14:02 +0200 Subject: [PATCH 11/11] add python3 to tools --- sys/profiles/programs/tools.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/profiles/programs/tools.nix b/sys/profiles/programs/tools.nix index a8cc056..127fc34 100644 --- a/sys/profiles/programs/tools.nix +++ b/sys/profiles/programs/tools.nix @@ -20,5 +20,6 @@ yt-dlp inotify-tools dig + python3 ]; }