authentik
This commit is contained in:
parent
151180b02f
commit
f6d88dc51f
8 changed files with 143 additions and 17 deletions
70
hosts/ds9/authentik.nix
Normal file
70
hosts/ds9/authentik.nix
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
{ pkgs, config, lib, inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.quadlet-nix.nixosModules.quadlet
|
||||
];
|
||||
ragon.agenix.secrets.ds9AuthentikEnv = { };
|
||||
virtualisation.quadlet =
|
||||
{
|
||||
containers = {
|
||||
authentik-server.containerConfig.image = "ghcr.io/goauthentik/server:2024.12.3";
|
||||
|
||||
authentik-server.containerConfig.exec = "server";
|
||||
authentik-server.containerConfig.networks = [
|
||||
"podman"
|
||||
"db-net"
|
||||
"authentik-net"
|
||||
];
|
||||
authentik-server.containerConfig.volumes = [
|
||||
"authentik-media:/media"
|
||||
"authentik-certs:/certs"
|
||||
];
|
||||
authentik-server.containerConfig.environments = {
|
||||
AUTHENTIK_REDIS__HOST = "authentik-redis";
|
||||
AUTHENTIK_POSTGRESQL__HOST = "postgres";
|
||||
AUTHENTIK_POSTGRESQL__USER = "authentik";
|
||||
AUTHENTIK_POSTGRESQL__NAME = "authentik";
|
||||
|
||||
};
|
||||
authentik-server.serviceConfig.TimeoutStartSec = "60";
|
||||
authentik-server.containerConfig.environmentFiles = [
|
||||
config.age.secrets.ds9AuthentikEnv.path
|
||||
];
|
||||
authentik-worker.containerConfig.image = "ghcr.io/goauthentik/server:2024.12.3";
|
||||
|
||||
authentik-worker.containerConfig.exec = "worker";
|
||||
authentik-worker.containerConfig.networks = [
|
||||
"podman"
|
||||
"db-net"
|
||||
"authentik-net"
|
||||
];
|
||||
authentik-worker.containerConfig.volumes = [
|
||||
"authentik-media:/media"
|
||||
"authentik-certs:/certs"
|
||||
];
|
||||
authentik-worker.containerConfig.environments = {
|
||||
AUTHENTIK_REDIS__HOST = "authentik-redis";
|
||||
AUTHENTIK_POSTGRESQL__HOST = "postgres";
|
||||
AUTHENTIK_POSTGRESQL__USER = "authentik";
|
||||
AUTHENTIK_POSTGRESQL__NAME = "authentik";
|
||||
|
||||
};
|
||||
authentik-worker.containerConfig.environmentFiles = [
|
||||
config.age.secrets.ds9AuthentikEnv.path
|
||||
];
|
||||
authentik-worker.serviceConfig.TimeoutStartSec = "60";
|
||||
authentik-redis.containerConfig.image = "docker.io/library/redis:alpine";
|
||||
authentik-redis.containerConfig.networks = [
|
||||
"authentik-net"
|
||||
|
||||
];
|
||||
authentik-redis.containerConfig.volumes = [ "authentik-redis:/data" ];
|
||||
authentik-redis.serviceConfig.TimeoutStartSec = "60";
|
||||
};
|
||||
networks = {
|
||||
authentik.networkConfig.ipv6 = true;
|
||||
authentik.networkConfig.name = "authentik-net";
|
||||
authentik.networkConfig.internal = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -22,6 +22,7 @@ let
|
|||
'';
|
||||
in
|
||||
{
|
||||
imports = [ ./authentik.nix ];
|
||||
networking.firewall.interfaces."podman+".allowedUDPPorts = [ 53 ];
|
||||
networking.firewall.interfaces."podman+".allowedTCPPorts = [ 12300 3001 ];
|
||||
fileSystems."/var/lib/containers" = {
|
||||
|
|
|
|||
|
|
@ -176,6 +176,14 @@ in
|
|||
handle @jellyfin {
|
||||
import podmanRedir http://jellyfin:8096
|
||||
}
|
||||
@auth host auth.hailsatan.eu
|
||||
handle @auth {
|
||||
import podmanRedir http://authentik-server:9000
|
||||
}
|
||||
handle {
|
||||
abort
|
||||
}
|
||||
|
||||
'';
|
||||
virtualHosts."*.hailsatan.eu".extraConfig = ''
|
||||
import blockBots
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue