tfc-nixos/flake.nix
2025-05-19 14:17:09 -05:00

105 lines
3 KiB
Nix

{
description = "The Flake";
inputs = {
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
home-manager = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-bitcoin = {
url = "github:fort-nix/nix-bitcoin/release";
};
nix-comfyui.url = "github:dyscorv/nix-comfyui";
deploy-rs.url = "github:serokell/deploy-rs";
simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.11";
nocodb.url = "github:nocodb/nocodb";
nixified-ai = {
inputs.nixpkgs.follows = "nixpkgs-unstable";
url = "github:nixified-ai/flake";
};
website = {
# url = "git+https://git.tfcconnection.org/TFC/tfcconnection";
url = "path:/tfcconnection";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
};
outputs = { nixpkgs,
nixpkgs-unstable,
home-manager,
nix-bitcoin,
nix-comfyui,
deploy-rs,
simple-nixos-mailserver,
nocodb,
nixified-ai,
website,
self,
... }:
let
system = "x86_64-linux";
username = "chris";
pkgsForSystem = import nixpkgs {
inherit system;
config = { allowUnfree = true; };
# overlays = [ (final: prev: { website = website.packages.${system}.default; }) ];
};
lib = nixpkgs.lib;
unstable = import nixpkgs-unstable {
inherit system;
config = { allowUnfree = true; };
# overlays = [
# (import ./python312overlay.nix)
# nix-comfyui.overlays.default
# ];
};
in {
nixosConfigurations = {
shen = lib.nixosSystem {
inherit system;
pkgs = pkgsForSystem;
specialArgs = { inherit unstable; };
modules = [
./system/shen/configuration.nix
simple-nixos-mailserver.nixosModule
home-manager.nixosModules.home-manager
nocodb.nixosModules.nocodb
nixified-ai.nixosModules.comfyui
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.chris = import ./chris/home.nix;
}
];
};
hoid = lib.nixosSystem {
inherit system;
pkgs = pkgsForSystem;
specialArgs = { inherit unstable; };
modules = [
./system/hoid/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.chris = import ./chris/home.nix;
}
];
};
};
deploy.nodes.tfc = {
profiles = {
shen = {
path =
deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.shen;
};
};
};
};
}