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";
|
2025-07-11 22:31:23 +00:00
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
2025-07-21 16:28:10 +00:00
|
|
|
nixvim = {
|
|
|
|
|
url = "github:nix-community/nixvim/nixos-25.05";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
2025-07-21 15:38:49 +00:00
|
|
|
sops-nix.url = "github:Mic92/sops-nix";
|
2025-07-11 21:24:59 +00:00
|
|
|
};
|
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-21 16:28:10 +00:00
|
|
|
nixvim,
|
2025-07-21 15:38:49 +00:00
|
|
|
sops-nix,
|
2025-07-11 21:08:25 +00:00
|
|
|
...
|
|
|
|
|
}:
|
2025-07-11 21:24:59 +00:00
|
|
|
let
|
|
|
|
|
configFiles = pkgs.stdenv.mkDerivation {
|
|
|
|
|
installPhase = ''
|
|
|
|
|
mkdir -p $out
|
|
|
|
|
cp -r * $out/
|
|
|
|
|
'';
|
|
|
|
|
name = "config-files";
|
2025-07-17 17:09:26 +00:00
|
|
|
src = ../configs;
|
2025-07-11 21:24:59 +00:00
|
|
|
};
|
|
|
|
|
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 {
|
|
|
|
|
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 {
|
2025-07-17 17:09:26 +00:00
|
|
|
home-manager.extraSpecialArgs = { inherit configFiles; };
|
2025-07-21 16:28:10 +00:00
|
|
|
home-manager.sharedModules = [
|
|
|
|
|
nixvim.homeManagerModules.nixvim
|
|
|
|
|
./modules/home/nixvim.nix
|
|
|
|
|
];
|
2025-07-11 21:24:59 +00:00
|
|
|
home-manager.useGlobalPkgs = true;
|
|
|
|
|
home-manager.useUserPackages = true;
|
|
|
|
|
}
|
2025-07-17 17:09:26 +00:00
|
|
|
../modules
|
2025-07-21 15:38:49 +00:00
|
|
|
sops-nix.nixosModules.sops {
|
|
|
|
|
sops = {
|
|
|
|
|
age.generateKey = true;
|
|
|
|
|
age.keyFile = "/var/libs/sops-nix/key.txt";
|
|
|
|
|
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
|
|
|
|
defaultSopsFile = ./secrets/secrets.yaml;
|
|
|
|
|
};
|
|
|
|
|
}
|
2025-07-17 17:09:26 +00:00
|
|
|
../users
|
2025-07-11 21:08:25 +00:00
|
|
|
];
|
2025-07-11 22:31:23 +00:00
|
|
|
specialArgs = {
|
|
|
|
|
inherit configFiles;
|
|
|
|
|
};
|
|
|
|
|
system = "${system}";
|
2025-07-11 21:08:25 +00:00
|
|
|
};
|
|
|
|
|
};
|
2025-07-11 15:31:30 +00:00
|
|
|
}
|