homelab framework module init (everything is a mess)
Some checks failed
Test / tests (push) Has been cancelled
/ OpenTofu (push) Has been cancelled

This commit is contained in:
plasmagoat 2025-07-28 02:05:13 +02:00
parent 0347f4d325
commit bcbcc8b17b
94 changed files with 7289 additions and 436 deletions

View file

@ -72,6 +72,11 @@ in {
type = types.str;
description = "The domain under which the photos frontend will be served.";
};
auth = mkOption {
type = types.str;
description = "The domain under which the auth frontend will be served.";
};
};
};
@ -187,6 +192,11 @@ in {
name = "ente";
user = "ente";
};
key = {
encryption._secret = pkgs.writeText "encryption" "T0sn+zUVFOApdX4jJL4op6BtqqAfyQLH95fu8ASWfno=";
hash._secret = pkgs.writeText "hash" "g/dBZBs1zi9SXQ0EKr4RCt1TGr7ZCKkgrpjyjrQEKovWPu5/ce8dYM6YvMIPL23MMZToVuuG+Z6SGxxTbxg5NQ==";
};
jwt.secret._secret = pkgs.writeText "jwt" "i2DecQmfGreG6q1vBj5tCokhlN41gcfS2cjOs9Po-u8=";
};
systemd.services.ente = {
@ -243,6 +253,7 @@ in {
BindReadOnlyPaths = [
"${cfgApi.package}/share/museum/migrations:${dataDir}/migrations"
"${cfgApi.package}/share/museum/mail-templates:${dataDir}/mail-templates"
"${cfgApi.package}/share/museum/web-templates:${dataDir}/web-templates"
];
User = cfgApi.user;
@ -311,7 +322,12 @@ in {
in {
enable = true;
virtualHosts.${domainFor "accounts"} = {
forceSSL = mkDefault false;
listen = [
{
addr = "0.0.0.0";
port = 3001;
}
];
locations."/" = {
root = webPackage "accounts";
tryFiles = "$uri $uri.html /index.html";
@ -321,7 +337,12 @@ in {
};
};
virtualHosts.${domainFor "cast"} = {
forceSSL = mkDefault false;
listen = [
{
addr = "0.0.0.0";
port = 3004;
}
];
locations."/" = {
root = webPackage "cast";
tryFiles = "$uri $uri.html /index.html";
@ -334,7 +355,12 @@ in {
serverAliases = [
(domainFor "albums") # the albums app is shared with the photos frontend
];
forceSSL = mkDefault false;
listen = [
{
addr = "0.0.0.0";
port = 3000;
}
];
locations."/" = {
root = webPackage "photos";
tryFiles = "$uri $uri.html /index.html";
@ -343,6 +369,21 @@ in {
'';
};
};
virtualHosts.${domainFor "auth"} = {
listen = [
{
addr = "0.0.0.0";
port = 3003;
}
];
locations."/" = {
root = webPackage "auth";
tryFiles = "$uri $uri.html /index.html";
extraConfig = ''
add_header Access-Control-Allow-Origin 'https://${cfgWeb.domains.api}';
'';
};
};
};
})
];