{ inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; inputs.disko.url = "github:nix-community/disko"; inputs.disko.inputs.nixpkgs.follows = "nixpkgs"; outputs = { nixpkgs, disko, ... }: { nixosConfigurations.hetzner-cloud = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ disko.nixosModules.disko ./configuration.nix ]; }; # tested with 2GB/2CPU droplet, 1GB droplets do not have enough RAM for kexec nixosConfigurations.digitalocean = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ disko.nixosModules.disko { disko.devices.disk.disk1.device = "/dev/vda"; } { # do not use DHCP, as DigitalOcean provisions IPs using cloud-init networking.useDHCP = nixpkgs.lib.mkForce false; services.cloud-init = { enable = true; network.enable = true; # not strictly needed, just for good measure datasource_list = [ "DigitalOcean" ]; datasource.DigitalOcean = { }; }; } ./configuration.nix ]; }; nixosConfigurations.hetzner-cloud-aarch64 = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ disko.nixosModules.disko ./configuration.nix ]; }; nixosConfigurations.biggerpi = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ disko.nixosModules.disko ./configuration.nix ./disk-config.nix ]; }; }; }