2025-07-11 15:31:30 +00:00
|
|
|
{
|
2025-07-11 21:24:59 +00:00
|
|
|
inputs = {
|
2026-01-04 17:21:22 +00:00
|
|
|
authentik-nix = {
|
|
|
|
|
url = "github:nix-community/authentik-nix";
|
|
|
|
|
};
|
2025-07-11 21:24:59 +00:00
|
|
|
disko = {
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
url = "github:nix-community/disko";
|
|
|
|
|
};
|
2026-01-04 17:21:22 +00:00
|
|
|
fieldseeker-sync = {
|
|
|
|
|
type = "github";
|
|
|
|
|
owner = "Gleipnir-Technology";
|
|
|
|
|
repo = "fieldseeker-sync";
|
|
|
|
|
rev = "e250e0abbb35f6d64851305d3b59c4ed1d968bc8";
|
|
|
|
|
};
|
2025-07-11 21:24:59 +00:00
|
|
|
home-manager = {
|
2026-01-04 17:21:22 +00:00
|
|
|
url = "github:nix-community/home-manager/release-25.11";
|
2025-07-11 21:24:59 +00:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
2026-01-04 17:21:22 +00:00
|
|
|
nidus-sync = {
|
|
|
|
|
type = "github";
|
|
|
|
|
owner = "Gleipnir-Technology";
|
|
|
|
|
repo = "nidus-sync";
|
|
|
|
|
rev = "637decea113ba1bbed7b373244f5989e00626f38";
|
|
|
|
|
};
|
2025-07-11 21:24:59 +00:00
|
|
|
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
2026-01-04 17:21:22 +00:00
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
2025-07-21 16:28:10 +00:00
|
|
|
nixvim = {
|
2026-01-04 17:21:22 +00:00
|
|
|
url = "github:nix-community/nixvim/nixos-25.11";
|
2025-07-21 16:28:10 +00:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
2025-07-21 15:38:49 +00:00
|
|
|
sops-nix.url = "github:Mic92/sops-nix";
|
2026-01-04 17:21:22 +00:00
|
|
|
timecard-bot.url = "github:Gleipnir-Technology/timecard-bot?rev=8c81b6683f97aa2712323836e629adf102be58ac";
|
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 =
|
2026-01-04 17:21:22 +00:00
|
|
|
inputs@{
|
2025-07-11 21:08:25 +00:00
|
|
|
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-09-04 16:15:15 +00:00
|
|
|
./digitalocean
|
2025-07-11 21:08:25 +00:00
|
|
|
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
|
2025-08-15 18:57:06 +00:00
|
|
|
../modules/home/nixvim.nix
|
2025-07-21 16:28:10 +00:00
|
|
|
];
|
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-09-04 16:15:15 +00:00
|
|
|
nixosConfigurations.nocix = nixpkgs.lib.nixosSystem {
|
|
|
|
|
modules = [
|
|
|
|
|
../modules
|
|
|
|
|
../users
|
|
|
|
|
./nocix
|
|
|
|
|
disko.nixosModules.disko
|
|
|
|
|
home-manager.nixosModules.home-manager {
|
|
|
|
|
home-manager.extraSpecialArgs = { inherit configFiles; };
|
|
|
|
|
home-manager.sharedModules = [
|
|
|
|
|
nixvim.homeManagerModules.nixvim
|
|
|
|
|
../modules/home/nixvim.nix
|
|
|
|
|
];
|
|
|
|
|
home-manager.useGlobalPkgs = true;
|
|
|
|
|
home-manager.useUserPackages = true;
|
|
|
|
|
}
|
2026-01-04 17:21:22 +00:00
|
|
|
inputs.authentik-nix.nixosModules.default
|
2025-09-04 16:15:15 +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;
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
specialArgs = {
|
2026-01-04 17:21:22 +00:00
|
|
|
inherit configFiles inputs;
|
2025-09-04 16:15:15 +00:00
|
|
|
};
|
|
|
|
|
system = "${system}";
|
|
|
|
|
};
|
2025-07-11 21:08:25 +00:00
|
|
|
};
|
2025-07-11 15:31:30 +00:00
|
|
|
}
|