Files
nixos/hosts/unstable/jeremiah/default.nix
T

168 lines
3.7 KiB
Nix
Raw Normal View History

2024-10-19 01:19:59 -05:00
{
2025-12-06 23:17:00 -06:00
config,
2025-12-28 21:18:13 -06:00
metadata,
2025-12-06 23:17:00 -06:00
pkgs,
2025-04-13 21:04:59 -05:00
top,
2024-10-19 01:19:59 -05:00
...
}:
2024-04-16 08:34:06 -05:00
2025-12-03 20:38:00 -06:00
let
2025-12-28 21:18:13 -06:00
ip = metadata.hosts.${config.networking.hostName}.ip;
2025-12-07 00:06:38 -06:00
mk = file: {
inherit file;
owner = "buildbot";
group = "buildbot";
};
2025-12-03 20:38:00 -06:00
in
2024-04-16 08:34:06 -05:00
{
2024-10-19 01:19:59 -05:00
imports = [
./hardware-configuration.nix
2025-12-06 23:17:00 -06:00
top.buildbot.nixosModules.buildbot-master
top.buildbot.nixosModules.buildbot-worker
2024-10-19 01:19:59 -05:00
];
2024-04-16 08:34:06 -05:00
2025-12-06 23:17:00 -06:00
age.secrets = {
gitea-buildbotWorkersFile = mk ../../../secrets/gitea/buildbotWorkersFile.age;
gitea-oauthToken = mk ../../../secrets/gitea/oauthToken.age;
gitea-oauthSecret = mk ../../../secrets/gitea/oauthSecret.age;
gitea-webhookSecret = mk ../../../secrets/gitea/webhookSecret.age;
gitea-workerPassword = mk ../../../secrets/gitea/workerPassword.age;
2025-12-06 23:17:00 -06:00
};
# Bootloader.
2025-04-17 22:15:01 -05:00
boot = {
initrd.kernelModules = [
2025-11-08 13:59:34 -06:00
"amdgpu"
2025-04-17 22:15:01 -05:00
];
2025-12-06 23:17:00 -06:00
kernelParams = [
];
2025-04-17 22:15:01 -05:00
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
2024-11-20 22:53:37 -06:00
};
environment.systemPackages = with pkgs; [
2025-11-08 13:59:34 -06:00
amdgpu_top
clinfo
curl
gawk
git
2025-11-08 16:11:37 -06:00
mesa-demos
unzip
wget
];
2024-06-21 13:02:13 -05:00
fileSystems = {
"/nix" = {
fsType = "btrfs";
options = [ "subvol=nix" ];
device = "/dev/nvme0n1p1";
};
"/var" = {
fsType = "btrfs";
options = [ "subvol=var" ];
device = "/dev/nvme0n1p1";
};
2025-04-17 16:52:11 -05:00
"/var/pve" = {
fsType = "btrfs";
options = [ "subvol=pve" ];
device = "/dev/nvme0n1p1";
};
"/btrfs" = {
fsType = "btrfs";
device = "/dev/nvme0n1p1";
};
};
2024-06-21 13:02:13 -05:00
2025-01-16 15:20:25 -06:00
greg = {
2026-04-05 16:51:31 -05:00
gitea-runner = {
enable = true;
extraLabels = [ "bare-metal:host" ];
};
2025-01-16 15:20:25 -06:00
home = true;
2025-07-02 23:07:08 -05:00
kubernetes = {
enable = true;
vipInterface = "br0";
2025-12-03 20:38:00 -06:00
vip = ip;
2025-07-02 23:07:08 -05:00
priority = 254;
};
nebula.enable = true;
2025-11-15 14:08:34 -06:00
tailscale = {
enable = true;
tags = [ "home" ];
};
2025-01-16 15:20:25 -06:00
remote-builder.enable = true;
};
2025-12-25 22:54:13 -06:00
hardware = {
graphics = {
enable = true;
enable32Bit = true;
};
2025-11-08 13:59:34 -06:00
};
2025-01-16 15:20:25 -06:00
networking = {
hostName = "jeremiah"; # Define your hostname.
useDHCP = false;
2025-04-13 21:04:59 -05:00
bridges.br0 = {
interfaces = [ "enp68s0" ];
};
2025-01-16 15:20:25 -06:00
defaultGateway = {
2025-12-28 21:18:13 -06:00
address = metadata.infra.gw;
2025-04-13 21:04:59 -05:00
interface = "br0";
2025-01-16 15:20:25 -06:00
};
2025-12-16 08:14:25 -06:00
firewall.allowedTCPPorts = [
2026-04-03 23:49:12 -05:00
8010
2025-12-16 08:14:25 -06:00
3389
9989 # buildbot communications port
];
2025-12-03 20:38:00 -06:00
interfaces.br0.ipv4 = {
addresses = [
{
address = ip;
prefixLength = 16;
}
];
};
2025-12-28 21:18:13 -06:00
nameservers = [ metadata.infra.dns ];
2025-01-16 15:20:25 -06:00
};
services = {
2025-12-06 23:17:00 -06:00
buildbot-nix = {
master = {
enable = true;
admins = [ "greg" ];
authBackend = "gitea";
# Optional to build non-default branches at a time
2025-12-07 15:41:10 -06:00
branches = {
default = {
matchGlob = "ma*";
registerGCRoots = false;
updateOutputs = false;
};
};
2026-05-26 07:48:39 -05:00
domain = "${config.networking.hostName}.shire-zebra.ts.net:8010";
evalMaxMemorySize = 8192;
evalWorkerCount = 4;
2025-12-06 23:17:00 -06:00
gitea = {
enable = true;
instanceUrl = "https://src.thehellings.com";
2025-12-29 01:50:06 -06:00
oauthId = "7ec9107d-379b-47c8-870f-1191956d0500";
2025-12-06 23:17:00 -06:00
oauthSecretFile = config.age.secrets.gitea-oauthSecret.path;
tokenFile = config.age.secrets.gitea-oauthToken.path;
2025-12-29 01:50:06 -06:00
topic = "buildbot-nix";
2025-12-06 23:17:00 -06:00
webhookSecretFile = config.age.secrets.gitea-webhookSecret.path;
};
2025-12-07 00:06:38 -06:00
showTrace = true;
#webhookBaseUrl = "http://${config.networking.hostName}.shire-zebra.ts.net:8010";
2025-12-06 23:17:00 -06:00
workersFile = config.age.secrets.gitea-buildbotWorkersFile.path;
};
worker = {
enable = true;
workerPasswordFile = config.age.secrets.gitea-workerPassword.path;
};
};
};
2024-04-16 08:34:06 -05:00
}