diff --git a/common.nix b/common.nix index 5091582..e37a063 100644 --- a/common.nix +++ b/common.nix @@ -13,11 +13,16 @@ "/boot" = { options = [ "noatime" ]; }; }; swapDevices = [ { device = "/var/swapfile"; } ]; - boot.loader.limine = { - enable = true; - maxGenerations = 20; - secureBoot.enable = true; - panicOnChecksumMismatch = true; + boot = { + kernelModules = [ "amneziawg" ]; + kernelPackages = pkgs.linuxPackages_latest; + extraModulePackages = [ config.boot.kernelPackages.amneziawg ]; + loader.limine = { + enable = true; + maxGenerations = 20; + secureBoot.enable = true; + panicOnChecksumMismatch = true; + }; }; users.users = { root = { @@ -33,24 +38,25 @@ }; networking = { nftables.enable = true; - #networking.wg-quick.interfaces.awg0 = { - #type = "amneziawg"; - #configFile = "/root/secrets/awg0.conf"; - #}; + wg-quick.interfaces.awg0 = { + type = "amneziawg"; + configFile = "/root/secrets/awg0.conf"; + }; networkmanager = { enable = true; - ensureProfiles.profiles.home-wifi = { - wifi-security.key-mgmt = "sae"; - connection = { - id = "home-wifi"; - type = "wifi"; + ensureProfiles = { + environmentFiles = [ "/root/secrets/wifi.env" ]; + profiles.home-wifi = { + wifi-security.key-mgmt = "sae"; + connection = { + id = "home-wifi"; + type = "wifi"; + }; }; }; }; }; environment.systemPackages = with pkgs; [ - amneziawg-go - amneziawg-tools sbctl ]; services = { diff --git a/desktop/configuration.nix b/desktop/configuration.nix new file mode 100644 index 0000000..3978190 --- /dev/null +++ b/desktop/configuration.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: +{ + imports = [ ../common.nix ./hardware-configuration.nix ]; + networking = { + hostName = "nixos-desktop"; + }; +} diff --git a/server/flake.lock b/flake.lock similarity index 65% rename from server/flake.lock rename to flake.lock index 0a16ff3..8dae76d 100644 --- a/server/flake.lock +++ b/flake.lock @@ -7,32 +7,31 @@ ] }, "locked": { - "lastModified": 1789267039, - "narHash": "sha256-LWiBv9yAYFi2LPbUhDGHPGKYskJQjj2fw12OlyO1uQo=", + "lastModified": 1789618856, + "narHash": "sha256-OSqj7eOijvCZfN7owFWRxLWRhej5lZI+Kt82q3INLvc=", "owner": "nix-community", "repo": "home-manager", - "rev": "ec172013fa62135f58fb58dd17ae9651e8f39727", + "rev": "afa6821c70560bb19d1a8c577bff398f7f239869", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-26.05", "repo": "home-manager", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1789459628, - "narHash": "sha256-JOaadoI/IC9qEvwlnjwAhwdcWkCDqEeOJ+cOtUH/8RQ=", + "lastModified": 1789546076, + "narHash": "sha256-zVxLZiSnmaaPLwnhj7pwmqe3axBg/C6nG5JZsJMh2g4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b67c7a60c3732edd4b947a7df8af06215851a614", + "rev": "b1b875982b17dabde9b4a37f3e229e74913e6db3", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-26.05", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..23981a6 --- /dev/null +++ b/flake.nix @@ -0,0 +1,37 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + outputs = inputs@{ self, nixpkgs, home-manager, ... }: { + nixosConfigurations = { + nixos-server = nixpkgs.lib.nixosSystem { + modules = [ + ./server/configuration.nix + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.users.root = ./home/server/root.nix; + home-manager.users.bogale = ./home/server/bogale.nix; + } + ]; + }; + nixos-desktop = nixpkgs.lib.nixosSystem { + modules = [ + ./desktop/configuration.nix + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.users.root = ./home/desktop/root.nix; + home-manager.users.bogale = ./home/desktop/bogale.nix; + } + ]; + }; + }; + }; +} diff --git a/home/desktop/bogale.nix b/home/desktop/bogale.nix new file mode 100644 index 0000000..bcb97f6 --- /dev/null +++ b/home/desktop/bogale.nix @@ -0,0 +1,4 @@ +{ config, pkgs, ... }: +{ + imports = [ ./common.nix ../bogale.nix ]; +} diff --git a/home/desktop/common.nix b/home/desktop/common.nix new file mode 100644 index 0000000..c6d00b0 --- /dev/null +++ b/home/desktop/common.nix @@ -0,0 +1,7 @@ +{ config, pkgs, ... }: +{ + programs.tmux.extraConfig = '' + set -g prefix M-f + bind f send-prefix + ''; +} diff --git a/home/desktop/root.nix b/home/desktop/root.nix new file mode 100644 index 0000000..8d670fa --- /dev/null +++ b/home/desktop/root.nix @@ -0,0 +1,4 @@ +{ config, pkgs, ... }: +{ + imports = [ ./common.nix ../root.nix ]; +} diff --git a/home/server/root.nix b/home/server/root.nix index 517ada8..8d670fa 100644 --- a/home/server/root.nix +++ b/home/server/root.nix @@ -1,7 +1,4 @@ { config, pkgs, ... }: { imports = [ ./common.nix ../root.nix ]; - programs.bash = { - shellAliases = { "nixos-rebuild" = "nixos-rebuild --impure --flake /etc/nixos/server#nixos-server"; }; - }; } diff --git a/server/configuration.nix b/server/configuration.nix index bbe3a86..9b5efd1 100644 --- a/server/configuration.nix +++ b/server/configuration.nix @@ -9,7 +9,7 @@ hostName = "nixos-server"; networkmanager.ensureProfiles.profiles.home-wifi = { wifi.ssid = "bogale_2.4"; - wifi-security.psk = builtins.readFile "/root/secrets/home-wifi.psk"; + wifi-security.psk = "$BOGALE_2_4_PSK"; }; firewall = { allowedTCPPorts = [ 80 ]; @@ -18,9 +18,6 @@ ''; }; }; - #environment.systemPackages = with pkgs; [ - #php - #]; services = { postgresql.enable = true; openssh = { @@ -56,26 +53,26 @@ ''; }; }; - vaultwarden = { - enable = true; - configureNginx = true; - dbBackend = "postgresql"; - configurePostgres = true; - package = pkgs.vaultwarden-postgresql; - domain = "https://wg.bogaledev.ru/vault"; - environmentFile = "/root/secrets/vaultwarden.env"; - config = { - EMAIL_TOKEN_SIZE = 8; - SMTP_SECURITY = "off"; - SMTP_HOST = "localhost"; - SIGNUPS_ALLOWED = false; - REQUIRE_DEVICE_EMAIL = true; - TRASH_AUTO_DELETE_DAYS = 90; - ROCKET_ADDRESS = "127.0.0.1"; - PASSWORD_HINTS_ALLOWED = false; - EMERGENCY_ACCESS_ALLOWED = false; - SMTP_FROM = "vaultwarden@bogaledev.ru"; - }; - }; + #vaultwarden = { + #enable = true; + #configureNginx = true; + #dbBackend = "postgresql"; + #configurePostgres = true; + #package = pkgs.vaultwarden-postgresql; + #domain = "https://wg.bogaledev.ru/vault"; + #environmentFile = "/root/secrets/vaultwarden.env"; + #config = { + #EMAIL_TOKEN_SIZE = 8; + #SMTP_SECURITY = "off"; + #SMTP_HOST = "localhost"; + #SIGNUPS_ALLOWED = false; + #REQUIRE_DEVICE_EMAIL = true; + #TRASH_AUTO_DELETE_DAYS = 90; + #ROCKET_ADDRESS = "127.0.0.1"; + #PASSWORD_HINTS_ALLOWED = false; + #EMERGENCY_ACCESS_ALLOWED = false; + #SMTP_FROM = "vaultwarden@bogaledev.ru"; + #}; + #}; }; } diff --git a/server/flake.nix b/server/flake.nix deleted file mode 100644 index 8cd93c6..0000000 --- a/server/flake.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05"; - home-manager = { - url = "github:nix-community/home-manager/release-26.05"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - }; - outputs = inputs@{ self, nixpkgs, home-manager, ... }: { - nixosConfigurations.nixos-server = nixpkgs.lib.nixosSystem { - modules = [ - ./configuration.nix - home-manager.nixosModules.home-manager { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { inherit inputs; }; - home-manager.users.root = ../home/server/root.nix; - home-manager.users.bogale = ../home/server/bogale.nix; - } - ]; - }; - }; -}