feat: migrate home-server to LattePanda 3 Delta
This commit is contained in:
parent
9fbea3db5c
commit
9693e762df
|
@ -142,12 +142,11 @@
|
|||
};
|
||||
|
||||
nixosConfigurations.home-server = nixpkgs.lib.nixosSystem {
|
||||
system = "aarch64-linux";
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
nixpkgs.nixosModules.notDetected
|
||||
nixos-hardware.nixosModules.raspberry-pi-4
|
||||
(lib.createSystem "home-server" {
|
||||
hardwareConfig = ./hardware/rpi4.nix;
|
||||
hardwareConfig = ./hardware/lattepanda.nix;
|
||||
config = ./home-server.nix;
|
||||
})
|
||||
lib.createMediaGroup
|
||||
|
@ -168,7 +167,7 @@
|
|||
hostname = "192.168.1.102";
|
||||
profiles.system = {
|
||||
user = "felschr";
|
||||
path = deploy-rs.lib.aarch64-linux.activate.nixos
|
||||
path = deploy-rs.lib.x86_64-linux.activate.nixos
|
||||
self.nixosConfigurations.home-server;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -10,10 +10,4 @@
|
|||
|
||||
services.smartd.enable = true;
|
||||
services.smartd.notifications.x11.enable = true;
|
||||
|
||||
# Bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.settings = {
|
||||
General = { Enable = "Source,Sink,Media,Socket"; };
|
||||
};
|
||||
}
|
||||
|
|
8
hardware/bluetooth.nix
Normal file
8
hardware/bluetooth.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.settings = {
|
||||
General = { Enable = "Source,Sink,Media,Socket"; };
|
||||
};
|
||||
}
|
|
@ -1,13 +1,22 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
hardware.opengl = {
|
||||
driSupport32Bit = true;
|
||||
extraPackages = with pkgs; [ vaapiIntel vaapiVdpau libvdpau-va-gl ];
|
||||
extraPackages32 = with pkgs.pkgsi686Linux; [
|
||||
vaapiIntel
|
||||
libvdpau-va-gl
|
||||
vaapiVdpau
|
||||
];
|
||||
boot.initrd.kernelModules = [ "i915" ];
|
||||
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
||||
};
|
||||
|
||||
environment.variables = {
|
||||
VDPAU_DRIVER =
|
||||
lib.mkIf config.hardware.opengl.enable (lib.mkDefault "va_gl");
|
||||
};
|
||||
|
||||
hardware.opengl.extraPackages = with pkgs; [
|
||||
vaapiIntel
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
intel-media-driver
|
||||
intel-compute-runtime
|
||||
];
|
||||
}
|
||||
|
|
69
hardware/lattepanda.nix
Normal file
69
hardware/lattepanda.nix
Normal file
|
@ -0,0 +1,69 @@
|
|||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"nvme"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
"sdhci_pci"
|
||||
"rtsx_usb_sdmmc"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/70f03d67-e248-42f6-a204-c02e4f180531";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@" "compress-force=zstd:1" "noatime" ];
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."enc".device =
|
||||
"/dev/disk/by-uuid/d3b12d0e-7e8e-4130-9a8f-680abcdc9682";
|
||||
|
||||
fileSystems."/home" = {
|
||||
device = "/dev/disk/by-uuid/70f03d67-e248-42f6-a204-c02e4f180531";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@home" "compress-force=zstd:1" "noatime" ];
|
||||
};
|
||||
|
||||
fileSystems."/.swap" = {
|
||||
device = "/dev/disk/by-uuid/70f03d67-e248-42f6-a204-c02e4f180531";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@swap" "nodatacow" "noatime" ];
|
||||
neededForBoot = true;
|
||||
};
|
||||
|
||||
fileSystems."/.snapshots" = {
|
||||
device = "/dev/disk/by-uuid/70f03d67-e248-42f6-a204-c02e4f180531";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@snapshots" "compress-force=zstd:1" "noatime" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/95FC-D4E5";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [{
|
||||
device = "/.swap/swapfile";
|
||||
size = 8096;
|
||||
}];
|
||||
|
||||
# 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.enp2s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
hardware.cpu.intel.updateMicrocode =
|
||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
# high-resolution display
|
||||
hardware.video.hidpi.enable = lib.mkDefault true;
|
||||
}
|
|
@ -4,6 +4,7 @@
|
|||
imports = [
|
||||
./hardware/base.nix
|
||||
./hardware/gpu-amd.nix
|
||||
./hardware/bluetooth.nix
|
||||
./hardware/steam.nix
|
||||
./hardware/ledger.nix
|
||||
./system/desktop.nix
|
||||
|
|
|
@ -10,8 +10,8 @@ let
|
|||
}];
|
||||
in with builtins; {
|
||||
imports = [
|
||||
# ./hardware/base.nix
|
||||
./hardware/gpu-rpi4.nix
|
||||
./hardware/base.nix
|
||||
./hardware/gpu-intel.nix
|
||||
./system/server.nix
|
||||
./modules/emailNotify.nix
|
||||
./services/mail.nix
|
||||
|
@ -34,16 +34,6 @@ in with builtins; {
|
|||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.generic-extlinux-compatible.enable = false;
|
||||
# boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.tmpOnTmpfs = true;
|
||||
|
||||
# rpi4 base config
|
||||
boot.kernelPackages = pkgs.linuxPackages_rpi4;
|
||||
boot.kernelParams =
|
||||
[ "8250.nr_uarts=1" "console=ttyAMA0,115200" "console=tty1" "cma=128" ];
|
||||
|
||||
# improve memory performance
|
||||
zramSwap.enable = true;
|
||||
zramSwap.algorithm = "zstd";
|
||||
|
@ -101,7 +91,7 @@ in with builtins; {
|
|||
extraConfig = with pkgs; ''
|
||||
usev6=cmdv6, cmdv6=${
|
||||
pkgs.writeScript "get-ipv6" ''
|
||||
${iproute2}/bin/ip --brief addr show eth0 mngtmpaddr \
|
||||
${iproute2}/bin/ip --brief addr show enp2s0 mngtmpaddr \
|
||||
| ${gawk}/bin/awk '{print $(NF)}' \
|
||||
| sed 's/\/.*//'
|
||||
''
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.jellyfin.enable = true;
|
||||
|
@ -6,7 +6,12 @@
|
|||
services.jellyfin.openFirewall = true;
|
||||
|
||||
# for hardware acceleration
|
||||
users.users.jellyfin.extraGroups = [ "video" "render" ];
|
||||
users.users.${config.services.jellyfin.user}.extraGroups =
|
||||
[ "video" "render" ];
|
||||
systemd.services.jellyfin.serviceConfig = {
|
||||
PrivateDevices = lib.mkForce false;
|
||||
DeviceAllow = lib.mkForce [ "/dev/dri/renderD128" ];
|
||||
};
|
||||
|
||||
services.nginx = {
|
||||
virtualHosts."media.felschr.com" = {
|
||||
|
|
|
@ -12,9 +12,7 @@ in {
|
|||
|
||||
virtualisation.oci-containers.containers = {
|
||||
owntracks-recorder = {
|
||||
# official image does not support aarch64
|
||||
# image = "owntracks/recorder";
|
||||
image = "easypi/ot-recorder-arm";
|
||||
image = "owntracks/recorder";
|
||||
ports = [ "8083:8083" ];
|
||||
environment = {
|
||||
OTR_HOST = "localhost";
|
||||
|
@ -23,11 +21,7 @@ in {
|
|||
};
|
||||
# provide OTR_PASS
|
||||
environmentFiles = [ config.age.secrets.owntracks-recorder-env.path ];
|
||||
# easypi/ot-recorder-arm uses different store location
|
||||
# volumes = [ "/var/lib/owntracks/recorder/store:/store" ];
|
||||
volumes = [
|
||||
"/var/lib/owntracks/recorder/store:/var/spool/owntracks/recorder/store"
|
||||
];
|
||||
volumes = [ "/var/lib/owntracks/recorder/store:/store" ];
|
||||
extraOptions = [ "--network=host" ];
|
||||
};
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
imports = [
|
||||
./hardware/base.nix
|
||||
./hardware/gpu-intel.nix
|
||||
./hardware/bluetooth.nix
|
||||
./system
|
||||
./desktop
|
||||
./virtualisation/docker.nix
|
||||
|
|
Loading…
Reference in a new issue