61 lines
1.6 KiB
Nix
61 lines
1.6 KiB
Nix
{
|
|
description = "My Homelab setup for NixOS";
|
|
|
|
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
|
|
|
inputs.thelenlucas = {
|
|
url = "github:thelenlucas/thelenlucas.github.io/main";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
inputs.agenix = {
|
|
url = "github:ryantm/agenix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, thelenlucas, agenix }@inputs: {
|
|
nixosConfigurations.homelab = nixpkgs.lib.nixosSystem {
|
|
specialArgs = { inherit inputs; };
|
|
|
|
modules = [
|
|
# Common configuration options
|
|
./config/common.nix
|
|
|
|
# External modules
|
|
agenix.nixosModules.default
|
|
|
|
# Core system modules
|
|
./modules/core/boot.nix
|
|
./modules/core/server-power.nix
|
|
./modules/core/packages.nix
|
|
|
|
# Hardware
|
|
./modules/hardware/hardware-configuration.nix
|
|
|
|
# Users
|
|
./modules/users/lucas.nix
|
|
|
|
# Networking
|
|
./modules/networking/host.nix
|
|
./modules/networking/ssh.nix
|
|
./modules/networking/adblock.nix
|
|
./modules/networking/vpn-host.nix
|
|
|
|
# Services
|
|
./modules/services/jellyfin.nix
|
|
./modules/services/site.nix
|
|
./modules/services/forgejo.nix
|
|
./modules/services/calibre-web.nix
|
|
|
|
# Legacy configuration and secrets
|
|
./configuration.nix
|
|
{
|
|
environment.systemPackages = [ agenix.packages.x86_64-linux.default ];
|
|
age.secrets.tailscale.file = ./secrets/tailscale.age;
|
|
age.secrets.aws.file = ./secrets/aws.age;
|
|
nixpkgs.config.allowUnfree = true;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|