diff --git a/hosts/vulpes/core/hardware.nix b/hosts/vulpes/core/hardware.nix index 7b582fc..896a747 100644 --- a/hosts/vulpes/core/hardware.nix +++ b/hosts/vulpes/core/hardware.nix @@ -24,4 +24,9 @@ }; }; }; + + boot.zfs = { + forceImportAll = false; + forceImportRoot = false; + }; } diff --git a/hosts/vulpes/core/kernel.nix b/hosts/vulpes/core/kernel.nix index fbb41eb..9a2f49f 100644 --- a/hosts/vulpes/core/kernel.nix +++ b/hosts/vulpes/core/kernel.nix @@ -1,11 +1,26 @@ { pkgs, + lib, + config, ... }: +let + zfsCompatibleKernelPackages = lib.filterAttrs ( + name: kernelPackages: + (builtins.match "linux_[0-9]+_[0-9]+" name) != null + && (builtins.tryEval kernelPackages).success + && (!kernelPackages.${config.boot.zfs.package.kernelModuleAttribute}.meta.broken) + ) pkgs.linuxKernel.packages; + latestKernelPackage = lib.last ( + lib.sort (a: b: (lib.versionOlder a.kernel.version b.kernel.version)) ( + builtins.attrValues zfsCompatibleKernelPackages + ) + ); +in { boot = { # current kernel version - kernelPackages = pkgs.linuxPackages_latest; + kernelPackages = latestKernelPackage; initrd = { kernelModules = [ @@ -27,7 +42,10 @@ }; kernelModules = [ "kvm-amd" ]; - supportedFilesystems = [ "nfs" ]; + supportedFilesystems = [ + "nfs" + "zfs" + ]; kernelParams = [ "amdgpu.runpm=0" ]; kernel.sysctl = { "net.ipv4.ip_forward" = 1; diff --git a/hosts/vulpes/core/networking.nix b/hosts/vulpes/core/networking.nix index a38c333..44326f0 100644 --- a/hosts/vulpes/core/networking.nix +++ b/hosts/vulpes/core/networking.nix @@ -37,5 +37,7 @@ in "auth.awoo.ren" ]; }; + + hostId = "2484fba0"; }; } diff --git a/hosts/vulpes/core/secrets.nix b/hosts/vulpes/core/secrets.nix index bfdbb5c..91d5597 100644 --- a/hosts/vulpes/core/secrets.nix +++ b/hosts/vulpes/core/secrets.nix @@ -153,6 +153,10 @@ in niks3_secret_access_key = { owner = "niks3"; }; + # zipline + zipline_environment_file = { + owner = "zipline"; + }; }; }; } diff --git a/hosts/vulpes/infra/db.nix b/hosts/vulpes/infra/db.nix index 7b94bab..fdae826 100644 --- a/hosts/vulpes/infra/db.nix +++ b/hosts/vulpes/infra/db.nix @@ -100,6 +100,10 @@ in name = "niks3"; ensureDBOwnership = true; } + { + name = "zipline"; + ensureDBOwnership = true; + } ]; ensureDatabases = [ "roufpup" @@ -114,6 +118,7 @@ in "netbird" "grafana" "niks3" + "zipline" ]; settings = { listen_addresses = "*"; @@ -138,6 +143,7 @@ in host netbird_events netbird 127.0.0.1/8 scram-sha-256 host grafana grafana 127.0.0.1/8 scram-sha-256 local niks3 niks3 peer map=niks3 + local zipline zipline peer map=zipline ''; }; diff --git a/hosts/vulpes/infra/dns.nix b/hosts/vulpes/infra/dns.nix index bdfbe4c..350f3f1 100644 --- a/hosts/vulpes/infra/dns.nix +++ b/hosts/vulpes/infra/dns.nix @@ -128,6 +128,9 @@ let webhook IN A ${pm.net.ipv4.sand-archives.addr} webhook IN AAAA ${pm.net.ipv6.sand-archives.addr} + + share IN A ${pm.net.ipv4.sand-archives.addr} + share IN AAAA ${pm.net.ipv6.sand-archives.addr} ''; fennie-eu_zonefile = pkgs.writeText "zone_fennie.eu" '' diff --git a/hosts/vulpes/infra/llm.nix b/hosts/vulpes/infra/llm.nix index c816c69..091795c 100644 --- a/hosts/vulpes/infra/llm.nix +++ b/hosts/vulpes/infra/llm.nix @@ -29,7 +29,7 @@ patches = [ (pkgs.fetchpatch2 { url = "https://github.com/ggml-org/llama.cpp/pull/22133.patch"; - sha256 = "sha256-Bas6HhjwQBqMW84HI5Xjt+pm72iDXpvA8ekjYS7cJew="; + sha256 = "sha256-rXASn435IP6ms4qaFEoxJdY23srSyDthQxgIRkSuqJM="; }) ]; diff --git a/hosts/vulpes/infra/misc.nix b/hosts/vulpes/infra/misc.nix index 460efa1..eaf7506 100644 --- a/hosts/vulpes/infra/misc.nix +++ b/hosts/vulpes/infra/misc.nix @@ -1,6 +1,7 @@ { args, pkgs, + lib, config, ... }: @@ -95,7 +96,20 @@ in zipline = { enable = true; - + database.createLocally = false; + settings = { + CORE_HOSTNAME = "127.0.0.1"; + CORE_PORT = 12712; + CORE_TRUST_PROXY = true; + CORE_RETURN_HTTPS_URLS = true; + + FEATURES_USER_REGISTRATION=false; + INVITES_ENABLED=true; + + DATABASE_URL = "postgresql://zipline@localhost/zipline?host=/run/postgresql"; + DATASOURCE_TYPE = "s3"; + }; + environmentFiles = [ config.sops.secrets.zipline_environment_file.path ]; }; }; programs = { @@ -125,6 +139,25 @@ in Environment = [ "MOLLY_VAPID_PRIVKEY=${pm.srv.molly.private_key}" ]; }; }; + zipline = { + serviceConfig = { + DynamicUser = lib.mkForce false; + PrivateUsers = lib.mkForce false; + }; + }; + }; + }; + users = { + users = { + zipline = { + isSystemUser = true; + group = "zipline"; + }; + }; + groups = { + zipline = { + members = [ "zipline" ]; + }; }; }; } diff --git a/hosts/vulpes/infra/proxy.nix b/hosts/vulpes/infra/proxy.nix index 9d1886d..ff64628 100644 --- a/hosts/vulpes/infra/proxy.nix +++ b/hosts/vulpes/infra/proxy.nix @@ -35,24 +35,10 @@ in { services.caddy = { enable = true; - package = pkgs.caddy.withPlugins { - plugins = [ - "github.com/mholt/caddy-l4@v0.0.0-20251209130418-1a3490ef786a" - "github.com/caddy-dns/rfc2136@v1.0.0" - ]; - hash = "sha256-oyFnt9JKspozRi6zeygravD6c/b06EcjJt/JxCvMv+0="; - }; acmeCA = "https://acme-v02.api.letsencrypt.org/directory"; email = "pup@awoo.ren"; logFormat = lib.mkForce "level DEBUG"; globalConfig = '' - acme_dns rfc2136 { - key_name "caddy_key" - key_alg "hmac-sha512" - key "${pm.srv.bind.caddy_key}" - server "127.0.0.1:5300" - } - on_demand_tls { ask http://127.0.0.1:30500 } @@ -310,6 +296,13 @@ in } ''; }; + + "share.awoo.ren" = { + extraConfig = '' + reverse_proxy http://127.0.0.1:12712 + ''; + }; + }; }; } diff --git a/hosts/work/core/services.nix b/hosts/work/core/services.nix index 476093d..8c60a78 100644 --- a/hosts/work/core/services.nix +++ b/hosts/work/core/services.nix @@ -40,19 +40,19 @@ }; }; - netbird = { - clients.work = { - port = 51820; - hardened = false; - ui.enable = false; + # netbird = { + # clients.work = { + # port = 51820; + # hardened = false; + # ui.enable = false; - environment = { - NB_MANAGEMENT_URL = "https://netbird.awoo.ren"; - NB_ALLOW_SERVER_SSH = "true"; - NB_LOG_LEVEL = pkgs.lib.mkForce "debug"; - }; - }; - }; + # environment = { + # NB_MANAGEMENT_URL = "https://netbird.awoo.ren"; + # NB_ALLOW_SERVER_SSH = "true"; + # NB_LOG_LEVEL = pkgs.lib.mkForce "debug"; + # }; + # }; + # }; }; systemd = { diff --git a/hosts/work/users/roufpup/default.nix b/hosts/work/users/roufpup/default.nix index c1c98d4..76331d8 100644 --- a/hosts/work/users/roufpup/default.nix +++ b/hosts/work/users/roufpup/default.nix @@ -157,7 +157,6 @@ in d-spy bustle simplex-chat-desktop - cherry-studio signal-desktop mumble thunderbird-bin @@ -179,9 +178,9 @@ in ] ++ [ # Programming - rustc + # rustc rust-analyzer - cargo + # cargo rustfmt clippy nodejs diff --git a/modules/priv b/modules/priv index f73809a..d91c8be 160000 --- a/modules/priv +++ b/modules/priv @@ -1 +1 @@ -Subproject commit f73809ae36e743c9091112c1f1694217922cc3b4 +Subproject commit d91c8bed3262eab274b081fec3e5988e397ead44 diff --git a/npins/sources.json b/npins/sources.json index 2e4fdd9..fa90c38 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -9,9 +9,9 @@ }, "branch": "main", "submodules": false, - "revision": "eb5fb72efc11e77e34404a206d978ca8aa131b71", - "url": "https://github.com/mrshmllow/affinity-nix/archive/eb5fb72efc11e77e34404a206d978ca8aa131b71.tar.gz", - "hash": "sha256-1RJv/P0V6HsSNnokBzXQeIZmTO3qXJDuASko7TgBmPU=" + "revision": "fe12b087f518cd5c2cd03fcc63f30cd78108bc35", + "url": "https://github.com/mrshmllow/affinity-nix/archive/fe12b087f518cd5c2cd03fcc63f30cd78108bc35.tar.gz", + "hash": "sha256-KvQSG1KJMIoKDx1UY1Ps98MA+oKcVmeE1WPWXG3B4w8=" }, "awoopkgs": { "type": "Git", @@ -101,9 +101,9 @@ }, "branch": "feat/nix", "submodules": false, - "revision": "681e2b775ad6f7d8608daf4940b3a7f10dc6fb6c", + "revision": "cef3caf8cb5edc3e26c5fa44aa6113b1a0892c5f", "url": null, - "hash": "sha256-PDp92ttPuvj8oZ7E8RIL3zczIIeSHr9fcVs90VCGdSQ=" + "hash": "sha256-QPtjRRbmMEiqsz3YUgV8WPQRId//hQbiqa/42Vijcz0=" }, "helix_nix": { "type": "Git", @@ -164,9 +164,9 @@ }, "branch": "main", "submodules": false, - "revision": "fbcded5420a3f2357fda14b6cf0f0453d1ed3266", - "url": "https://github.com/Mic92/niks3/archive/fbcded5420a3f2357fda14b6cf0f0453d1ed3266.tar.gz", - "hash": "sha256-fiAFsNCgzMmaeoEFQiibMIYO3MyUqvKlwNT3F+N94MI=" + "revision": "b306808bf381e7e66e33de1e9446a1be0935f4e3", + "url": "https://github.com/Mic92/niks3/archive/b306808bf381e7e66e33de1e9446a1be0935f4e3.tar.gz", + "hash": "sha256-TydDba3YD2u15uS0L+PDs7lMqPopnzWggljTKDqOCSw=" }, "nix-index": { "type": "Git", @@ -190,9 +190,9 @@ }, "branch": "master", "submodules": false, - "revision": "1d8bdeb5d6685c8ca5315c214699a3f6ab42fe0f", - "url": "https://github.com/NixOS/nixpkgs/archive/1d8bdeb5d6685c8ca5315c214699a3f6ab42fe0f.tar.gz", - "hash": "sha256-w5V3OobNzw1qWJOa65Aql6ebo4JaP5I2k6VCR9qL5FM=" + "revision": "d4a57f162b50db6d7e49580a772ccbdb3a1605a4", + "url": "https://github.com/NixOS/nixpkgs/archive/d4a57f162b50db6d7e49580a772ccbdb3a1605a4.tar.gz", + "hash": "sha256-CEHmSwSc+5kzd6tP/4ol4KEA9fMDVSKGTam7rbBPQqw=" }, "nixpkgs_nixos-26-05": { "type": "Git", @@ -203,9 +203,9 @@ }, "branch": "nixos-26.05", "submodules": false, - "revision": "569d578509928497eddc3fdbf94a799027050be4", - "url": "https://github.com/NixOS/nixpkgs/archive/569d578509928497eddc3fdbf94a799027050be4.tar.gz", - "hash": "sha256-ZGP04e+Q6WyQJGA9ZvI5CL6+heGQldbAG9U1T9NGvmU=" + "revision": "8eeec934ae0dbeca3d7868c059568a65c08b2fc3", + "url": "https://github.com/NixOS/nixpkgs/archive/8eeec934ae0dbeca3d7868c059568a65c08b2fc3.tar.gz", + "hash": "sha256-lDebytrYdd47IBLwvNOD+6AGeoqZ78CIKlp70hzW280=" }, "nixpkgs_nixos-unstable": { "type": "Git", @@ -216,9 +216,9 @@ }, "branch": "nixos-unstable", "submodules": false, - "revision": "e7a3ca8092b61ff85b6a45bf863ea2b2d6a661b3", - "url": "https://github.com/NixOS/nixpkgs/archive/e7a3ca8092b61ff85b6a45bf863ea2b2d6a661b3.tar.gz", - "hash": "sha256-UgCQzxeWI75XM8G+hPrPh+MKzEPjG3SpAj7dtqSbksA=" + "revision": "18b9261cb3294b6d2a06d03f96872827b8fe2698", + "url": "https://github.com/NixOS/nixpkgs/archive/18b9261cb3294b6d2a06d03f96872827b8fe2698.tar.gz", + "hash": "sha256-djcLt/JJphyNt4eDY9XTly+/WbCK5lqWq9lSgCmJkkQ=" }, "nixpkgs_xr": { "type": "Git", @@ -229,9 +229,9 @@ }, "branch": "main", "submodules": false, - "revision": "2a4ae7e1156ed8eb1c2b90925fb7d740a5c0143e", - "url": "https://github.com/nix-community/nixpkgs-xr/archive/2a4ae7e1156ed8eb1c2b90925fb7d740a5c0143e.tar.gz", - "hash": "sha256-O5trj7Kv0Yv5h067Py/7nkP3RhWaJCQR0cU/NHyLPF8=" + "revision": "36cef5645b6b2a57c48914d78c5e2c476890ad47", + "url": "https://github.com/nix-community/nixpkgs-xr/archive/36cef5645b6b2a57c48914d78c5e2c476890ad47.tar.gz", + "hash": "sha256-1Br1Uv3KNDuB0gvRdMFqRdQGyAzGyls/UEhj8i8E5iI=" }, "nur": { "type": "Git", @@ -242,9 +242,9 @@ }, "branch": "main", "submodules": false, - "revision": "b2ab6ad092e546b801cad645f8a9911aeb01c487", - "url": "https://github.com/nix-community/NUR/archive/b2ab6ad092e546b801cad645f8a9911aeb01c487.tar.gz", - "hash": "sha256-cvODnNth/Hhnlyw3QW6y4QSIGcj28ZQ0QCROBfL0mAU=" + "revision": "5ae4beea9d336e7b4492648d20e86a021ca61c0b", + "url": "https://github.com/nix-community/NUR/archive/5ae4beea9d336e7b4492648d20e86a021ca61c0b.tar.gz", + "hash": "sha256-F+oPGz5XqPY4IfqBItKviqVCdYJQmq99MJtM7BXzQtg=" }, "rust-overlay": { "type": "Git", @@ -255,9 +255,9 @@ }, "branch": "master", "submodules": false, - "revision": "e013376c32a8fcf07ddb6ec71739552bc118b7bd", - "url": "https://github.com/oxalica/rust-overlay/archive/e013376c32a8fcf07ddb6ec71739552bc118b7bd.tar.gz", - "hash": "sha256-DsSIQSRMrLOz40LrGZ03sp2RlJ9sz3wKpd8XPTOzXnw=" + "revision": "a7887636a3959168bd1ba7ef24a8a70b168dcb56", + "url": "https://github.com/oxalica/rust-overlay/archive/a7887636a3959168bd1ba7ef24a8a70b168dcb56.tar.gz", + "hash": "sha256-aILAwrBQPhKldL98N8lmsbfst3OPtbMM4vT2VXn40/Y=" }, "sops-nix": { "type": "Git", @@ -294,9 +294,9 @@ }, "branch": "master", "submodules": false, - "revision": "a00289e357eccddbe76c1339f947936bcf922346", + "revision": "3215fd262e6707c212f3199f8903ce538c503072", "url": null, - "hash": "sha256-ze75QU/ZA3m8Ch9GDYiu6t7JCRckcEU4wKiZgyWshf4=" + "hash": "sha256-y1C7tTbPvDJQaC6gLbYqlCg9JSt/ccGackXGQrQtAYY=" }, "tranquil_pds": { "type": "Git", @@ -306,9 +306,9 @@ }, "branch": "main", "submodules": false, - "revision": "e41f34746a2e823e339dd181f3d84e9f5c41e0cc", + "revision": "4416f50c8784db53a1fafb60c0c6e6b018109397", "url": null, - "hash": "sha256-5Q2zeAhiakeBlmlDjnU1BnGzvwztONf+Oap6+Q9ZaKo=" + "hash": "sha256-hjBsjbMdU2cdvuWAR6U0GhjbmSidmmLxM6m/7be2D0w=" }, "wire": { "type": "Git", @@ -318,9 +318,9 @@ }, "branch": "trunk", "submodules": false, - "revision": "5d151998fa3344255cdb7f995f61b6aa90d533e4", + "revision": "cd0ee8c2daf6f9e229ba13ef1073dac86a3d6108", "url": null, - "hash": "sha256-CEzGGUIZjoNhrMet2FdijmEKiZ/qNAKRdRZeEW4NQ3U=" + "hash": "sha256-0IRszV23SAygEZGbAGGjZ//iRINECs5kMNOdA8xnm+8=" } }, "version": 8