Compare commits
5 Commits
0c58e62ed4
...
89c507bfae
Author | SHA1 | Date | |
---|---|---|---|
89c507bfae | |||
ec73a63e09 | |||
af26a004e5 | |||
d83782f315 | |||
162b544249 |
@ -4,13 +4,13 @@
|
|||||||
nix = {
|
nix = {
|
||||||
settings = {
|
settings = {
|
||||||
substituters = [
|
substituters = [
|
||||||
"http://s0.koi-bebop.ts.net:5000"
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cache.nixos.org/"
|
"https://cache.nixos.org/"
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
"http://s0.koi-bebop.ts.net:5000"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"s0.koi-bebop.ts.net:OjbzD86YjyJZpCp9RWaQKANaflcpKhtzBMNP8I2aPUU="
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"s0.koi-bebop.ts.net:OjbzD86YjyJZpCp9RWaQKANaflcpKhtzBMNP8I2aPUU="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
./server
|
./server
|
||||||
./pc
|
./pc
|
||||||
./machine-info
|
./machine-info
|
||||||
|
./nix-builder.nix
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
60
common/nix-builder.nix
Normal file
60
common/nix-builder.nix
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
builderRole = "nix-builder";
|
||||||
|
builderUserName = "nix-builder";
|
||||||
|
|
||||||
|
machinesByRole = role: lib.filterAttrs (hostname: cfg: builtins.elem role cfg.systemRoles) config.machines.hosts;
|
||||||
|
otherMachinesByRole = role: lib.filterAttrs (hostname: cfg: hostname != config.networking.hostName) (machinesByRole role);
|
||||||
|
thisMachineHasRole = role: builtins.hasAttr config.networking.hostName (machinesByRole role);
|
||||||
|
|
||||||
|
builders = machinesByRole builderRole;
|
||||||
|
thisMachineIsABuilder = thisMachineHasRole builderRole;
|
||||||
|
|
||||||
|
# builders don't include themselves as a remote builder
|
||||||
|
otherBuilders = lib.filterAttrs (hostname: cfg: hostname != config.networking.hostName) builders;
|
||||||
|
in
|
||||||
|
lib.mkMerge [
|
||||||
|
# configure builder
|
||||||
|
(lib.mkIf thisMachineIsABuilder {
|
||||||
|
users.users.${builderUserName} = {
|
||||||
|
description = "Distributed Nix Build User";
|
||||||
|
group = builderUserName;
|
||||||
|
isSystemUser = true;
|
||||||
|
createHome = true;
|
||||||
|
home = "/var/lib/nix-builder";
|
||||||
|
useDefaultShell = true;
|
||||||
|
openssh.authorizedKeys.keys = builtins.map
|
||||||
|
(builderCfg: builderCfg.hostKey)
|
||||||
|
(builtins.attrValues config.machines.hosts);
|
||||||
|
};
|
||||||
|
users.groups.${builderUserName} = { };
|
||||||
|
|
||||||
|
nix.settings.trusted-users = [
|
||||||
|
builderUserName
|
||||||
|
];
|
||||||
|
})
|
||||||
|
|
||||||
|
# use each builder
|
||||||
|
{
|
||||||
|
nix.distributedBuilds = true;
|
||||||
|
|
||||||
|
nix.buildMachines = builtins.map
|
||||||
|
(builderCfg: {
|
||||||
|
hostName = builtins.elemAt builderCfg.hostNames 0;
|
||||||
|
system = builderCfg.arch;
|
||||||
|
protocol = "ssh-ng";
|
||||||
|
sshUser = builderUserName;
|
||||||
|
sshKey = "/etc/ssh/ssh_host_ed25519_key";
|
||||||
|
maxJobs = 3;
|
||||||
|
speedFactor = 10;
|
||||||
|
supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ];
|
||||||
|
})
|
||||||
|
(builtins.attrValues otherBuilders);
|
||||||
|
|
||||||
|
# It is very likely that the builder's internet is faster or just as fast
|
||||||
|
nix.extraOptions = ''
|
||||||
|
builders-use-substitutes = true
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
]
|
@ -37,7 +37,6 @@ in
|
|||||||
mumble
|
mumble
|
||||||
tigervnc
|
tigervnc
|
||||||
bluez-tools
|
bluez-tools
|
||||||
vscodium
|
|
||||||
element-desktop
|
element-desktop
|
||||||
mpv
|
mpv
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
|
@ -4,8 +4,19 @@ let
|
|||||||
cfg = config.de;
|
cfg = config.de;
|
||||||
|
|
||||||
extensions = with pkgs.vscode-extensions; [
|
extensions = with pkgs.vscode-extensions; [
|
||||||
# bbenoist.Nix # nix syntax support
|
bbenoist.nix # nix syntax support
|
||||||
# arrterian.nix-env-selector # nix dev envs
|
arrterian.nix-env-selector # nix dev envs
|
||||||
|
dart-code.dart-code
|
||||||
|
dart-code.flutter
|
||||||
|
golang.go
|
||||||
|
jnoortheen.nix-ide
|
||||||
|
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||||
|
{
|
||||||
|
name = "platformio-ide";
|
||||||
|
publisher = "platformio";
|
||||||
|
version = "3.1.1";
|
||||||
|
sha256 = "fwEct7Tj8bfTOLRozSZJGWoLzWRSvYz/KxcnfpO8Usg=";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
vscodium-with-extensions = pkgs.vscode-with-extensions.override {
|
vscodium-with-extensions = pkgs.vscode-with-extensions.override {
|
||||||
|
@ -56,6 +56,12 @@ in
|
|||||||
"damon@runyan.org"
|
"damon@runyan.org"
|
||||||
"jonas@runyan.org"
|
"jonas@runyan.org"
|
||||||
];
|
];
|
||||||
|
forwards = {
|
||||||
|
"amazon@runyan.org" = [
|
||||||
|
"jeremy@runyan.org"
|
||||||
|
"cris@runyan.org"
|
||||||
|
];
|
||||||
|
};
|
||||||
certificateScheme = 3; # use let's encrypt for certs
|
certificateScheme = 3; # use let's encrypt for certs
|
||||||
};
|
};
|
||||||
age.secrets.hashed-email-pw.file = ../../secrets/hashed-email-pw.age;
|
age.secrets.hashed-email-pw.file = ../../secrets/hashed-email-pw.age;
|
||||||
|
20
flake.lock
generated
20
flake.lock
generated
@ -117,11 +117,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682063650,
|
"lastModified": 1683515103,
|
||||||
"narHash": "sha256-VaDHh2z6xlnTHaONlNVHP7qEMcK5rZ8Js3sT6mKb2XY=",
|
"narHash": "sha256-vWlnZ0twW+ekOC6JuAHDfupv+u4QNvWawG7+DaQJ4VA=",
|
||||||
"owner": "serokell",
|
"owner": "serokell",
|
||||||
"repo": "deploy-rs",
|
"repo": "deploy-rs",
|
||||||
"rev": "c2ea4e642dc50fd44b537e9860ec95867af30d39",
|
"rev": "64160276cd6569694131ed8864d4d35470a84ec3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -171,11 +171,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682417654,
|
"lastModified": 1683638468,
|
||||||
"narHash": "sha256-XtUhq1GTRzV7QebHkxjd7Z58E6lVEk6Iv1/pF/GnBB4=",
|
"narHash": "sha256-tQEaGZfZ2Hpw+XIVEHaJ8FaF1yNQyMDDhUyIQ7LTIEg=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "e3e320b19c192f40a5b98e8776e3870df62dee8a",
|
"rev": "219067a5e3cf4b9581c8b4fcfc59ecd5af953d07",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -186,11 +186,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682818264,
|
"lastModified": 1683741689,
|
||||||
"narHash": "sha256-EPr900C3WaYulOdWRF3BMQrjF2Ao5Jf8xUOnFvZDTXE=",
|
"narHash": "sha256-VY6gjqAFQe0Xyz+olc979zbsW9dC4VG+mINGffFKVEw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "297187b30a19f147ef260abb5abd93b0706af238",
|
"rev": "f431ee4a85cb985075b4ed27596913e8087f4264",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -218,7 +218,7 @@
|
|||||||
"nixpkgs-hostapd-pr": {
|
"nixpkgs-hostapd-pr": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"narHash": "sha256-1rGQKcB1jeRPc1n021ulyOVkA6L6xmNYKmeqQ94+iRc=",
|
"narHash": "sha256-35+g1EJMcDFhb3UP15fyR1aD4AX1ifz2EqaYItITZ7U=",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/pull/222536.patch"
|
"url": "https://github.com/NixOS/nixpkgs/pull/222536.patch"
|
||||||
},
|
},
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
systemRoles = [
|
systemRoles = [
|
||||||
"server"
|
"server"
|
||||||
"gitea-runner"
|
"gitea-runner"
|
||||||
|
"nix-builder"
|
||||||
];
|
];
|
||||||
|
|
||||||
hostKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBlgRPpuUkZqe8/lHugRPm/m2vcN9psYhh5tENHZt9I2";
|
hostKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBlgRPpuUkZqe8/lHugRPm/m2vcN9psYhh5tENHZt9I2";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user