From b3f9a791ba4c6f4f174caa62eda6271b34b52a44 Mon Sep 17 00:00:00 2001 From: baduhai Date: Tue, 29 Nov 2022 22:16:01 -0300 Subject: [PATCH] Restructured alexandria --- flake.nix | 35 ++++++++-- hosts/common/nix.nix | 1 + hosts/servers/alexandria.nix | 34 ++++++++++ hosts/servers/alexandria/configuration.nix | 79 ---------------------- hosts/servers/alexandria/packages.nix | 19 ------ hosts/servers/alexandria/users.nix | 14 ---- users/desktops/common/home.nix | 2 +- users/servers/user.nix | 10 ++- 8 files changed, 76 insertions(+), 118 deletions(-) create mode 100644 hosts/servers/alexandria.nix delete mode 100644 hosts/servers/alexandria/configuration.nix delete mode 100644 hosts/servers/alexandria/packages.nix delete mode 100644 hosts/servers/alexandria/users.nix diff --git a/flake.nix b/flake.nix index c62b449..868f0e2 100644 --- a/flake.nix +++ b/flake.nix @@ -22,9 +22,14 @@ url = "github:nix-community/home-manager/release-22.05"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; + + deploy-rs = { + url = "github:serokell/deploy-rs"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = inputs @ { nixpkgs, home-manager, nur, kmonad, nixpkgs-stable, home-manager-stable, ... }: { + outputs = inputs @ { nixpkgs, home-manager, nur, kmonad, nixpkgs-stable, home-manager-stable, deploy-rs, ... }: { nixosConfigurations = { io = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; @@ -32,8 +37,10 @@ modules = [ ./hosts/desktops/io.nix kmonad.nixosModules.default - { nixpkgs.overlays = [ nur.overlay ]; } home-manager.nixosModules.home-manager + { + nixpkgs.overlays = [ nur.overlay ]; + } { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; @@ -45,11 +52,31 @@ alexandria = nixpkgs-stable.lib.nixosSystem { system = "x86_64-linux"; modules = [ - ./hosts/servers/alexandria/configuration.nix - ( {...}: { nix.registry.nixpkgs.flake = nixpkgs-stable; } ) + ./hosts/servers/alexandria.nix home-manager-stable.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.user = import ./users/servers/user.nix; + } ]; }; }; + + deploy = { + autoRollback = false; + magicRollback = false; + user = "root"; + sshUser = "root"; + nodes = { + "alexandria" = { + hostname = "alexandria"; + profiles.system = { + remoteBuild = true; + path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.alexandria; + }; + }; + }; + }; }; } diff --git a/hosts/common/nix.nix b/hosts/common/nix.nix index 23e286c..ca7454f 100644 --- a/hosts/common/nix.nix +++ b/hosts/common/nix.nix @@ -2,6 +2,7 @@ { nix = { + settings.auto-optimise-store = true; extraOptions = "experimental-features = nix-command flakes"; gc = { # Garbage collector automatic = true; diff --git a/hosts/servers/alexandria.nix b/hosts/servers/alexandria.nix new file mode 100644 index 0000000..6fde555 --- /dev/null +++ b/hosts/servers/alexandria.nix @@ -0,0 +1,34 @@ +{ config, pkgs, lib, ...}: + +{ + imports = [ + # Host-specific imports + .alexandria/hardware-configuration.nix + .alexandria/hosted-services.nix + # Host-common imports + ../common/networking.nix + ../common/packages.nix + ../common/services.nix + ../common/locale.nix + ../common/users.nix + ../common/boot.nix + ../common/nix.nix + ]; + + users.users.user.extraGroups = [ "docker" ]; + + swapDevices = [ { device = "/swapfile"; size = 8192; } ]; + + boot.kernelPackages = pkgs.linuxPackages_hardened; + + networking = { + hostName = "alexandria"; + firewall = { + allowedTCPPorts = [ + 80 + 443 + 9666 + ]; + }; + }; +} diff --git a/hosts/servers/alexandria/configuration.nix b/hosts/servers/alexandria/configuration.nix deleted file mode 100644 index 7e8a5ec..0000000 --- a/hosts/servers/alexandria/configuration.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ config, pkgs, lib, ...}: - -{ - imports = [ - # Host-specific imports - ./hardware-configuration.nix - ./hosted-services.nix - ./packages.nix - ./users.nix - - - ]; - - swapDevices = [ { device = "/swapfile"; size = 8192; } ]; - - boot = { - kernelPackages = pkgs.linuxPackages_hardened; - loader = { - timeout = 1; - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; - }; - }; - - networking = { - networkmanager.enable = true; - hostName = "alexandria"; - firewall = { - enable = true; - checkReversePath = "loose"; - allowedTCPPorts = [ - 80 - 443 - 9666 - ]; - }; - }; - - time.timeZone = "Europe/Berlin"; - i18n = { - defaultLocale = "en_US.UTF-8"; - extraLocaleSettings = { - LC_ADDRESS = "en_IE.UTF-8"; - LC_IDENTIFICATION = "en_IE.UTF-8"; - LC_MEASUREMENT = "en_IE.UTF-8"; - LC_MONETARY = "en_IE.UTF-8"; - LC_NAME = "en_IE.UTF-8"; - LC_NUMERIC = "en_IE.UTF-8"; - LC_PAPER = "en_IE.UTF-8"; - LC_TELEPHONE = "en_IE.UTF-8"; - LC_TIME = "en_IE.UTF-8"; - }; - }; - - services = { - openssh.enable = true; - tailscale.enable = true; - fstrim.enable = true; - }; - - nix = { - settings.auto-optimise-store = true; - extraOptions = "experimental-features = nix-command flakes"; - gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 8d"; - }; - }; - - system = { - stateVersion = "22.05"; - autoUpgrade = { - enable = true; - dates = "weekly"; - allowReboot = true; - }; - }; -} diff --git a/hosts/servers/alexandria/packages.nix b/hosts/servers/alexandria/packages.nix deleted file mode 100644 index 4579dfa..0000000 --- a/hosts/servers/alexandria/packages.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - nixpkgs.config = { - allowUnfree = true; - }; - - environment.systemPackages = with pkgs; [ - any-nix-shell - bind - btop - git - htop - lazydocker - micro - tmux - wget - ]; -} diff --git a/hosts/servers/alexandria/users.nix b/hosts/servers/alexandria/users.nix deleted file mode 100644 index cd50a27..0000000 --- a/hosts/servers/alexandria/users.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ config, pkgs, ... }: - -{ - users.users = { - user = { - isNormalUser = true; - extraGroups = [ "wheel" "networkmanager" "docker" ]; - shell = pkgs.fish; - openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA1v3+q3EaruiiStWjubEJWvtejam/r41uoOpCdwJtLL foxtrot@rotterdam" ]; - hashedPassword = ""; - }; - root.hashedPassword = "!"; - }; -} diff --git a/users/desktops/common/home.nix b/users/desktops/common/home.nix index 5a1dba8..eca482f 100644 --- a/users/desktops/common/home.nix +++ b/users/desktops/common/home.nix @@ -30,9 +30,9 @@ url = "https://raw.githubusercontent.com/baduhai/dotfiles/master/kitty/scroll_mark.py"; sha256 = "Abif6LIOCiXyDdQMZ4pQnLK++It0VYIM+WE7Oydwkfo="; }; + ".config/electron-flags.conf".text = "--ozone-platform-hint=auto"; # Autostart programs ".config/autostart/org.kde.yakuake.desktop".source = config.lib.file.mkOutOfStoreSymlink "/var/run/current-system/sw/share/applications/org.kde.yakuake.desktop"; - ".config/autostart/megasync.desktop".source = config.lib.file.mkOutOfStoreSymlink "/var/run/current-system/sw/share/applications/megasync.desktop"; ".config/autostart/koi.desktop".source = config.lib.file.mkOutOfStoreSymlink "/var/run/current-system/sw/share/applications/koi.desktop"; # Fix flatpak fonts, themes, icons and cursor ".icons/breeze_cursors".source = config.lib.file.mkOutOfStoreSymlink "/run/current-system/sw/share/icons/breeze_cursors"; diff --git a/users/servers/user.nix b/users/servers/user.nix index 8d1c8b6..ba79029 100644 --- a/users/servers/user.nix +++ b/users/servers/user.nix @@ -1 +1,9 @@ - + config, pkgs, lib, ... }: + +{ + imports = [ + # Host-common imports + ../common/programs.nix + ../common/home.nix + ]; +}