mirror of
https://github.com/TheWanderingCrow/CrOS.git
synced 2026-01-11 01:34:08 -05:00
95 lines
2.9 KiB
Nix
95 lines
2.9 KiB
Nix
let
|
|
volumePath = "/overseer/services";
|
|
in
|
|
{
|
|
config,
|
|
inputs,
|
|
...
|
|
}:
|
|
let
|
|
sopsFolder = builtins.toString inputs.nix-secrets + "/sops";
|
|
in
|
|
{
|
|
systemd.tmpfiles.rules = [
|
|
"d ${volumePath}/lubelogger"
|
|
"d ${volumePath}/lubelogger/data"
|
|
"d ${volumePath}/lubelogger/keys"
|
|
];
|
|
###########
|
|
# Service #
|
|
###########
|
|
|
|
sops = {
|
|
secrets = {
|
|
"lubelogger/user_hash" = {
|
|
sopsFile = "${sopsFolder}/services.yaml";
|
|
};
|
|
"lubelogger/pass_hash" = {
|
|
sopsFile = "${sopsFolder}/services.yaml";
|
|
};
|
|
"lubelogger/admin_email" = {
|
|
sopsFile = "${sopsFolder}/services.yaml";
|
|
};
|
|
"lubelogger/mailer/server" = {
|
|
sopsFile = "${sopsFolder}/services.yaml";
|
|
};
|
|
"lubelogger/mailer/port" = {
|
|
sopsFile = "${sopsFolder}/services.yaml";
|
|
};
|
|
"lubelogger/mailer/user" = {
|
|
sopsFile = "${sopsFolder}/services.yaml";
|
|
};
|
|
"lubelogger/mailer/pass" = {
|
|
sopsFile = "${sopsFolder}/services.yaml";
|
|
};
|
|
"lubelogger/oidc/id" = {
|
|
sopsFile = "${sopsFolder}/services.yaml";
|
|
};
|
|
"lubelogger/oidc/secret" = {
|
|
sopsFile = "${sopsFolder}/services.yaml";
|
|
};
|
|
};
|
|
templates."lubelogger-env".content = ''
|
|
LC_ALL=en_US.UTF-8
|
|
LANG=en_US.UTF-8
|
|
MailConfig__EmailServer="${config.sops.placeholder."lubelogger/mailer/server"}"
|
|
MailConfig__EmailFrom="${config.sops.placeholder."lubelogger/mailer/user"}"
|
|
MailConfig__Port=587
|
|
MailConfig__Username="${config.sops.placeholder."lubelogger/mailer/user"}"
|
|
MailConfig__Password="${config.sops.placeholder."lubelogger/mailer/pass"}"
|
|
UserNameHash="${config.sops.placeholder."lubelogger/user_hash"}"
|
|
UserPasswordHash="${config.sops.placeholder."lubelogger/pass_hash"}"
|
|
LUBELOGGER_CUSTOM_WIDGETS=true
|
|
OpenIDConfig__Name=Pocket ID
|
|
OpenIDConfig__ClientId=${config.sops.placeholder."lubelogger/oidc/id"}
|
|
OpenIDConfig__ClientSecret=${config.sops.placeholder."lubelogger/oidc/secret"}
|
|
OpenIDConfig__AuthURL=https://auth.wanderingcrow.net/authorize
|
|
OpenIDConfig__RedirectURL=https://garage.wanderingcrow.net/Login/RemoteAuth
|
|
OpenIDConfig__TokenURL=https://auth.wanderingcrow.net/api/oidc/token
|
|
OpenIDConfig__Scope=openid email
|
|
OpenIDConfig__UsePKCE=true
|
|
'';
|
|
};
|
|
|
|
services.caddy = {
|
|
enable = true;
|
|
virtualHosts."garage.wanderingcrow.net".extraConfig = ''
|
|
reverse_proxy http://10.88.0.8:8080
|
|
'';
|
|
};
|
|
|
|
virtualisation.oci-containers = {
|
|
backend = "podman";
|
|
containers = {
|
|
"lubelogger" = {
|
|
image = "ghcr.io/hargata/lubelogger:v1.5.4";
|
|
extraOptions = [ "--ip=10.88.0.8" ];
|
|
environmentFiles = [ config.sops.templates."lubelogger-env".path ];
|
|
volumes = [
|
|
"${volumePath}/lubelogger/data:/App/data"
|
|
"${volumePath}/lubelogger/keys:/root/.aspnet/DataProtection-Keys"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|