feat: new host homeserver

This commit is contained in:
Iain Learmonth 2025-06-10 21:45:02 +01:00
parent 0c28afc6c5
commit f2712b4822
4 changed files with 134 additions and 1 deletions

37
flake.lock generated
View file

@ -1,5 +1,41 @@
{
"nodes": {
"apple-silicon": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1748659443,
"narHash": "sha256-dav2hzyCmXZ3n6lEZrfZBG51+g6PUhkzRl3d6Ypd9x0=",
"owner": "tpwrules",
"repo": "nixos-apple-silicon",
"rev": "3ddc251d2acce5019b0fa770e224d068610a34e4",
"type": "github"
},
"original": {
"owner": "tpwrules",
"repo": "nixos-apple-silicon",
"type": "github"
}
},
"flake-compat": {
"locked": {
"lastModified": 1688025799,
"narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=",
"owner": "nix-community",
"repo": "flake-compat",
"rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@ -98,6 +134,7 @@
},
"root": {
"inputs": {
"apple-silicon": "apple-silicon",
"flake-utils": "flake-utils",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",

View file

@ -3,6 +3,10 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs";
apple-silicon = {
url = "github:tpwrules/nixos-apple-silicon";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils.url = "github:numtide/flake-utils";
home-manager = {
url = "github:nix-community/home-manager";
@ -16,11 +20,12 @@
outputs =
{
nixpkgs,
apple-silicon,
flake-utils,
home-manager,
nur,
...
}:
}@inputs:
let
supportedSystems = [
"x86_64-linux"
@ -29,6 +34,7 @@
];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
overlays = [
apple-silicon.overlays.apple-silicon-overlay
nur.overlays.default
];
in
@ -42,6 +48,16 @@
./nixos/hosts/laptop/hardware-configuration.nix
];
};
homeserver = nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
modules = [
./nixos/common.nix
./nixos/hosts/homeserver/default.nix
./nixos/hosts/homeserver/hardware-configuration.nix
apple-silicon.nixosModules.apple-silicon-support
];
specialArgs = inputs;
};
};
homeConfigurations = nixpkgs.lib.foldl' (
acc: system:

View file

@ -0,0 +1,29 @@
{
config,
lib,
pkgs,
apple-silicon,
...
}:
{
nixpkgs.overlays = [ apple-silicon.overlays.apple-silicon-overlay ];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = false;
hardware.asahi.useExperimentalGPUDriver = true;
hardware.asahi.extractPeripheralFirmware = true;
networking.hostName = "homeserver";
networking.networkmanager.enable = true;
services.xserver.xkb.layout = "us";
services.openssh.enable = true;
networking.firewall.allowedTCPPorts = [ 22 ];
networking.firewall.allowedUDPPorts = [ ];
system.stateVersion = "25.11";
}

View file

@ -0,0 +1,51 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"usb_storage"
"usbhid"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/d82c7bbb-e496-414c-a96b-4b4ca457bdfd";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/3B58-1BF7";
fsType = "vfat";
options = [
"fmask=0022"
"dmask=0022"
];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.end0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
}