This commit is contained in:
parent
1a25b198ef
commit
781ce2d5e9
24 changed files with 610 additions and 505 deletions
387
flake.nix
387
flake.nix
|
@ -13,200 +13,205 @@
|
|||
agenix.url = "github:yaxitech/ragenix";
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, home-manager, microvm, agenix, ... }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
username = "tbarnouin";
|
||||
proxy_host = "192.168.1.40";
|
||||
pgsql_host = "192.168.1.13";
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
nixmox-curiosity = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
./hosts/nixmox-curiosity/configuration.nix
|
||||
{
|
||||
networking.hostName = "nixmox-curiosity";
|
||||
}
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.${username} = import ./hosts/nixmox-curiosity/home.nix;
|
||||
}
|
||||
microvm.nixosModules.host
|
||||
{
|
||||
microvm = {
|
||||
autostart = [];
|
||||
vms = {};
|
||||
};
|
||||
}
|
||||
];
|
||||
outputs = inputs @ {
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
microvm,
|
||||
agenix,
|
||||
...
|
||||
}: let
|
||||
system = "x86_64-linux";
|
||||
username = "tbarnouin";
|
||||
proxy_host = "192.168.1.40";
|
||||
pgsql_host = "192.168.1.13";
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
nixmox-curiosity = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
./hosts/nixmox-curiosity/configuration.nix
|
||||
{
|
||||
networking.hostName = "nixmox-curiosity";
|
||||
}
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.${username} = import ./hosts/nixmox-curiosity/home.nix;
|
||||
}
|
||||
microvm.nixosModules.host
|
||||
{
|
||||
microvm = {
|
||||
autostart = [];
|
||||
vms = {};
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
inherit username;
|
||||
inherit proxy_host;
|
||||
inherit pgsql_host;
|
||||
inherit system;
|
||||
};
|
||||
};
|
||||
nginx = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
inherit username;
|
||||
inherit proxy_host;
|
||||
inherit pgsql_host;
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
"${inputs.nixpkgs}/nixos/modules/virtualisation/proxmox-lxc.nix"
|
||||
"${inputs.self}/systems/minimalLXCConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
networking.hostName = "nginx";
|
||||
services.vm_nginx = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
onlyoffice = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
"${inputs.nixpkgs}/nixos/modules/virtualisation/proxmox-lxc.nix"
|
||||
"${inputs.self}/systems/minimalLXCConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
networking.hostName = "onlyoffice";
|
||||
services.vm_onlyoffice = {
|
||||
enable = true;
|
||||
pgsql_ip = pgsql_host;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
# template = nixpkgs.lib.nixosSystem {
|
||||
# inherit system;
|
||||
# modules = [
|
||||
# agenix.nixosModules.default
|
||||
# "${inputs.self}/systems/minimalVMConfig.nix"
|
||||
# {
|
||||
# networking.hostName = "nixos";
|
||||
# }
|
||||
# ];
|
||||
# };
|
||||
jellyfin = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
microvm.nixosModules.microvm
|
||||
"${inputs.self}/systems/minimalVMConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
services.vm_jellyfin = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
redis = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
"${inputs.nixpkgs}/nixos/modules/virtualisation/proxmox-lxc.nix"
|
||||
"${inputs.self}/systems/minimalLXCConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
networking.hostName = "redis";
|
||||
services.vm_redis = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
grafana-lxc = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
"${inputs.nixpkgs}/nixos/modules/virtualisation/proxmox-lxc.nix"
|
||||
"${inputs.self}/systems/minimalLXCConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
services.vm_grafana = {
|
||||
enable = true;
|
||||
vm_ip = "192.168.1.27";
|
||||
proxy_ip = proxy_host;
|
||||
pgsql_ip = pgsql_host;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
grafana = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
microvm.nixosModules.microvm
|
||||
"${inputs.self}/systems/minimalMicrovmConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
services.vm_grafana = {
|
||||
enable = true;
|
||||
vm_ip = "192.168.1.27";
|
||||
proxy_ip = proxy_host;
|
||||
pgsql_ip = pgsql_host;
|
||||
};
|
||||
services.micro_vm = {
|
||||
enable = true;
|
||||
hostname = "grafana";
|
||||
vm_ip = "192.168.1.20";
|
||||
vm_cpu = 1;
|
||||
vm_mem = 512;
|
||||
macAddr = "02:00:00:00:00:20";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
authentik = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
inputs.authentik-nix.nixosModules.default
|
||||
{
|
||||
services.authentik = {
|
||||
enable = true;
|
||||
environmentFile = "/run/secrets/authentik/authentik-env";
|
||||
settings = {
|
||||
disable_startup_analytics = true;
|
||||
avatars = "initials";
|
||||
};
|
||||
};
|
||||
services.vm_authentik = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
microvm.nixosModules.microvm
|
||||
"${inputs.self}/systems/minimalMicrovmConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
microvm = {
|
||||
volumes = [
|
||||
{
|
||||
mountPoint = "/media";
|
||||
image = "/var/lib/microvms/authentik/media.img";
|
||||
size = 2048;
|
||||
}
|
||||
];
|
||||
};
|
||||
services.micro_vm = {
|
||||
enable = true;
|
||||
hostname = "authentik";
|
||||
vm_ip = "192.168.1.25";
|
||||
vm_cpu = 2;
|
||||
vm_mem = 2048;
|
||||
macAddr = "02:00:00:00:00:25";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
nginx = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
"${inputs.nixpkgs}/nixos/modules/virtualisation/proxmox-lxc.nix"
|
||||
"${inputs.self}/systems/minimalLXCConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
networking.hostName = "nginx";
|
||||
services.vm_nginx = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
onlyoffice = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
"${inputs.nixpkgs}/nixos/modules/virtualisation/proxmox-lxc.nix"
|
||||
"${inputs.self}/systems/minimalLXCConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
networking.hostName = "onlyoffice";
|
||||
services.vm_onlyoffice = {
|
||||
enable = true;
|
||||
pgsql_ip = pgsql_host;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
# template = nixpkgs.lib.nixosSystem {
|
||||
# inherit system;
|
||||
# modules = [
|
||||
# agenix.nixosModules.default
|
||||
# "${inputs.self}/systems/minimalVMConfig.nix"
|
||||
# {
|
||||
# networking.hostName = "nixos";
|
||||
# }
|
||||
# ];
|
||||
# };
|
||||
jellyfin = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
microvm.nixosModules.microvm
|
||||
"${inputs.self}/systems/minimalVMConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
services.vm_jellyfin = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
redis = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
"${inputs.nixpkgs}/nixos/modules/virtualisation/proxmox-lxc.nix"
|
||||
"${inputs.self}/systems/minimalLXCConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
networking.hostName = "redis";
|
||||
services.vm_redis = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
grafana-lxc = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
"${inputs.nixpkgs}/nixos/modules/virtualisation/proxmox-lxc.nix"
|
||||
"${inputs.self}/systems/minimalLXCConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
services.vm_grafana = {
|
||||
enable = true;
|
||||
vm_ip = "192.168.1.27";
|
||||
proxy_ip = proxy_host;
|
||||
pgsql_ip = pgsql_host;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
grafana = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
microvm.nixosModules.microvm
|
||||
"${inputs.self}/systems/minimalMicrovmConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
services.vm_grafana = {
|
||||
enable = true;
|
||||
vm_ip = "192.168.1.27";
|
||||
proxy_ip = proxy_host;
|
||||
pgsql_ip = pgsql_host;
|
||||
};
|
||||
services.micro_vm = {
|
||||
enable = true;
|
||||
hostname = "grafana";
|
||||
vm_ip = "192.168.1.20";
|
||||
vm_cpu = 1;
|
||||
vm_mem = 512;
|
||||
macAddr = "02:00:00:00:00:20";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
authentik = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
agenix.nixosModules.default
|
||||
inputs.authentik-nix.nixosModules.default
|
||||
{
|
||||
services.authentik = {
|
||||
enable = true;
|
||||
environmentFile = "/run/secrets/authentik/authentik-env";
|
||||
settings = {
|
||||
disable_startup_analytics = true;
|
||||
avatars = "initials";
|
||||
};
|
||||
};
|
||||
services.vm_authentik = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
microvm.nixosModules.microvm
|
||||
"${inputs.self}/systems/minimalMicrovmConfig.nix"
|
||||
"${inputs.self}/services"
|
||||
{
|
||||
microvm = {
|
||||
volumes = [
|
||||
{
|
||||
mountPoint = "/media";
|
||||
image = "/var/lib/microvms/authentik/media.img";
|
||||
size = 2048;
|
||||
}
|
||||
];
|
||||
};
|
||||
services.micro_vm = {
|
||||
enable = true;
|
||||
hostname = "authentik";
|
||||
vm_ip = "192.168.1.25";
|
||||
vm_cpu = 2;
|
||||
vm_mem = 2048;
|
||||
macAddr = "02:00:00:00:00:25";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue