SQ chonk: Use authelia
This commit is contained in:
parent
9accff4383
commit
dbef702ac3
112
hosts/chonk/authelia.nix
Normal file
112
hosts/chonk/authelia.nix
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
self,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
containerStateDir = "/var/lib/authelia-gssws";
|
||||||
|
hostStateDir = "/opt/authelia";
|
||||||
|
domain = "auth.gssws.de";
|
||||||
|
servicePort = 9091;
|
||||||
|
in {
|
||||||
|
age.secrets.authelia_users = {
|
||||||
|
file = "${self}/secrets/chonk_authelia_users.age";
|
||||||
|
owner = "999";
|
||||||
|
group = "999";
|
||||||
|
};
|
||||||
|
|
||||||
|
age.secrets.authelia_storage_encryption_key = {
|
||||||
|
file = "${self}/secrets/chonk_authelia_storage_encryption_key.age";
|
||||||
|
owner = "999";
|
||||||
|
group = "999";
|
||||||
|
};
|
||||||
|
|
||||||
|
age.secrets.authelia_jwt_secret = {
|
||||||
|
file = "${self}/secrets/chonk_authelia_jwt_secret.age";
|
||||||
|
owner = "999";
|
||||||
|
group = "999";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts."${domain}" = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://127.0.0.1:${toString servicePort}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
containers."authelia" = {
|
||||||
|
autoStart = true;
|
||||||
|
ephemeral = true;
|
||||||
|
bindMounts = {
|
||||||
|
"${containerStateDir}" = {
|
||||||
|
hostPath = hostStateDir;
|
||||||
|
isReadOnly = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"/run/agenix" = {
|
||||||
|
hostPath = "/run/agenix";
|
||||||
|
isReadOnly = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"/run/agenix.d" = {
|
||||||
|
hostPath = "/run/agenix.d";
|
||||||
|
isReadOnly = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
networking.firewall.enable = false;
|
||||||
|
|
||||||
|
services.authelia.instances."gssws" = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
secrets = {
|
||||||
|
jwtSecretFile = "/run/agenix/authelia_jwt_secret";
|
||||||
|
storageEncryptionKeyFile = "/run/agenix/authelia_storage_encryption_key";
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
theme = "auto";
|
||||||
|
server.port = servicePort;
|
||||||
|
|
||||||
|
session.domain = domain;
|
||||||
|
default_redirection_url = "https://home.gssws.de/";
|
||||||
|
|
||||||
|
access_control.default_policy = "two_factor";
|
||||||
|
|
||||||
|
authentication_backend = {
|
||||||
|
password_reset.disable = false;
|
||||||
|
file = {
|
||||||
|
path = "/run/agenix/authelia_users";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
storage.local.path = "/var/lib/authelia-gssws/db.sqlite3";
|
||||||
|
|
||||||
|
totp = {
|
||||||
|
issuer = "auth.gssws.de";
|
||||||
|
algorithm = "SHA512";
|
||||||
|
digits = 8;
|
||||||
|
};
|
||||||
|
|
||||||
|
webauthn = {
|
||||||
|
display_name = "auth.gssws.de";
|
||||||
|
};
|
||||||
|
|
||||||
|
notifier.smtp = {
|
||||||
|
address = "smtp://mail.gssws.de:25";
|
||||||
|
sender = "Authelia <authelia@gssws.de>";
|
||||||
|
identifier = "auth.gssws.de";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.05";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -23,6 +23,8 @@
|
||||||
|
|
||||||
./libvirt-container.nix
|
./libvirt-container.nix
|
||||||
./monitoring.nix
|
./monitoring.nix
|
||||||
|
|
||||||
|
./authelia.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.loader.systemd-boot.enable = lib.mkForce false;
|
boot.loader.systemd-boot.enable = lib.mkForce false;
|
||||||
|
|
15
secrets/chonk_authelia_jwt_secret.age
Normal file
15
secrets/chonk_authelia_jwt_secret.age
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 hPyiJw Apw//H4a37XD/Ahc2H6sMgJoM0VQ8RWyNIq56yEm+no
|
||||||
|
BNUgGmTl9JIbreob+8AbQA5wxpdW7WygDI92niy1jgQ
|
||||||
|
-> ssh-ed25519 YFSOsg ASLv+TOx0DWmbNXSS3HUKS5puniN1w0FMrmMun4/2Xs
|
||||||
|
W+/rf6VjlutzLfEFuukc12k9Gz2qMtO1dM16NIWyCUw
|
||||||
|
-> ssh-ed25519 iHV63A gOWG5xpmZkOsbJwtA/LizsKTCPBlaYgUhzv6dS3GikU
|
||||||
|
Jc8nEl5qGWwqQbucqy2AY1DWEwj7605OlTgtgqSOe2g
|
||||||
|
-> ssh-ed25519 Oya/Zw JiLOj7SedW6XSY+XFrXf6Q4A0BCQ34Kjdara9LongzI
|
||||||
|
mjxxUFLYHnTFtCWLVZpiHDDTSBR/uhz9hB4d741mahc
|
||||||
|
-> @wmC-grease l~lJ rW HpVY S|
|
||||||
|
6KfyYCevSvxvlGf4Ts/hB1JS5V2lG077PrgoVBlx5sLjeCRr2KF5dThtRfoeVTZV
|
||||||
|
BGJ5
|
||||||
|
--- R2Kjwn9GDi6oTDWE5SvGnPz/0RNHRwm6FuSB166gbTk
|
||||||
|
lŒJU3ª´Ì{©«É XgG¬z<C2AC>ùó-È’°T®Ó^LX-7U%Ï7H>"44ºå]¦„>Œ?i<>
|
||||||
|
³Æ¹2/¡Ð¦
|
15
secrets/chonk_authelia_storage_encryption_key.age
Normal file
15
secrets/chonk_authelia_storage_encryption_key.age
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 hPyiJw BKaJOaemFofcTtYVUXTMApzwEd42LdRA2vRmXCKpxwQ
|
||||||
|
QXOGSdJoJEbtUK+G+TFY5AKCo1TgWuy2qnRu6zbymJQ
|
||||||
|
-> ssh-ed25519 YFSOsg UJcVYMY7iS5QlW6nfdLnK5a7wAdpygYtZhPBiuwx8FQ
|
||||||
|
Ubhix1fkykeOD6U0ytKSMHdsjbmY0Mtc07zBLFl9uvE
|
||||||
|
-> ssh-ed25519 iHV63A d2+m6Ryo5TkgJ1uNvoIZk9qHUQWkGJ1Dv5SX21inQUw
|
||||||
|
/JP9RcaA+Hu3UsHhhZuF2mBOTpcCG5Mfa98mNxWmD1s
|
||||||
|
-> ssh-ed25519 Oya/Zw 5DsVfU4lP7BhBRc4AAhHdc1flHULF9AQgH0i7mv00h4
|
||||||
|
Ba7poebUMFXd8Jl8rHWqivxDC6aQhhZy7/14ynRHk6U
|
||||||
|
-> &qpx-grease v}*
|
||||||
|
NRFo9WSsLJZjKaA/hGI88QQjJxBX8enh99hsF8lgZPO4Cd8x1qsWhseO2vBHBHGa
|
||||||
|
|
||||||
|
--- Xjb/GVPQNCC9+3X3rue8nBToJipoEJb4O/ixjpOrBsg
|
||||||
|
ä&ñ(Ã;
9™6ÒQ"1w#¡nøº[×GX.
|
||||||
|
î!;µù=4‹+Yà¬×ÄRSnq<6E>]‚ŽÕãz#ÉFòCàÃ
|
14
secrets/chonk_authelia_users.age
Normal file
14
secrets/chonk_authelia_users.age
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 hPyiJw seAHnMdOhbSvm2EmyY6rf9i0rfApCHTAKHVnpGSNvzI
|
||||||
|
PzY8+xJCIemo42mUFgt/0Zep7tiNpgwOyb8fAJVKB/s
|
||||||
|
-> ssh-ed25519 YFSOsg doaGH3q9/oHUfXjnuhY5zg+h0eWdw1qDP8XntmVy2Ac
|
||||||
|
4eEvBcoWIqJJWC2fy5lQv+dCpFnbVtBBdzLg5Ftjf6A
|
||||||
|
-> ssh-ed25519 iHV63A LNjKmQl/+9sZgv1a60+L3peU7LMSufmIOeZqaHDVji8
|
||||||
|
Gzvb3Bd8EAHqDDxc8cruTKHE0+uyek4UP8UH2QbnedA
|
||||||
|
-> ssh-ed25519 Oya/Zw NzA3tUU554imIollIvRKhphlrbq4y9x6Q4EVQEes8ls
|
||||||
|
qpY+Vb6EKmhh45SdJsDlWlIDzWKSj1P5yrme4pmn63A
|
||||||
|
-> R"^mQ-grease
|
||||||
|
Q/i8Ht0+HG1Ekuy9kpjLmRXWEBDUtBX3ldS6+ME
|
||||||
|
--- vz5tu+PqfzucpQXuSTZoIE1b9NodOPsBqh8VSDzW0to
|
||||||
|
@¸z¼å¹ûfJ}_ïì¢MÍÅ£ž!Sôè’
Õüøäõš€‰*wR[å-µ±*üyŠÒØçʾ† Õ’Bȉ
|
||||||
|
^1vÆ€W=¯§‚O‹FµFY
å_LLF<5c5cýot£„À5\lÇOclbál¾¡àî3ñšˆ{1\ãT§¤è*ÆCÃŽ<C383>R¹z<™x<E284A2>‡©’\ˆÚ<CB86>4M™ÝÇ׳ev7îBÍ'vÒt°-ý¿Zš“•_ŸY{A³¡—<C2A1>øé›ðu‚éÐŒô¾&ïU£~ì±3Lq(w‰Îø:<3A>SŽ!ŦÔûÿ±ÇÚà<03>Y 1º…[;60Ö.:ù·]*óüæ!
|
|
@ -54,6 +54,9 @@ in {
|
||||||
"chonk_restic_nextcloud_password.age".publicKeys = users ++ [system_chonk];
|
"chonk_restic_nextcloud_password.age".publicKeys = users ++ [system_chonk];
|
||||||
"chonk_nix_builder_private_key.age".publicKeys = users ++ [system_chonk];
|
"chonk_nix_builder_private_key.age".publicKeys = users ++ [system_chonk];
|
||||||
"chonk_invidious_db_password.age".publicKeys = users ++ [system_chonk];
|
"chonk_invidious_db_password.age".publicKeys = users ++ [system_chonk];
|
||||||
|
"chonk_authelia_users.age".publicKeys = users ++ [system_chonk];
|
||||||
|
"chonk_authelia_storage_encryption_key.age".publicKeys = users ++ [system_chonk];
|
||||||
|
"chonk_authelia_jwt_secret.age".publicKeys = users ++ [system_chonk];
|
||||||
|
|
||||||
"home_controller_ringo_wireguard_key.age".publicKeys = users ++ [system_ringo];
|
"home_controller_ringo_wireguard_key.age".publicKeys = users ++ [system_ringo];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue