75 lines
2.4 KiB
Plaintext
75 lines
2.4 KiB
Plaintext
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
quixos.url = "${quixos_flake_uri}";
|
|
};
|
|
|
|
outputs = { nixpkgs, quixos, ... }:
|
|
let
|
|
quixosHost = nixpkgs.lib.nixosSystem {
|
|
system = "aarch64-linux";
|
|
modules = [
|
|
quixos.nixosModules.quixosHost
|
|
({ modulesPath, ... }: {
|
|
imports = [ "$${modulesPath}/virtualisation/amazon-image.nix" ];
|
|
|
|
networking.hostName = "quixos";
|
|
|
|
users.users."${admin_user}" = {
|
|
isNormalUser = true;
|
|
extraGroups = [ "wheel" "quixos-control" ];
|
|
openssh.authorizedKeys.keys = ${ssh_authorized_keys};
|
|
};
|
|
security.sudo.wheelNeedsPassword = false;
|
|
|
|
services.quixosHost = {
|
|
enable = true;
|
|
domain = "${domain}";
|
|
persistDevice = "${persist_device}";
|
|
persistZfsPool = "quixos-persist";
|
|
sharedPersistDevice = ${shared_persist_device};
|
|
sharedPersistZfsPool = "quixos-shared";
|
|
nixZfsPool = "nixos-zfs-nix";
|
|
packageTreeRepo = "${package_tree_repo_url}";
|
|
packageTreeRef = "${package_tree_ref}";
|
|
forcePackageTreeRefOnBoot = ${force_package_tree_ref_on_boot};
|
|
enableSsh = ${enable_ssh};
|
|
|
|
devHome.enable = ${dev_mode};
|
|
sourceCheckout = {
|
|
enable = ${dev_mode};
|
|
repo = "${quixos_repo_url}";
|
|
ref = "${quixos_ref}";
|
|
};
|
|
orchestrator = {
|
|
nix.enable = ${!dev_mode};
|
|
source.enable = ${dev_mode};
|
|
};
|
|
visualizer = {
|
|
static.enable = ${!dev_mode};
|
|
vite.enable = ${dev_mode};
|
|
};
|
|
|
|
secrets = {
|
|
provider = "aws-ssm";
|
|
awsSsm = {
|
|
controlSecretParameter = "${control_secret_parameter}";
|
|
stateContextSecretParameter = "${state_context_secret_parameter}";
|
|
packageTreeGitUsernameParameter = "${package_tree_git_username_parameter}";
|
|
packageTreeGitPasswordParameter = "${package_tree_git_password_parameter}";
|
|
};
|
|
};
|
|
};
|
|
|
|
system.stateVersion = "25.05";
|
|
})
|
|
];
|
|
};
|
|
in
|
|
{
|
|
nixosConfigurations.nixos-zfs-ec2 = quixosHost;
|
|
nixosConfigurations.quixos = quixosHost;
|
|
nixosConfigurations.quixos-host = quixosHost;
|
|
};
|
|
}
|