dot_testing/flake.nix

107 lines
3.2 KiB
Nix

{
description = "rndusr's nixos flake";
inputs = {
# regular nixos stuff
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
home-manager = {
url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs";
};
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
};
simple-nixos-mailserver = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
};
nix-colors = {
url = "github:misterio77/nix-colors";
};
};
outputs = {
self,
nixpkgs,
home-manager,
firefox-addons,
simple-nixos-mailserver,
...
}@inputs: {
nixosConfigurations = {
netbox = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./boxes/netbox
simple-nixos-mailserver.nixosModule
{
mailserver = {
enable = true;
fqdn = "mail.beepboop.systems";
domains = [ "beepboop.systems" ];
loginAccounts = {
"ryan@beepboop.systems" = {
# nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt' > /hashed/password/file/location
hashedPasswordFile = "/etc/ryan-beepboop-systemsuser-pass";
aliases = [
"info@beepboop.systems"
"postmaster@beepboop.systems"
];
};
"machines@beepboop.systems" = {
hashedPasswordFile = "/etc/ryan-beepboop-systemsuser-pass";
};
};
certificateScheme = "acme-nginx";
};
}
];
};
mlg = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./boxes/mlg
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.usr = import ./boxes/mlg/home.nix;
}
];
};
copernicus = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./boxes/copernicus
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.usr = import ./boxes/copernicus/home.nix;
}
];
};
aristotle = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./boxes/aristotle
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.usr = import ./boxes/aristotle/home.nix;
}
];
};
};
};
}