wip: add authelia config
This commit is contained in:
parent
806b00f634
commit
495d54def8
106
sys/srv/authelia.nix
Normal file
106
sys/srv/authelia.nix
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; {
|
||||||
|
systemd.services.authelia.serviceConfig.LoadCredential = ["storageEncryptionKeyFile.txt:/var/trust/authelia/storageEncryptionKeyFile.csv" "jwtSecretFile.txt:/var/trust/authelia/jwtSecretFile.csv"];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
nginx = {
|
||||||
|
virtualHosts."auth.posixlycorrect.com" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
authelia.instances.main = {
|
||||||
|
enable = true;
|
||||||
|
# config based on https://github.com/authelia/authelia/blob/master/config.template.yml
|
||||||
|
settings = {
|
||||||
|
secrets = {
|
||||||
|
jwtSecretFile = "TODO:";
|
||||||
|
storageEncryptionKeyFile = "TODO:";
|
||||||
|
};
|
||||||
|
|
||||||
|
theme = "dark";
|
||||||
|
default_2fa_method = "totp";
|
||||||
|
server = {
|
||||||
|
disable_healthcheck = true;
|
||||||
|
port = 9091;
|
||||||
|
host = "localhost";
|
||||||
|
address = "tcp://:9091/";
|
||||||
|
};
|
||||||
|
# tls settings not modified https://github.com/authelia/authelia/blob/master/config.template.yml#L53
|
||||||
|
log = {
|
||||||
|
level = "info";
|
||||||
|
format = "text";
|
||||||
|
};
|
||||||
|
telemetry.enabled = false;
|
||||||
|
totp = {
|
||||||
|
disable = false;
|
||||||
|
issuer = "https://getaegis.app/ or whatever you prefer";
|
||||||
|
# default values assumed https://github.com/authelia/authelia/blob/master/config.template.yml#L181
|
||||||
|
};
|
||||||
|
webauthn = {
|
||||||
|
disable = false;
|
||||||
|
# default values assumed: https://github.com/authelia/authelia/blob/master/config.template.yml#L231
|
||||||
|
};
|
||||||
|
duo_api.disable = true;
|
||||||
|
# identity_validation default values assumed: https://github.com/authelia/authelia/blob/master/config.template.yml#L266
|
||||||
|
authentication_backend.file = {
|
||||||
|
path = "/var/trust/authelia/users_database.yml"; #TODO:
|
||||||
|
password.algorithm = "argon2";
|
||||||
|
password_policy.zxcvbn = {
|
||||||
|
enable = true;
|
||||||
|
min_score = 3;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
access_control = {
|
||||||
|
default_policy = "deny";
|
||||||
|
rules = [
|
||||||
|
{
|
||||||
|
domain = "meet.posixlycorrect.com";
|
||||||
|
policy = "bypass";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
session = {
|
||||||
|
cookies = {
|
||||||
|
name = "posixlycorrect_session";
|
||||||
|
domain = "auth.posixlycorrect.com";
|
||||||
|
authelia_url = "https://auth.posixlycorrect.com";
|
||||||
|
same_site = "lax";
|
||||||
|
|
||||||
|
# see https://github.com/authelia/authelia/blob/master/config.template.yml#L756
|
||||||
|
inactivity = "5 minutes";
|
||||||
|
expiration = "1 hour";
|
||||||
|
remember_me = "1 month";
|
||||||
|
};
|
||||||
|
|
||||||
|
# see https://github.com/authelia/authelia/blob/master/config.template.yml#L774
|
||||||
|
name = "authelia_session";
|
||||||
|
same_site = "lax";
|
||||||
|
inactivity = "5m";
|
||||||
|
expiration = "1h";
|
||||||
|
remember_me = "1M";
|
||||||
|
};
|
||||||
|
|
||||||
|
regulation = {
|
||||||
|
max_retries = 3;
|
||||||
|
find_time = "2 minutes";
|
||||||
|
ban_time = "5 minutes";
|
||||||
|
};
|
||||||
|
|
||||||
|
storage.local.path = "/var/trust/authelia/db.sqlite3"; #TODO:
|
||||||
|
|
||||||
|
# TODO:
|
||||||
|
#notifier.smtp = {
|
||||||
|
#
|
||||||
|
#};
|
||||||
|
|
||||||
|
# TODO: voy por acá: https://github.com/authelia/authelia/blob/master/config.template.yml#L714
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Reference in a new issue