WIP: move nixos modules
This commit is contained in:
parent
d725c3b788
commit
2a5983344d
29 changed files with 65 additions and 115 deletions
154
flake.nix
154
flake.nix
|
|
@ -53,11 +53,7 @@
|
||||||
checks = {
|
checks = {
|
||||||
pre-commit-check = pre-commit-hooks.lib.${system}.run {
|
pre-commit-check = pre-commit-hooks.lib.${system}.run {
|
||||||
src = ./.;
|
src = ./.;
|
||||||
hooks = {
|
hooks = { deadnix.enable = true; nixpkgs-fmt.enable = true; statix.enable = true; };
|
||||||
deadnix.enable = true;
|
|
||||||
nixpkgs-fmt.enable = true;
|
|
||||||
statix.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -110,48 +106,31 @@
|
||||||
age.secrets.thor_wg_priv = { file = ./secrets/thor_wg_priv.age; };
|
age.secrets.thor_wg_priv = { file = ./secrets/thor_wg_priv.age; };
|
||||||
}
|
}
|
||||||
|
|
||||||
./nixos_modules/bertof_user.nix
|
./modules/nixos/users/bertof.nix
|
||||||
|
|
||||||
# Some defaults
|
# Some basic defaults
|
||||||
./nixos_modules/fwupd.nix
|
./modules/nixos/basics
|
||||||
./nixos_modules/fstrim.nix
|
|
||||||
./nixos_modules/btrfs-scrub.nix
|
|
||||||
./nixos_modules/distributed.nix
|
|
||||||
./nixos_modules/remote-deploy.nix
|
|
||||||
./nixos_modules/extended-registry.nix
|
|
||||||
./nixos_modules/automatic-garbage-collection.nix
|
|
||||||
./nixos_modules/automatic-upgrade.nix
|
|
||||||
./nixos_modules/zerotier.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
installerModules = [
|
installerModules = commonModules ++ [ ./modules/nixos/installer.nix ];
|
||||||
# Nix configuration
|
|
||||||
nix_configuration
|
|
||||||
|
|
||||||
./nixos_modules/bertof_user.nix
|
|
||||||
|
|
||||||
./nixos_modules/distributed.nix
|
|
||||||
./nixos_modules/remote-deploy.nix
|
|
||||||
./nixos_modules/extended-registry.nix
|
|
||||||
./nixos_modules/zerotier.nix
|
|
||||||
./nixos_modules/installer.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
thorConfig = {
|
thorConfig = {
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
thor = nixpkgs.lib.nixosSystem {
|
thor = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = commonModules ++ [
|
modules = commonModules ++ [
|
||||||
|
./modules/nixos/server
|
||||||
|
|
||||||
./thor/hardware-configuration.nix
|
./thor/hardware-configuration.nix
|
||||||
nixos-hardware.nixosModules.common-cpu-amd
|
nixos-hardware.nixosModules.common-cpu-amd
|
||||||
nixos-hardware.nixosModules.common-pc-ssd
|
nixos-hardware.nixosModules.common-pc-ssd
|
||||||
./thor/configuration.nix
|
./thor/configuration.nix
|
||||||
|
|
||||||
./nixos_modules/pro_audio.nix
|
./modules/nixos/pro_audio.nix
|
||||||
./nixos_modules/sesar.nix
|
./modules/nixos/sesar.nix
|
||||||
./nixos_modules/pentablet.nix
|
./modules/nixos/pentablet.nix
|
||||||
./nixos_modules/steam-link.nix
|
./modules/nixos/steam-link.nix
|
||||||
./nixos_modules/kdeconnect.nix
|
./modules/nixos/kdeconnect.nix
|
||||||
] ++ homeManagerModules ++ [
|
] ++ homeManagerModules ++ [
|
||||||
{ home-manager.users.bertof = import ./thor/hm.nix; }
|
{ home-manager.users.bertof = import ./thor/hm.nix; }
|
||||||
];
|
];
|
||||||
|
|
@ -163,18 +142,19 @@
|
||||||
nixosConfigurations =
|
nixosConfigurations =
|
||||||
let
|
let
|
||||||
odinCommonModules = [
|
odinCommonModules = [
|
||||||
|
./modules/nixos/laptop
|
||||||
|
|
||||||
nixos-hardware.nixosModules.common-cpu-intel
|
nixos-hardware.nixosModules.common-cpu-intel
|
||||||
nixos-hardware.nixosModules.common-pc-laptop
|
nixos-hardware.nixosModules.common-pc-laptop
|
||||||
nixos-hardware.nixosModules.common-pc-laptop-ssd
|
nixos-hardware.nixosModules.common-pc-laptop-ssd
|
||||||
./odin/hardware-configuration.nix
|
./odin/hardware-configuration.nix
|
||||||
./odin/common_configuration.nix
|
./odin/common_configuration.nix
|
||||||
|
|
||||||
./nixos_modules/pro_audio.nix
|
./modules/nixos/pro_audio.nix
|
||||||
./nixos_modules/sesar.nix
|
./modules/nixos/sesar.nix
|
||||||
./nixos_modules/pentablet.nix
|
./modules/nixos/pentablet.nix
|
||||||
./nixos_modules/steam-link.nix
|
./modules/nixos/steam-link.nix
|
||||||
./nixos_modules/kdeconnect.nix
|
./modules/nixos/kdeconnect.nix
|
||||||
./nixos_modules/garage.nix
|
|
||||||
] ++ homeManagerModules ++ [
|
] ++ homeManagerModules ++ [
|
||||||
{ home-manager.users.bertof = import ./odin/hm.nix; }
|
{ home-manager.users.bertof = import ./odin/hm.nix; }
|
||||||
];
|
];
|
||||||
|
|
@ -205,12 +185,13 @@
|
||||||
({ lib, ... }: {
|
({ lib, ... }: {
|
||||||
boot.supportedFilesystems = lib.mkForce [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "ntfs" "cifs" ];
|
boot.supportedFilesystems = lib.mkForce [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "ntfs" "cifs" ];
|
||||||
})
|
})
|
||||||
|
./modules/nixos/server
|
||||||
|
|
||||||
./freya/hardware-configuration.nix
|
./freya/hardware-configuration.nix
|
||||||
./freya/configuration.nix
|
./freya/configuration.nix
|
||||||
|
|
||||||
./nixos_modules/garage.nix
|
./modules/nixos/garage.nix
|
||||||
./nixos_modules/nextcloud.nix
|
./modules/nixos/nextcloud.nix
|
||||||
] ++ homeManagerModules ++ [
|
] ++ homeManagerModules ++ [
|
||||||
{ home-manager.users.bertof = import ./freya/hm.nix; }
|
{ home-manager.users.bertof = import ./freya/hm.nix; }
|
||||||
];
|
];
|
||||||
|
|
@ -223,11 +204,12 @@
|
||||||
baldur = nixpkgs.lib.nixosSystem {
|
baldur = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = commonModules ++ [
|
modules = commonModules ++ [
|
||||||
|
./modules/nixos/server
|
||||||
# ./baldur/hardware-configuration.nix
|
# ./baldur/hardware-configuration.nix
|
||||||
./baldur/configuration.nix
|
./baldur/configuration.nix
|
||||||
"${nixpkgs}/nixos/modules/virtualisation/digital-ocean-config.nix"
|
"${nixpkgs}/nixos/modules/virtualisation/digital-ocean-config.nix"
|
||||||
./nixos_modules/digitalocean.nix
|
./modules/nixos/digitalocean.nix
|
||||||
./nixos_modules/garage.nix
|
./modules/nixos/garage.nix
|
||||||
] ++ homeManagerModules ++ [
|
] ++ homeManagerModules ++ [
|
||||||
{ home-manager.users.bertof = import ./baldur/hm.nix; }
|
{ home-manager.users.bertof = import ./baldur/hm.nix; }
|
||||||
];
|
];
|
||||||
|
|
@ -240,6 +222,8 @@
|
||||||
loki = nixpkgs.lib.nixosSystem {
|
loki = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = commonModules ++ [
|
modules = commonModules ++ [
|
||||||
|
./modules/nixos/server
|
||||||
|
|
||||||
nixos-hardware.nixosModules.common-cpu-intel
|
nixos-hardware.nixosModules.common-cpu-intel
|
||||||
nixos-hardware.nixosModules.common-pc-ssd
|
nixos-hardware.nixosModules.common-pc-ssd
|
||||||
./loki/hardware-configuration.nix
|
./loki/hardware-configuration.nix
|
||||||
|
|
@ -264,78 +248,24 @@
|
||||||
|
|
||||||
# Map nodes to Deploy-rs deployments
|
# Map nodes to Deploy-rs deployments
|
||||||
deploy.nodes = {
|
deploy.nodes = {
|
||||||
thor = {
|
thor = { hostname = "thor.local"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.thor; }; };
|
||||||
hostname = "thor.local";
|
odin = { hostname = "odin.local"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.odin; }; };
|
||||||
profiles.system = {
|
loki = { hostname = "loki.local"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.loki; }; };
|
||||||
user = "root";
|
baldur = { hostname = "baldur.bertof.net"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.baldur; }; };
|
||||||
path = deploy-rs.lib.x86_64-linux.activate.nixos
|
freya = { hostname = "freya.local"; profiles.system = { user = "root"; path = deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.freya; }; };
|
||||||
self.nixosConfigurations.thor;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
odin = {
|
|
||||||
hostname = "odin.local";
|
|
||||||
profiles.system = {
|
|
||||||
user = "root";
|
|
||||||
path = deploy-rs.lib.x86_64-linux.activate.nixos
|
|
||||||
self.nixosConfigurations.odin;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
loki = {
|
|
||||||
hostname = "loki.local";
|
|
||||||
profiles.system = {
|
|
||||||
user = "root";
|
|
||||||
path = deploy-rs.lib.x86_64-linux.activate.nixos
|
|
||||||
self.nixosConfigurations.loki;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
baldur = {
|
|
||||||
hostname = "baldur.bertof.net";
|
|
||||||
profiles.system = {
|
|
||||||
user = "root";
|
|
||||||
path = deploy-rs.lib.x86_64-linux.activate.nixos
|
|
||||||
self.nixosConfigurations.baldur;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
freya = {
|
|
||||||
hostname = "freya.local";
|
|
||||||
profiles.system = {
|
|
||||||
user = "root";
|
|
||||||
path = deploy-rs.lib.aarch64-linux.activate.nixos
|
|
||||||
self.nixosConfigurations.freya;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
images = with flake-utils.lib;
|
images = with flake-utils.lib; eachSystem [ system.x86_64-linux system.aarch64-linux ] (system: {
|
||||||
eachSystem [ system.x86_64-linux system.aarch64-linux ] (system: {
|
packages = {
|
||||||
packages = {
|
# Installer ISO
|
||||||
# Installer ISO
|
install-iso = nixos-generators.nixosGenerate { inherit system; modules = installerModules; format = "install-iso"; };
|
||||||
install-iso = nixos-generators.nixosGenerate {
|
# Aarch64 base image
|
||||||
inherit system;
|
aarch64-base-image = nixos-generators.nixosGenerate { system = flake-utils.lib.system.aarch64-linux; modules = installerModules; format = "sd-aarch64"; };
|
||||||
modules = installerModules;
|
# Installer DigitalOcean
|
||||||
format = "install-iso";
|
do-image = nixos-generators.nixosGenerate { inherit system; modules = installerModules; format = "do"; };
|
||||||
};
|
};
|
||||||
|
});
|
||||||
# Aarch64 base image
|
|
||||||
aarch64-base-image = nixos-generators.nixosGenerate {
|
|
||||||
system = flake-utils.lib.system.aarch64-linux;
|
|
||||||
modules = installerModules;
|
|
||||||
format = "sd-aarch64";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Installer DigitalOcean
|
|
||||||
do-image = nixos-generators.nixosGenerate {
|
|
||||||
inherit system;
|
|
||||||
modules = installerModules;
|
|
||||||
format = "do";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
in
|
in
|
||||||
builtins.foldl' nixpkgs.lib.recursiveUpdate { } [
|
builtins.foldl' nixpkgs.lib.recursiveUpdate { } [
|
||||||
|
|
|
||||||
10
modules/nixos/basics/default.nix
Normal file
10
modules/nixos/basics/default.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
src = ./.;
|
||||||
|
files = builtins.readDir src;
|
||||||
|
nixFiles = builtins.attrNames (lib.attrsets.filterAttrs (name: type: type != "directory" && lib.hasSuffix ".nix" name && !(lib.hasSuffix "default.nix" name)) files);
|
||||||
|
imports = builtins.map (path: src + ("/" + path)) nixFiles;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
inherit imports;
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ pkgs, config, lib, ... }: {
|
{ pkgs, config, lib, ... }: {
|
||||||
users.groups.garage = { };
|
users.groups.garage = { };
|
||||||
users.users.garage = { isSystemUser = true; group = "garage"; };
|
users.users.garage = { isSystemUser = true; group = "garage"; };
|
||||||
age.secrets.garage_rpc_secret = { file = ../secrets/garage_rpc_secret.age; owner = "garage"; };
|
age.secrets.garage_rpc_secret = { file = ../../secrets/garage_rpc_secret.age; owner = "garage"; };
|
||||||
|
|
||||||
networking.firewall.interfaces."ztmjfdwjkp".allowedTCPPorts = [
|
networking.firewall.interfaces."ztmjfdwjkp".allowedTCPPorts = [
|
||||||
3901
|
3901
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
{ pkgs, config, ... }: {
|
{ pkgs, config, ... }: {
|
||||||
|
|
||||||
age.secrets = {
|
age.secrets = {
|
||||||
nextcloud_admin_secret = { file = ../secrets/nextcloud_admin_secret.age; owner = "nextcloud"; };
|
nextcloud_admin_secret = { file = ../../secrets/nextcloud_admin_secret.age; owner = "nextcloud"; };
|
||||||
nextcloud_bucket_secret = { file = ../secrets/nextcloud_bucket_secret.age; owner = "nextcloud"; };
|
nextcloud_bucket_secret = { file = ../../secrets/nextcloud_bucket_secret.age; owner = "nextcloud"; };
|
||||||
};
|
};
|
||||||
|
|
||||||
# services.nginx.virtualHosts.${config.services.nextcloud.hostName} = {
|
# services.nginx.virtualHosts.${config.services.nextcloud.hostName} = {
|
||||||
10
modules/nixos/server/default.nix
Normal file
10
modules/nixos/server/default.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
src = ./.;
|
||||||
|
files = builtins.readDir src;
|
||||||
|
nixFiles = builtins.attrNames (lib.attrsets.filterAttrs (name: type: type != "directory" && lib.hasSuffix ".nix" name && !(lib.hasSuffix "default.nix" name)) files);
|
||||||
|
imports = builtins.map (path: src + ("/" + path)) nixFiles;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
inherit imports;
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue