diff --git a/flake.lock b/flake.lock index 584a4d6..b483f25 100644 --- a/flake.lock +++ b/flake.lock @@ -37,6 +37,28 @@ "type": "github" } }, + "fenix": { + "inputs": { + "nixpkgs": [ + "tangled", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1772176312, + "narHash": "sha256-Yjo/QCJvY9GUhAzwac/m6Rx3oxvRyEaiT5DQ5o+T6g4=", + "owner": "nix-community", + "repo": "fenix", + "rev": "92d91250c1acd59beabc51208192adc92f31aeb5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, "finge": { "inputs": { "nixpkgs": [ @@ -129,11 +151,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -151,11 +173,11 @@ ] }, "locked": { - "lastModified": 1754078208, - "narHash": "sha256-YVoIFDCDpYuU3riaDEJ3xiGdPOtsx4sR5eTzHTytPV8=", + "lastModified": 1763982521, + "narHash": "sha256-ur4QIAHwgFc0vXiaxn5No/FuZicxBr2p0gmT54xZkUQ=", "owner": "nix-community", "repo": "gomod2nix", - "rev": "7f963246a71626c7fc70b431a315c4388a0c95cf", + "rev": "02e63a239d6eabd595db56852535992c898eba72", "type": "github" }, "original": { @@ -264,6 +286,18 @@ "url": "https://github.com/lucide-icons/lucide/releases/download/0.536.0/lucide-icons-0.536.0.zip" } }, + "mermaid-src": { + "flake": false, + "locked": { + "narHash": "sha256-/YOdECG2V5c3kJ1QfGvhziTT6K/Dx/4mOk2mr3Fs/do=", + "type": "file", + "url": "https://cdn.jsdelivr.net/npm/mermaid@11.12.3/dist/mermaid.min.js" + }, + "original": { + "type": "file", + "url": "https://cdn.jsdelivr.net/npm/mermaid@11.12.3/dist/mermaid.min.js" + } + }, "niri": { "inputs": { "niri-stable": "niri-stable", @@ -276,11 +310,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1775802594, - "narHash": "sha256-miydzsK4cMzBXoHw+/5Am4PwB/P/ifWOlfHHqFe7FKU=", + "lastModified": 1775877135, + "narHash": "sha256-nAqtUMy22olwyiOJB0CASVrbu5XB5+43GjlbIJ1KuvQ=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "63213c63766e5bb28e0e0b078c4628b01b24c92f", + "rev": "f943da038fd668d435c2d17916577f295faa8839", "type": "github" }, "original": { @@ -351,11 +385,11 @@ ] }, "locked": { - "lastModified": 1774264319, - "narHash": "sha256-aAsO35YtqIdvBhCIKZ0a+OcC8wB0H1+mAoPKBY0jxeQ=", + "lastModified": 1775887459, + "narHash": "sha256-aUC+iK8zpMxdZLMhQpmUz9XBzKrQnFWzveB9IK18n3w=", "owner": "nix-community", "repo": "nixos-apple-silicon", - "rev": "9fe29a63b23005acfcd1324a9e78b6241226cdb1", + "rev": "b6d1d07d55831902cb188a40692a5c7b5529e9e0", "type": "github" }, "original": { @@ -367,11 +401,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1775728626, - "narHash": "sha256-EhIPCT/tFqqPt4DMQZAUJj953GOZMjlBZq91zj/XWsk=", + "lastModified": 1775814348, + "narHash": "sha256-wW/U49vd2vEVwnpSN122BAR0uRFz6U6NaPVeVdA5ghg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0c33d38e5790d4bbf65f0a7f1ac7fe58d2e361f4", + "rev": "3ec049d0d1b13a6bda5232e00f1c6c25c5fa373a", "type": "github" }, "original": { @@ -383,11 +417,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1775595990, - "narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=", + "lastModified": 1775811116, + "narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4e92bbcdb030f3b4782be4751dc08e6b6cb6ccf2", + "rev": "54170c54449ea4d6725efd30d719c5e505f1c10e", "type": "github" }, "original": { @@ -399,11 +433,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1751984180, - "narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=", + "lastModified": 1771848320, + "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0", + "rev": "2fc6539b481e1d2569f25f8799236694180c0993", "type": "github" }, "original": { @@ -422,11 +456,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1775805127, - "narHash": "sha256-YZTv64nVKhJCDbP/LsMM0KWsjdkMcZRrxIR3RXxG+Pw=", + "lastModified": 1775837497, + "narHash": "sha256-L17VI03w/wVXvc1SK7EI1muLqHxD3+esYPPzgQvvdOE=", "owner": "nix-community", "repo": "nixvim", - "rev": "37e43d800387d3a387e29109b2673a9bd72d8b7c", + "rev": "a587a96a48c705609bfd2ad23f9ae5961eb0d373", "type": "github" }, "original": { @@ -449,6 +483,23 @@ "tangled": "tangled" } }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1772094427, + "narHash": "sha256-TiVs6OUBJEvajHdJZ5nIq0KognNJooUWuLGPFfQacSw=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "56b59a832858329c2f947f9b7bdf1a49da39c981", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, "sops-nix": { "inputs": { "nixpkgs": [ @@ -515,6 +566,7 @@ "tangled": { "inputs": { "actor-typeahead-src": "actor-typeahead-src", + "fenix": "fenix", "flake-compat": "flake-compat_3", "gomod2nix": "gomod2nix", "htmx-src": "htmx-src", @@ -523,20 +575,21 @@ "indigo": "indigo", "inter-fonts-src": "inter-fonts-src", "lucide-src": "lucide-src", + "mermaid-src": "mermaid-src", "nixpkgs": "nixpkgs_2", "sqlite-lib-src": "sqlite-lib-src" }, "locked": { - "lastModified": 1763627666, - "narHash": "sha256-t8UQ85/bPXrbFs3V/paFtQvv4lSrr2lszrdcgspuAaA=", - "ref": "refs/tags/v1.11.0-alpha", - "rev": "12ef7f8f63ee4a14a552ebed603802c79e4d72f8", - "revCount": 1678, + "lastModified": 1775125115, + "narHash": "sha256-cN0RrnfsY3TR5Xj9nc5JV0M9aDRsQfN1PAUNakiQbtU=", + "ref": "refs/tags/v1.13.0-alpha", + "rev": "c3f60dc17fd6cc709159974f2815a6d14044a106", + "revCount": 2157, "type": "git", "url": "https://tangled.org/@tangled.org/core" }, "original": { - "ref": "refs/tags/v1.11.0-alpha", + "ref": "refs/tags/v1.13.0-alpha", "type": "git", "url": "https://tangled.org/@tangled.org/core" } diff --git a/flake.nix b/flake.nix index 6bc4475..19bd38c 100644 --- a/flake.nix +++ b/flake.nix @@ -35,7 +35,7 @@ url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - tangled.url = "git+https://tangled.org/@tangled.org/core?ref=refs/tags/v1.11.0-alpha"; + tangled.url = "git+https://tangled.org/@tangled.org/core?ref=refs/tags/v1.13.0-alpha"; }; outputs = diff --git a/modules/core/nix.nix b/modules/core/nix.nix index ee97f6c..9d57fdb 100644 --- a/modules/core/nix.nix +++ b/modules/core/nix.nix @@ -1,8 +1,16 @@ +{ ... }: { - nix.settings = { - experimental-features = "nix-command flakes"; - trusted-users = [ - "@wheel" - ]; + nix = { + gc = { + automatic = true; + dates = "daily"; + options = "--delete-older-than 5d"; + }; + settings = { + experimental-features = "nix-command flakes"; + trusted-users = [ + "@wheel" + ]; + }; }; } diff --git a/modules/core/packages.nix b/modules/core/packages.nix index c2968c5..2ed1063 100644 --- a/modules/core/packages.nix +++ b/modules/core/packages.nix @@ -13,7 +13,6 @@ final.pipewire ]; }); - ncmpcpp = final.callPackage ../../pkgs/ncmpcpp { }; }) inputs.nix-matlab.overlay ]; diff --git a/modules/server/navidrome.nix b/modules/server/navidrome.nix index 96c3001..8b03fab 100644 --- a/modules/server/navidrome.nix +++ b/modules/server/navidrome.nix @@ -1,20 +1,11 @@ -{ - config, - lib, - pkgs, - ... -}: +{ config, lib, ... }: let sock = "/run/navidrome/navidrome.sock"; in { + # proper permissions for nginx reverse proxy systemd.services = lib.mkIf (config.services.navidrome.enable) { - navidrome = { - serviceConfig.ExecStartPost = [ - "${pkgs.coreutils}/bin/sleep 1" - "+${pkgs.coreutils}/bin/chgrp nginx ${sock}" - ]; - }; + nginx.serviceConfig.SupplementaryGroups = [ "navidrome" ]; }; services.navidrome = { diff --git a/modules/server/ntfy.nix b/modules/server/ntfy.nix index 3a3edbb..bf54976 100644 --- a/modules/server/ntfy.nix +++ b/modules/server/ntfy.nix @@ -1,6 +1,7 @@ { config, lib, ... }: let ntfyFQDN = "ntfy.monke.moe"; + sock = "/run/ntfy/ntfy.sock"; in { sops = { @@ -12,10 +13,20 @@ in ''; }; + systemd.services = lib.mkIf (config.services.ntfy-sh.enable) { + ntfy-sh.serviceConfig = { + RuntimeDirectory = "ntfy"; + }; + + nginx.serviceConfig.SupplementaryGroups = [ "ntfy-sh" ]; + }; + services = { ntfy-sh = { enable = true; settings = { + listen-unix = sock; + listen-unix-mode = 432; # 0660 in octal base-url = "https://${ntfyFQDN}"; behind-proxy = true; }; @@ -38,7 +49,7 @@ in useACMEHost = "monke.moe"; http2 = true; locations."/" = { - proxyPass = "http://${config.services.ntfy-sh.settings.listen-http}"; + proxyPass = "http://unix:${sock}"; proxyWebsockets = true; }; }; diff --git a/modules/server/vaultwarden.nix b/modules/server/vaultwarden.nix index 528f00b..60b9bdb 100644 --- a/modules/server/vaultwarden.nix +++ b/modules/server/vaultwarden.nix @@ -25,7 +25,6 @@ config = { DOMAIN = "https://vault.forest.monke"; SIGNUPS_ALLOWED = false; - ROCKET_ADDRESS = "127.0.0.1"; ROCKET_PORT = 8084; }; @@ -39,7 +38,10 @@ http2 = true; sslCertificate = config.sops.secrets."ssl/cert".path; sslCertificateKey = config.sops.secrets."ssl/key".path; - locations."/".proxyPass = "http://127.0.0.1:8084"; + locations."/" = { + proxyPass = "http://127.0.0.1:8084"; + proxyWebsockets = true; + }; }; }) ];