mirror of
https://github.com/oqyude/nixos.git
synced 2026-10-07 20:47:14 +03:00
140 lines
4.6 KiB
Nix
140 lines
4.6 KiB
Nix
# Host: "sapphira" (device: server)
|
|
#
|
|
# The host record lives in configurations/default.nix; this file is only the
|
|
# module body. `xlib` (identity, dirs, helpers) arrives as a module argument.
|
|
{
|
|
lib,
|
|
pkgs,
|
|
xlib,
|
|
inputs,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
./hardware/server.nix
|
|
inputs.self.nixosModules.default
|
|
];
|
|
|
|
boot = {
|
|
# kernelPackages = pkgs.linuxPackages_xanmod_stable;
|
|
hardwareScan = true;
|
|
loader = {
|
|
systemd-boot.enable = lib.mkDefault true;
|
|
efi.canTouchEfiVariables = lib.mkDefault true;
|
|
};
|
|
};
|
|
|
|
hardware = {
|
|
bluetooth.enable = true;
|
|
graphics = {
|
|
enable = true;
|
|
extraPackages = with pkgs; [
|
|
intel-media-driver
|
|
intel-ocl
|
|
intel-vaapi-driver
|
|
];
|
|
};
|
|
intel-gpu-tools.enable = true;
|
|
};
|
|
|
|
fileSystems =
|
|
(xlib.helpers.mkExfatMount {
|
|
path = xlib.dirs.archive-drive;
|
|
label = "archive";
|
|
})
|
|
// (xlib.helpers.mkExfatMount {
|
|
path = xlib.dirs.mobile-drive;
|
|
uuid = "7EB1-DC99";
|
|
})
|
|
// (xlib.helpers.mkBindMount {
|
|
what = xlib.dirs.services-folder;
|
|
where = xlib.dirs.services-mnt-folder;
|
|
})
|
|
// {
|
|
# External drive
|
|
"${xlib.dirs.server-home}" = {
|
|
device = "/dev/disk/by-uuid/37e53ebc-5343-a94d-9fe2-0ca39e13a8de";
|
|
fsType = "ext4";
|
|
};
|
|
};
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"z ${xlib.dirs.services-mnt-folder} 0777 root root -"
|
|
];
|
|
|
|
host.ssh.enable = true;
|
|
|
|
# Offload Nix builds to the WSL2 NixOS instance running on vetymae
|
|
# (Windows 11 host). Sapphira only has 2 logical cores; the WSL exposes
|
|
# 24 cores + 14 GiB. The matchBlock with ProxyCommand is generated by
|
|
# modules/server/builder.nix, the other side of the same option lives in
|
|
# modules/wsl/builder.nix.
|
|
#
|
|
# `proxyCommand` is what marks this builder as needing the SSH matchBlock
|
|
# (see modules/server/builder.nix). A builder reachable directly would
|
|
# omit it.
|
|
#
|
|
# ---- DISABLED 2026-10-04 ----
|
|
# Remote building temporarily turned off coordinator-side. `host.builder.clients`
|
|
# falls back to its default `[]` (declared in modules/options.nix), so
|
|
# modules/server/builder.nix's `lib.mkIf (clients != [])` never fires and no
|
|
# buildMachines / SSH blocks / distributedBuilds override get generated.
|
|
# All builds run locally on sapphira's 2 cores. Re-enable by removing the
|
|
# Nix comments on the block below (and on `host.builder.enable = true;`
|
|
# in configurations/wsl.nix).
|
|
#
|
|
# host.builder.clients = [
|
|
# {
|
|
# hostName = "vetymae-nix";
|
|
# sshUser = "oqyude";
|
|
# sshKey = "/root/.ssh/id_ed25519";
|
|
# # NixOS calls this `systems` (plural), not `systemTypes`. The
|
|
# # default is empty — every derivation is rejected. The WSL NixOS
|
|
# # runs on x86_64-linux, matching sapphira.
|
|
# systems = [ "x86_64-linux" ];
|
|
# # vetymae-nix drops kvm + nixos-test from its advertised
|
|
# # system-features (see modules/wsl/builder.nix). Listing them here
|
|
# # would not break anything (Nix intersects), but listing the
|
|
# # features the WSL actually has is the documented contract.
|
|
# supportedFeatures = [
|
|
# "benchmark"
|
|
# "big-parallel"
|
|
# ];
|
|
# mandatoryFeatures = [ ];
|
|
# maxJobs = 24;
|
|
# speedFactor = 0.5;
|
|
# # Keep the SSH session alive across many small builds in one daemon
|
|
# # session — compile-heavy workloads spam the daemon with hundreds of
|
|
# # derivations and ControlMaster collapses those into one Windows hop.
|
|
# # NB: `nix.buildMachines` has no `sshOptions` attribute, so the
|
|
# # ControlMaster directive lives in the SSH matchBlock instead (see
|
|
# # modules/server/builder.nix).
|
|
# #
|
|
# # The OpenSSH alias for this host (matches the user's
|
|
# # ~/.ssh/config so known_hosts entries do not collide with the
|
|
# # Windows OpenSSH entry on 127.0.0.1/vetymae) is consumed only by
|
|
# # the SSH matchBlock below — not by `nix.buildMachines`, which has
|
|
# # no such attribute.
|
|
# hostKeyAlias = "wsl-nixos-on-vetymae";
|
|
# # Use the Windows host's IP directly so the nix-daemon (running as
|
|
# # root, without the user's ~/.ssh/config) does not need a separate
|
|
# # `vetymae` host alias. With StrictHostKeyChecking=accept-new the
|
|
# # first connection adds the Windows host key to /root/.ssh/known_hosts.
|
|
# proxyCommand = "ssh oqyude@192.168.1.100 'wsl -d NixOS -- nc 127.0.0.1 22'";
|
|
# }
|
|
# ];
|
|
|
|
networking = {
|
|
networkmanager.enable = true;
|
|
firewall.enable = false;
|
|
# nameservers = [
|
|
# "192.168.1.1"
|
|
# "127.0.0.1"
|
|
# ];
|
|
};
|
|
|
|
system = {
|
|
stateVersion = "25.05";
|
|
};
|
|
}
|