diff --git a/common/default.nix b/common/default.nix index f8638ea..838bb20 100644 --- a/common/default.nix +++ b/common/default.nix @@ -1,7 +1,7 @@ { lib, pkgs, ... }: { - boot.kernelPackages = lib.mkOverride 2000 pkgs.linuxPackages_latest; + boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; boot.kernelParams = [ "quiet" ]; services.openssh.enable = true; @@ -49,13 +49,5 @@ ll = "exa -l"; la = "exa -la"; tree = "exa -T"; - apt = "echo 'please use nix-env -iA nixos. instead to install packages.'"; - }; - - users.mutableUsers = false; - users.users.c3h = { - isNormalUser = true; - password = "c3h"; - extraGroups = [ "wheel" ]; }; } diff --git a/deploy.sh b/deploy.sh index 065eb2b..f425fce 100755 --- a/deploy.sh +++ b/deploy.sh @@ -12,25 +12,15 @@ fi mode="${1:-switch}" host="${2:-nuc}" -target="${3:-c3h@$host.c3h}" - -if ! [ -d "hosts/$host" ] -then - echo "Host $host does not exist. Choose from:" - ls hosts - exit -fi +target="${3:-$host.c3h}" echo "deploying $host to $target" sleep 1 -tmp=$(mktemp -d) -trap 'rm -rf "$tmp"' EXIT -sources="$tmp/sources" -cp -r $(nix-build nix/sources-dir.nix --no-out-link) $tmp/sources +sources=$(nix-build nix/sources-dir.nix --no-out-link) set -x -system_drv=$(nix-instantiate "" -A config.system.build.toplevel -I $sources -I "nixos-config=$PWD/hosts/$host/configuration.nix") +system_drv=$(nix-instantiate "" -I $sources -I "nixos-config=$PWD/hosts/$host/configuration.nix" | head -n1) nix-copy-closure --to $target $system_drv system=$(ssh $target "nix-store --realise $system_drv") ssh $target "sudo nix-env -p /nix/var/nix/profiles/system -i $system && sudo /nix/var/nix/profiles/system/bin/switch-to-configuration $mode" diff --git a/hosts/bemmer/configuration.nix b/hosts/bemmer/configuration.nix index e7d0951..62b02f7 100644 --- a/hosts/bemmer/configuration.nix +++ b/hosts/bemmer/configuration.nix @@ -8,7 +8,7 @@ # services ../../shared-services/pulseaudio.nix - ../../shared-services/nfs-client.nix + #../../shared-services/nfs-server.nix ../../shared-services/mpd.nix ../../shared-services/ympd.nix ../../shared-services/spotifyd.nix @@ -16,21 +16,28 @@ ../../shared-services/vnc.nix ../../shared-services/webserver.nix ]; - - # We import sd-image-aarch64.nix so we can build a config.system.build.sdImage - # But it imports some modules we don't want, so disable them - disabledModules = [ - "profiles/base.nix" - "profiles/all-hardware.nix" - ]; + users.users.c3h = { + isNormalUser = true; + password = "c3h"; + extraGroups = [ "wheel" ]; + packages = with pkgs; [ chromium firefox mpv youtube-dl ]; + }; networking.hostName = "bemmer"; networking.domain = "c3h"; + networking.useDHCP = true; nixpkgs.system = "aarch64-linux"; - hardware.raspberry-pi."4".fkms-3d.enable = true; - boot.tmpOnTmpfs = true; # building stuff on sd-card is slow + boot.initrd.availableKernelModules = lib.mkForce [ "vc4" "i2c_bcm2835" ]; + boot.supportedFilesystems = lib.mkForce [ "ext4" "vfat" ]; + boot.kernelPackages = pkgs.linuxPackages_rpi4; + documentation.enable = false; + + hardware.raspberry-pi."4" = { + fkms-3d.enable = true; + #audio.enable = true; + }; system.stateVersion = "21.05"; } diff --git a/hosts/nuc/configuration.nix b/hosts/nuc/configuration.nix index 56cea2e..47fc3ef 100644 --- a/hosts/nuc/configuration.nix +++ b/hosts/nuc/configuration.nix @@ -8,7 +8,7 @@ # services ../../shared-services/pulseaudio.nix - ../../shared-services/nfs-client.nix + ../../shared-services/nfs-server.nix ../../shared-services/mpd.nix ../../shared-services/ympd.nix ../../shared-services/spotifyd.nix diff --git a/hosts/nuc/hardware-configuration.nix b/hosts/nuc/hardware-configuration.nix index 4355e9e..ef0e54b 100644 --- a/hosts/nuc/hardware-configuration.nix +++ b/hosts/nuc/hardware-configuration.nix @@ -23,7 +23,7 @@ fsType = "vfat"; }; - fileSystems."/mnt/hdd" = + fileSystems."/mnt" = { device = "/dev/disk/by-uuid/ff18a6f9-ee3b-452c-8671-38b74508a74c"; fsType = "btrfs"; }; diff --git a/shared-services/desktop.nix b/shared-services/desktop.nix index 7bb36d0..f11fb04 100644 --- a/shared-services/desktop.nix +++ b/shared-services/desktop.nix @@ -1,17 +1,13 @@ { pkgs, ... }: { - users.users.c3h.packages = with pkgs; [ - chromium - firefox - mpv - youtube-dl - pavucontrol - dosbox - vlc - ffmpeg-full - sox - ]; + users.mutableUsers = false; + users.users.c3h = { + isNormalUser = true; + password = "c3h"; + extraGroups = [ "wheel" ]; + packages = with pkgs; [ chromium firefox mpv youtube-dl ]; + }; services.xserver = { enable = true; diff --git a/shared-services/nfs-client.nix b/shared-services/nfs-client.nix deleted file mode 100644 index 1659449..0000000 --- a/shared-services/nfs-client.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: - -{ - boot.supportedFilesystems = [ "nfs" ]; - fileSystems."/mnt/Music" = { - device = "10.23.42.126:/music"; - fsType = "nfs"; - options = [ - "nfsvers=4.1" - "noauto" - "x-systemd.automount" - "x-systemd.idle-timeout=600" - ]; - }; -} diff --git a/shared-services/nfs-server.nix b/shared-services/nfs-server.nix new file mode 100644 index 0000000..8a6f8ca --- /dev/null +++ b/shared-services/nfs-server.nix @@ -0,0 +1,17 @@ +{ ... }: + +{ + services.nfs.server = { + enable = true; + exports = '' + /mnt 10.23.42.0/24(rw,fsid=0,insecure,no_subtree_check) + ''; + + statdPort = 4000; + lockdPort = 4001; + mountdPort = 4002; + }; + + networking.firewall.interfaces.enp3s0.allowedTCPPorts = [ 2049 4000 4001 4002 111 ]; + networking.firewall.interfaces.enp3s0.allowedUDPPorts = [ 2049 4000 4001 4002 111 ]; +} diff --git a/shared-services/spotifyd.nix b/shared-services/spotifyd.nix index 1988632..7cf79ce 100644 --- a/shared-services/spotifyd.nix +++ b/shared-services/spotifyd.nix @@ -1,10 +1,12 @@ -{ config, ... }: +{ ... }: { services.spotifyd = { enable = true; - settings.zeroconf_port = 18572; + config = '' + zeroconf_port = 18572 + ''; }; - networking.firewall.allowedTCPPorts = [ config.services.spotifyd.settings.zeroconf_port ]; + networking.firewall.allowedTCPPorts = [ 18572 ]; }