My Nix Configuration
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

[flake] add distributed builds configuration

dish 4dbb37aa e2ff76de

+62 -2
+2
hosts/default.nix
··· 42 42 ]; 43 43 modules = [ 44 44 inputs.dn42.nixosModules.default 45 + inputs.self.nixosModules.distributed-builds 45 46 ]; 46 47 }; 47 48 thought = { ··· 56 57 tags = [ "laptop" ]; 57 58 modules = [ 58 59 inputs.hardware.nixosModules.framework-16-7040-amd 60 + inputs.self.nixosModules.distributed-builds 59 61 inputs.self.nixosModules.hm-pyrox-zaphod 60 62 inputs.self.nixosModules.hm-thehedgehog-zaphod 61 63 inputs.self.nixosModules.dms
+9 -2
hosts/marvin/default.nix
··· 1 - { ... }: 1 + { config, ... }: 2 2 { 3 3 imports = [ 4 4 # Machine-specific configurations. ··· 36 36 ./services/zfs.nix 37 37 # keep-sorted end 38 38 ]; 39 - nix.settings.max-jobs = 12; 39 + nix.settings = { 40 + max-jobs = 12; 41 + secret-key-files = config.age.secrets.cache-key.path; 42 + }; 40 43 fileSystems = { 41 44 "/" = { 42 45 fsType = "btrfs"; ··· 80 83 ''; 81 84 programs.nix-ld.enable = true; 82 85 86 + age.secrets.cache-key = { 87 + file = ./services/secrets/cache-key.age; 88 + group = "nixbld"; 89 + }; 83 90 }
+20
hosts/marvin/services/secrets/cache-key.age
··· 1 + age-encryption.org/v1 2 + -> ssh-ed25519 iqBxIA 17Ys/c2jTSbYN95b2PJICv7LAjrFLy0Axy7gOdo+/TQ 3 + Zmd76HgjWVqmbn7Pypc4uf6mWWQN69AmVTcaTgR4cYo 4 + -> ssh-rsa fFaiTA 5 + vwHwEiNarMtde+aJgnE/i1A8PzPvdTZq1D20xy944I+/uHFtlF1kIQZV9qM547iD 6 + Pxh3mnRayb3v1AYOmr//VN07eiCeIhCoth+jvkqPxssTI4y+A3KCeAyh0oeOKjMV 7 + qtg9P+3FDpOcE/gR+OXQX0zbr5XlOXikaCHTBcYnCL5WEIMMhQG4u7waCAhOpZjb 8 + e09rc2hP3SG2ubk/R6pwmHDVsVw2ErHl+janX3noqLSPsLFovmt70oxYRf0D1cDI 9 + 49CS2o4r07bIfINY1YKt1kh5T/EV1Vx9gI85YLJPYyR4vBZ/m2xe+hDgPIQK7GK6 10 + TVXuyX1v5UybCh1fYWCJMtMuypn9tLrybd2+K/zc0aeMTcuec/Er1bby4g+0ETzt 11 + kZOai6HaoOpcnIijN77avw8dONcK8IA0ShhLQ7huuBrw9CIluOJhoFOvheAIb9kL 12 + f+RwwBPfWx7qzeTabJo8vdXQTEtkYEycc50duHAMVxP8NIUgFXZmAXHgIvojXtRE 13 + EH/CsWYQA1akg+Huw/gyfG3enCSeOxWqvrKJaxruqn2X5kVqsZp6K+2UjTXldgjm 14 + sRlu/YEiebB/9Dou1aXEYEhASRfDRbe/6VG5f2HjdOGtrOvddMeV+61W4ytYKjit 15 + NAEQ4DrVQcdZBacznSLlzF2gsaGkjImN4uLWAXLhpsA 16 + -> ssh-ed25519 wpmdHA SFQNhfHFtl0HBJgvM3Wfe/0pUZVPX7o3QeykfBLXwHc 17 + HCUD3DvrDEfA3zavugeESrTZKos3R3QX+6JJHTC4iCs 18 + --- RqLqc2pXxbQJhoxBt9G/71TgPZ1L/y9slvOg+kvRIoM 19 + =D���� v8��,*�!�蠟.�������vs�����j 20 + ;�MѐtEd��*�Y�������T�cgV��p��t��T)Y�i���'=�߇�z ��+r�Q�����~D11��������ASI�Q��Qr
+1
hosts/marvin/services/secrets/secrets.nix
··· 15 15 # "buildbot/oauth-secret.age".publicKeys = marvinDefault; 16 16 # "buildbot/worker-password.age".publicKeys = marvinDefault; 17 17 # "buildbot/workers.age".publicKeys = marvinDefault; 18 + "cache-key.age".publicKeys = marvinDefault; 18 19 "forgejo/aux-docs-runner-token.age".publicKeys = marvinDefault; 19 20 "forgejo/db-pw.age".publicKeys = marvinDefault; 20 21 "forgejo/default-runner-token.age".publicKeys = marvinDefault;
+1
nixosModules/default.nix
··· 4 4 defaultConfig = import ./default-config; 5 5 defaultUsers = import ./default-users; 6 6 profiles = import ./profiles; 7 + distributed-builds = import ./distributedBuilds; 7 8 8 9 dn42Wireguard = import ./dn42Wireguard; 9 10
+29
nixosModules/distributedBuilds/default.nix
··· 1 + { lib, ... }: 2 + 3 + { 4 + nix = { 5 + buildMachines = [ 6 + { 7 + hostName = "marvin"; 8 + system = "x86_64-linux"; 9 + protocol = "ssh"; 10 + maxJobs = 5; 11 + speedFactor = 3; 12 + supportedFeatures = [ 13 + "nixos-test" 14 + "benchmark" 15 + "big-parallel" 16 + "kvm" 17 + ]; 18 + mandatoryFeatures = [ ]; 19 + sshUser = "thehedgehog"; 20 + } 21 + ]; 22 + distributedBuilds = true; 23 + settings = { 24 + builders-use-substitutes = true; 25 + trusted-public-keys = [ "marvin:6KYRoivyUqnmakGGMyvPOlJfLbIMixVFCFH25260vFc=" ]; 26 + substituters = [ "ssh://thehedgehog@marvin" ]; 27 + }; 28 + }; 29 + }