2023-07-01 18:46:19 +02:00
|
|
|
{
|
|
|
|
description = "Home Assistant example for Self Host Blocks";
|
|
|
|
|
|
|
|
inputs = {
|
2023-12-09 19:16:41 +01:00
|
|
|
selfhostblocks.url = "github:ibizaman/selfhostblocks";
|
2023-07-01 18:46:19 +02:00
|
|
|
};
|
|
|
|
|
2024-01-25 07:50:45 +01:00
|
|
|
outputs = inputs@{ self, selfhostblocks, ... }:
|
|
|
|
let
|
|
|
|
basic = { config, ... }: {
|
2024-01-08 09:36:23 +01:00
|
|
|
imports = [
|
|
|
|
./configuration.nix
|
|
|
|
selfhostblocks.inputs.sops-nix.nixosModules.default
|
|
|
|
selfhostblocks.nixosModules.x86_64-linux.default
|
|
|
|
];
|
|
|
|
|
|
|
|
shb.home-assistant = {
|
|
|
|
enable = true;
|
|
|
|
domain = "example.com";
|
|
|
|
subdomain = "ha";
|
|
|
|
sopsFile = ./secrets.yaml;
|
|
|
|
};
|
|
|
|
|
|
|
|
nixpkgs.config.permittedInsecurePackages = [
|
|
|
|
"openssl-1.1.1w"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2024-01-25 07:50:45 +01:00
|
|
|
ldap = { config, ... }: {
|
2023-11-19 18:06:53 +01:00
|
|
|
shb.ldap = {
|
|
|
|
enable = true;
|
|
|
|
domain = "example.com";
|
|
|
|
subdomain = "ldap";
|
|
|
|
ldapPort = 3890;
|
2023-12-09 19:16:41 +01:00
|
|
|
webUIListenPort = 17170;
|
2023-11-19 18:06:53 +01:00
|
|
|
dcdomain = "dc=example,dc=com";
|
2023-12-09 19:16:41 +01:00
|
|
|
ldapUserPasswordFile = config.sops.secrets."lldap/user_password".path;
|
|
|
|
jwtSecretFile = config.sops.secrets."lldap/jwt_secret".path;
|
|
|
|
};
|
|
|
|
sops.secrets."lldap/user_password" = {
|
|
|
|
sopsFile = ./secrets.yaml;
|
|
|
|
mode = "0440";
|
|
|
|
owner = "lldap";
|
|
|
|
group = "lldap";
|
|
|
|
restartUnits = [ "lldap.service" ];
|
|
|
|
};
|
|
|
|
sops.secrets."lldap/jwt_secret" = {
|
2023-11-19 18:06:53 +01:00
|
|
|
sopsFile = ./secrets.yaml;
|
2023-12-09 19:16:41 +01:00
|
|
|
mode = "0440";
|
|
|
|
owner = "lldap";
|
|
|
|
group = "lldap";
|
|
|
|
restartUnits = [ "lldap.service" ];
|
2023-11-19 18:06:53 +01:00
|
|
|
};
|
|
|
|
|
2024-01-25 07:50:45 +01:00
|
|
|
shb.home-assistant.ldap = {
|
2023-07-01 18:46:19 +02:00
|
|
|
enable = true;
|
2024-01-25 07:50:45 +01:00
|
|
|
host = "127.0.0.1";
|
|
|
|
port = config.shb.ldap.webUIListenPort;
|
|
|
|
userGroup = "homeassistant_user";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
sopsConfig = {
|
|
|
|
sops.age.keyFile = "/etc/sops/my_key";
|
|
|
|
environment.etc."sops/my_key".source = ./keys.txt;
|
|
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
|
|
nixosConfigurations = {
|
|
|
|
basic = selfhostblocks.inputs.nixpkgs.lib.nixosSystem {
|
|
|
|
system = "x86_64-linux";
|
|
|
|
modules = [
|
|
|
|
basic
|
|
|
|
sopsConfig
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
ldap = selfhostblocks.inputs.nixpkgs.lib.nixosSystem {
|
|
|
|
system = "x86_64-linux";
|
|
|
|
modules = [
|
|
|
|
basic
|
|
|
|
ldap
|
|
|
|
sopsConfig
|
|
|
|
];
|
2024-01-08 09:36:23 +01:00
|
|
|
};
|
2023-07-01 18:46:19 +02:00
|
|
|
};
|
2023-11-19 18:06:53 +01:00
|
|
|
|
2024-01-25 07:50:45 +01:00
|
|
|
colmena = {
|
|
|
|
meta = {
|
|
|
|
nixpkgs = import selfhostblocks.inputs.nixpkgs {
|
|
|
|
system = "x86_64-linux";
|
|
|
|
};
|
|
|
|
specialArgs = inputs;
|
|
|
|
};
|
|
|
|
|
|
|
|
basic = { config, ... }: {
|
|
|
|
imports = [
|
|
|
|
basic
|
|
|
|
];
|
|
|
|
|
|
|
|
# Used by colmena to know which target host to deploy to.
|
|
|
|
deployment = {
|
|
|
|
targetHost = "example";
|
|
|
|
targetUser = "nixos";
|
|
|
|
targetPort = 2222;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
ldap = { config, ... }: {
|
|
|
|
imports = [
|
|
|
|
basic
|
|
|
|
ldap
|
|
|
|
];
|
|
|
|
|
|
|
|
# Used by colmena to know which target host to deploy to.
|
|
|
|
deployment = {
|
|
|
|
targetHost = "example";
|
|
|
|
targetUser = "nixos";
|
|
|
|
targetPort = 2222;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2023-07-01 18:46:19 +02:00
|
|
|
};
|
|
|
|
}
|