diff --git a/_sources/generated.json b/_sources/generated.json index b1c4a70..03f8a90 100644 --- a/_sources/generated.json +++ b/_sources/generated.json @@ -350,7 +350,7 @@ }, "tangled": { "cargoLocks": null, - "date": "2025-12-20", + "date": "2026-01-11", "extract": null, "name": "tangled", "passthru": null, @@ -360,13 +360,13 @@ "fetchSubmodules": false, "leaveDotGit": false, "name": null, - "rev": "716a5bc0dafb96bbf72fb6e07d20e251f97c9f4e", - "sha256": "sha256-SGG97w/bvffP6zuJwbnFHK6tdfuWEzKNOfjGbh2PIj0=", + "rev": "1cb2fb5cdd0ddfb30575af85d2d3fcf337ac4c4b", + "sha256": "sha256-JZgqPGYaNxFcj4gl4U4eXctDtPv6YHyu3KuHtMNEyZk=", "sparseCheckout": [], "type": "git", - "url": "https://tangled.org/ptr.pet/core" + "url": "https://tangled.org/tangled.org/core" }, - "version": "716a5bc0dafb96bbf72fb6e07d20e251f97c9f4e" + "version": "1cb2fb5cdd0ddfb30575af85d2d3fcf337ac4c4b" }, "tangled-sqlite-lib": { "cargoLocks": null, diff --git a/_sources/generated.nix b/_sources/generated.nix index 4fd8791..c1bbb80 100644 --- a/_sources/generated.nix +++ b/_sources/generated.nix @@ -223,17 +223,17 @@ }; tangled = { pname = "tangled"; - version = "716a5bc0dafb96bbf72fb6e07d20e251f97c9f4e"; + version = "1cb2fb5cdd0ddfb30575af85d2d3fcf337ac4c4b"; src = fetchgit { - url = "https://tangled.org/ptr.pet/core"; - rev = "716a5bc0dafb96bbf72fb6e07d20e251f97c9f4e"; + url = "https://tangled.org/tangled.org/core"; + rev = "1cb2fb5cdd0ddfb30575af85d2d3fcf337ac4c4b"; fetchSubmodules = false; deepClone = false; leaveDotGit = false; sparseCheckout = [ ]; - sha256 = "sha256-SGG97w/bvffP6zuJwbnFHK6tdfuWEzKNOfjGbh2PIj0="; + sha256 = "sha256-JZgqPGYaNxFcj4gl4U4eXctDtPv6YHyu3KuHtMNEyZk="; }; - date = "2025-12-20"; + date = "2026-01-11"; }; tangled-sqlite-lib = { pname = "tangled-sqlite-lib"; diff --git a/deploy.nu b/deploy.nu index 6cafb03..52493bc 100755 --- a/deploy.nu +++ b/deploy.nu @@ -45,11 +45,6 @@ def time-block [block]: nothing -> record { } let hosts = { - wolumonde: { - type: "nixos", - user: "root", - addr: "23.88.101.188", - }, dzwonek: { type: "nixos", user: "root", @@ -65,11 +60,6 @@ let hosts = { user: "root", addr: "159.195.58.28", }, - "dusk@devel.mobi": { - type: "home", - user: "dusk", - addr: "devel.mobi", - }, } def deploy [hostname: string] { diff --git a/dns/dnsconfig.js b/dns/dnsconfig.js index 0824c07..5f3c21f 100644 --- a/dns/dnsconfig.js +++ b/dns/dnsconfig.js @@ -82,6 +82,7 @@ D( // atproto TXT("_atproto.eris", "did=did:plc:bxjnsrfzozl365rsdo5yvuz5", TTL(60)), TXT("_atproto.drew", "did=did:plc:vo6ie3kd6xvpjlof4pnb2zzp", TTL(60)), + TXT("_kicya", "3853739a3802a077d62e83494b4603bbdb36332662c5cb58865084bcf0dc87a8"), IGNORE_ACME(), ); @@ -125,6 +126,7 @@ D( DnsProvider(DSP_PRIMARY), TRIMOUNTS(["@", "tunes", "x"], CF_PROXY_OFF), DZWONEK(["nucleus", "trill", "dysnomia"], CF_PROXY_OFF), + TXT("_kicya", "3b11cb74243eea1fc84e62ffefd7e246279c2f203e1cae42e19d0454dc8d2172"), // atproto TXT("_atproto", "did=did:plc:dfl62fgb7wtjj3fcbb72naae"), TXT("_atproto.nil", "did=did:plc:dumbmutt4po52ept2tczimje"), diff --git a/hosts/trimounts/modules/navidrome.nix b/hosts/trimounts/modules/navidrome.nix index 5708082..1a524ee 100644 --- a/hosts/trimounts/modules/navidrome.nix +++ b/hosts/trimounts/modules/navidrome.nix @@ -1,6 +1,7 @@ -{config, ...}: +{lib, pkgs, config, ...}: let domain = "tunes.ptr.pet"; + callieMount = "/music/callie"; in { services.navidrome = { enable = true; @@ -14,8 +15,12 @@ in { BaseURL = "https://piper.kittysay.xyz/1"; }; EnableSharing = true; + Scanner.ScanOnStartup = false; }; }; + systemd.services.navidrome.serviceConfig = { + BindReadOnlyPaths = lib.mkForce ["/music" callieMount "/etc" "/nix/store"]; + }; security.acme.certs."ptr.pet".extraDomainNames = [domain]; services.nginx.virtualHosts.${domain} = { @@ -28,4 +33,47 @@ in { proxyWebsockets = true; }; }; -} + + age.secrets.callieMusic = { + file = ../../../secrets/callieMusic.age; + mode = "0600"; + }; + + systemd.services.music-callie-mnt = { + description = "geesefs mount (callie) for music"; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + wantedBy = [ "navidrome.service" ]; + before = [ "navidrome.service" ]; + + serviceConfig = { + Type = "forking"; + ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p ${callieMount}"; + ExecStart = '' + ${pkgs.geesefs}/bin/geesefs \ + --endpoint https://s3.nematodes.net \ + --region us-east-1 \ + --shared-config ${config.age.secrets.callieMusic.path} \ + --cache %C/geesefs-callie \ + --stat-cache-ttl 3600s \ + --http-timeout 2m0s \ + --read-retry-interval 30s \ + --read-retry-max-interval 2m0s \ + --read-ahead-large 20000 \ + --max-parallel-parts 2 \ + --max-parallel-copy 2 \ + --ignore-fsync \ + --disable-xattr \ + --no-specials \ + -o allow_other \ + -o ro \ + musica ${callieMount} + ''; + ExecStop = "${pkgs.fuse}/bin/fusermount -uz ${callieMount}"; + Restart = "on-failure"; + RestartSec = "10s"; + RuntimeDirectory = "geesefs-callie"; + CacheDirectory = "geesefs-callie"; + }; + }; +} \ No newline at end of file diff --git a/nvfetcher.toml b/nvfetcher.toml index 0a6eb45..4c9a1fa 100644 --- a/nvfetcher.toml +++ b/nvfetcher.toml @@ -59,8 +59,8 @@ fetch.git = "https://tangled.org/@ptr.pet/dysnomia" ## TANGLED ## [tangled] -src.git = "https://tangled.org/ptr.pet/core" -fetch.git = "https://tangled.org/ptr.pet/core" +src.git = "https://tangled.org/tangled.org/core" +fetch.git = "https://tangled.org/tangled.org/core" [tangled-sqlite-lib] src.manual = "3450100" diff --git a/pkgs-set/pkgs/helium.nix b/pkgs-set/pkgs/helium.nix index f242ad8..b0cdc35 100644 --- a/pkgs-set/pkgs/helium.nix +++ b/pkgs-set/pkgs/helium.nix @@ -5,7 +5,7 @@ }: pkgs.appimageTools.wrapType2 rec { pname = "helium"; - version = "0.7.4.1"; + version = "0.7.10.1"; src = let platformMap = { @@ -16,7 +16,7 @@ pkgs.appimageTools.wrapType2 rec { platform = platformMap.${pkgs.system}; hashes = { - "x86_64-linux" = "sha256-JFaGuRbjNEzFOEpntbzARxCOxA/2Fxhd31nXaVPfpFg="; + "x86_64-linux" = "sha256-11xSlHIqmyyVwjjwt5FmLhp72P3m07PppOo7a9DbTcE="; "aarch64-linux" = "sha256-B63tvOtSRlMRJozvzC7lqG2LM0ZgLIq2G/AHABl+Qqg="; }; diff --git a/secrets/callieMusic.age b/secrets/callieMusic.age new file mode 100644 index 0000000..fa2df6c --- /dev/null +++ b/secrets/callieMusic.age @@ -0,0 +1,17 @@ +age-encryption.org/v1 +-> ssh-rsa Abmvag +wkCnkXbbmI6jIFQKw8KQSDJl1krvHYO69Uk551DnwzhWzqhSfCDVG5XfzQFpwGOU +ivVW3khAIoSQGVs5jlxRqvuqncNhpZXt71kOKWjOU2fNG49xqs3tn+nhiu+S9wDI +sJhZsLRTjKELxetALZm9WHAr88FzF6n3pnRFhpsD5+Gbsbmj2n49HZqvNW1GfqF/ +q7lT/BJJPApfI+ZDwMWuBm6i0XEMLbyIcHwRCGPwHAAr8R51ENaolW69IAgQH7vM +mA0ZeYEuU7tAuu26ifavow50X3xjvLtHfr6oj4ncHVk/uekz5Foq3vltzaYxrNr2 +OpoFfPm95yy0G80RlJKdFmQIhpadbEx29B+Kr+BZl3I6aK4wFu0PFSuHM9WK2uvZ +SlSwX27pRDdaC4KGAyVpaBo0JJQNLXTqjPd9Xr5oLAnfwvKosm+rUdXLeRb9Bz0n +p8gzyCs3YGeSF6IZcyIK2zbXpBN6TbwX27VqWrccvLQumcG9bOLkMLrO7RjV6UxJ +oFHQ9Qm0W3kl7nYHRKFG4ElWj6Ps7bWtTUImb7aIXTSwjyBDOO4il+KcaK56uicy +4E5kddWEwFh1bDYYYHs473laUK8aBJ9guxKSqRKfVESUzZLX+Fe+pJNHp47DxsVM +1G4WLSUJDBzo9E4Lw3rPyxUVKLXRPPu6ewUsQSl6zQg +-> ssh-ed25519 LaQclg CP9PHP2EI2zwJQP5zjYnwaBaZKDkXRNTWfV2eF5rvDA +x7x68kjXun029iKfXuUMck14lmdCVA+X0sszOTgsf2Q +--- sW8ERID3ljm4fyq4dILoixn6BQ5GcpqbV2V3/PV5Yr8 +<�(�K89�&���x�g���iC{nہ��a�,\}���(r�i;.cX��F� C���Y�F-�:�R�v��� ���urAZ�����RO���'����Pk>HB��ۓVQɑc�G̚����+[s`�IH���㫠V�:Q�$�;�� \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 9a95e64..832692e 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -37,4 +37,5 @@ in ]; "atfileCfg.age".publicKeys = [yusdacra]; "ziplineCfg.age".publicKeys = [yusdacra trimounts]; + "callieMusic.age".publicKeys = [yusdacra trimounts]; } diff --git a/users/mayer/default.nix b/users/mayer/default.nix index 431ca45..ea4e7a4 100644 --- a/users/mayer/default.nix +++ b/users/mayer/default.nix @@ -161,6 +161,7 @@ in tor-browser # supersonic-wayland feishin + antigravity-fhs ]) ++ [ terra.helium (terra.pds-upload.override {