2025-07-11 15:31:30 +00:00
|
|
|
{
|
2025-07-11 21:24:59 +00:00
|
|
|
inputs = {
|
|
|
|
|
disko = {
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
url = "github:nix-community/disko";
|
|
|
|
|
};
|
|
|
|
|
home-manager = {
|
|
|
|
|
url = "github:nix-community/home-manager/release-25.05";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
|
|
|
|
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
|
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
|
|
|
};
|
2025-07-11 15:31:30 +00:00
|
|
|
|
2025-07-11 21:08:25 +00:00
|
|
|
outputs =
|
|
|
|
|
{
|
|
|
|
|
disko,
|
2025-07-11 21:24:59 +00:00
|
|
|
home-manager,
|
|
|
|
|
nixpkgs,
|
2025-07-11 21:08:25 +00:00
|
|
|
nixos-facter-modules,
|
|
|
|
|
...
|
|
|
|
|
}:
|
2025-07-11 21:24:59 +00:00
|
|
|
let
|
|
|
|
|
configFiles = pkgs.stdenv.mkDerivation {
|
|
|
|
|
installPhase = ''
|
|
|
|
|
mkdir -p $out
|
|
|
|
|
cp -r * $out/
|
|
|
|
|
'';
|
|
|
|
|
name = "config-files";
|
|
|
|
|
src = ./configs;
|
|
|
|
|
};
|
|
|
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
|
|
|
system = "x86_64-linux";
|
|
|
|
|
in {
|
2025-07-11 21:08:25 +00:00
|
|
|
# tested with 2GB/2CPU droplet, 1GB droplets do not have enough RAM for kexec
|
|
|
|
|
nixosConfigurations.digitalocean = nixpkgs.lib.nixosSystem {
|
2025-07-11 21:24:59 +00:00
|
|
|
system = "${system}";
|
2025-07-11 21:08:25 +00:00
|
|
|
modules = [
|
2025-07-11 21:24:59 +00:00
|
|
|
./configuration.nix
|
2025-07-11 21:08:25 +00:00
|
|
|
./digitalocean.nix
|
|
|
|
|
disko.nixosModules.disko
|
|
|
|
|
{ disko.devices.disk.disk1.device = "/dev/vda"; }
|
2025-07-11 21:24:59 +00:00
|
|
|
home-manager.nixosModules.home-manager {
|
|
|
|
|
home-manager.useGlobalPkgs = true;
|
|
|
|
|
home-manager.useUserPackages = true;
|
|
|
|
|
home-manager.sharedModules = [];
|
|
|
|
|
home-manager.extraSpecialArgs = { inherit configFiles; };
|
|
|
|
|
}
|
|
|
|
|
./modules
|
|
|
|
|
./users
|
2025-07-11 21:08:25 +00:00
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
};
|
2025-07-11 15:31:30 +00:00
|
|
|
}
|