diff --git a/hosts/thebeast.nix b/hosts/thebeast.nix deleted file mode 100644 index 27d0417..0000000 --- a/hosts/thebeast.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ lib, pkgs, config, modulesPath, ... }: - -with lib; -let - defaultUser = "srid"; - syschdemd = import ./thebeast/syschdemd.nix { inherit lib pkgs config defaultUser; }; -in -{ - imports = [ - "${modulesPath}/profiles/minimal.nix" - ]; - - # WSL is closer to a container than anything else - boot.isContainer = true; - - environment.etc.hosts.enable = false; - environment.etc."resolv.conf".enable = false; - - networking.hostName = "thebeast"; - networking.dhcpcd.enable = false; - - users.users.${defaultUser} = { - isNormalUser = true; - extraGroups = [ "wheel" ]; - }; - - users.users.root = { - shell = "${syschdemd}/bin/syschdemd"; - # Otherwise WSL fails to login as root with "initgroups failed 5" - extraGroups = [ "root" ]; - }; - - nix = { - package = pkgs.nixUnstable; - extraOptions = '' - experimental-features = nix-command flakes - ''; - }; - - # https://github.com/NixOS/nixpkgs/issues/124753#issuecomment-851618324 - nixpkgs.overlays = - let pinentry_only_curses = self: super: { - pinentry = super.pinentry.override { - enabledFlavors = [ "curses" ]; - }; - }; - in - [ - pinentry_only_curses - ]; - - security.sudo.wheelNeedsPassword = false; - - services.openssh.enable = true; - services = { - syncthing = { - enable = true; - user = "srid"; - dataDir = "/home/srid"; - }; - }; - - - # Disable systemd units that don't make sense on WSL - systemd.services."serial-getty@ttyS0".enable = false; - systemd.services."serial-getty@hvc0".enable = false; - systemd.services."getty@tty1".enable = false; - systemd.services."autovt@".enable = false; - - systemd.services.firewall.enable = false; - systemd.services.systemd-resolved.enable = false; - systemd.services.systemd-udevd.enable = false; - - # Don't allow emergency mode, because we don't have a console. - systemd.enableEmergencyMode = false; -} diff --git a/hosts/thebeast/syschdemd.nix b/hosts/thebeast/syschdemd.nix deleted file mode 100644 index 29b7817..0000000 --- a/hosts/thebeast/syschdemd.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ lib, pkgs, config, defaultUser, ... }: - -pkgs.substituteAll { - name = "syschdemd"; - src = ./syschdemd.sh; - dir = "bin"; - isExecutable = true; - - buildInputs = with pkgs; [ daemonize ]; - - inherit (pkgs) daemonize; - inherit defaultUser; - inherit (config.security) wrapperDir; - fsPackagesPath = lib.makeBinPath config.system.fsPackages; -} diff --git a/hosts/thebeast/syschdemd.sh b/hosts/thebeast/syschdemd.sh deleted file mode 100644 index bf94dda..0000000 --- a/hosts/thebeast/syschdemd.sh +++ /dev/null @@ -1,26 +0,0 @@ -#! @shell@ - -set -e - -sw="/nix/var/nix/profiles/system/sw/bin" -systemPath=`${sw}/readlink -f /nix/var/nix/profiles/system` - -# Needs root to work -if [[ $EUID -ne 0 ]]; then - echo "[ERROR] Requires root! :( Make sure the WSL default user is set to root" - exit 1 -fi - -if [ ! -e "/run/current-system" ]; then - /nix/var/nix/profiles/system/activate -fi - -if [ ! -e "/run/systemd.pid" ]; then - PATH=/run/current-system/systemd/lib/systemd:@fsPackagesPath@ \ - LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive \ - @daemonize@/bin/daemonize /run/current-system/sw/bin/unshare -fp --mount-proc systemd - /run/current-system/sw/bin/pgrep -xf systemd > /run/systemd.pid -fi - -userShell=$($sw/getent passwd @defaultUser@ | $sw/cut -d: -f7) -exec $sw/nsenter -t $(< /run/systemd.pid) -p -m --wd="$PWD" -- @wrapperDir@/su -s $userShell @defaultUser@ "$@"