feat: add groups to authentik apps + add mail base
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s

This commit is contained in:
Xavier Morel
2026-06-12 21:36:07 +02:00
parent 1ca2c038e8
commit ab98aeb897
19 changed files with 70 additions and 2 deletions
+1
View File
@@ -19,5 +19,6 @@
dns = 1042; dns = 1042;
z2m = 1016; z2m = 1016;
papers = 1032; papers = 1032;
mail = 1033;
}; };
} }
+1
View File
@@ -36,6 +36,7 @@
}; };
private = true; private = true;
auth = true; auth = true;
group = "Système";
description = "Base de données PostgreSQL."; description = "Base de données PostgreSQL.";
icon = "https://wiki.postgresql.org/images/3/30/PostgreSQL_logo.3colors.120x120.png"; icon = "https://wiki.postgresql.org/images/3/30/PostgreSQL_logo.3colors.120x120.png";
otherDomains = [ otherDomains = [
+1
View File
@@ -35,6 +35,7 @@
}; };
private = true; private = true;
auth = true; auth = true;
group = "Système";
description = "Serveur DNS & DHCP fourni par AdGuardHome & Unbound."; description = "Serveur DNS & DHCP fourni par AdGuardHome & Unbound.";
icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/adguard-home.png"; icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/adguard-home.png";
}; };
+1
View File
@@ -37,6 +37,7 @@ in
}; };
private = true; private = true;
auth = true; auth = true;
group = "Outils";
description = "Suivi des finances via Firefly-III."; description = "Suivi des finances via Firefly-III.";
icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/firefly-iii.png"; icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/firefly-iii.png";
}; };
+1
View File
@@ -6,6 +6,7 @@
memory = 2048; memory = 2048;
disk = "15G"; disk = "15G";
swap = 1024; swap = 1024;
onboot = false;
}; };
system = { system = {
port = 80; port = 80;
+34
View File
@@ -0,0 +1,34 @@
{ ... }:
let
db_pass = import ../config/_passwords.nix;
in
{
my-lxc.mail = {
container = {
cores = 1;
memory = 512;
disk = "4G";
swap = 512;
};
system = {
port = 80;
additionalPorts = [
25 # smtp
465 # smtps
];
services.postfix = {
enable = true;
enableSubmission = true;
enableSubmissions = true;
mailname = "mail.m0rel.eu";
domain = "plg.m0rel.eu";
};
};
logging = {
enable = true;
metricsEnable = true;
};
private = true; # available only on private lan
auth = false; # auth overlay
};
}
+1
View File
@@ -29,6 +29,7 @@ in
}; };
private = true; private = true;
auth = false; auth = false;
group = "Médias";
description = "Serveur média avec Jellyfin / jellyseer (?)."; description = "Serveur média avec Jellyfin / jellyseer (?).";
icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/jellyfin.png"; icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/jellyfin.png";
}; };
+1
View File
@@ -22,6 +22,7 @@
}; };
private = true; private = true;
auth = true; # unused anyway auth = true; # unused anyway
group = "Système";
description = "Serveur de métriques fourni par Prometheus."; description = "Serveur de métriques fourni par Prometheus.";
icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/prometheus.png"; icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/prometheus.png";
}; };
+1
View File
@@ -31,6 +31,7 @@ in
}; };
private = true; private = true;
auth = true; auth = true;
group = "Système";
description = "Interface de monitoring via Grafana."; description = "Interface de monitoring via Grafana.";
icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/grafana.png"; icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/grafana.png";
}; };
+1
View File
@@ -46,6 +46,7 @@ in
private = true; # available only on private lan private = true; # available only on private lan
auth = true; # auth overlay auth = true; # auth overlay
description = "Serveur MQTT"; description = "Serveur MQTT";
group = "Système";
icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/mqtt.png"; icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/mqtt.png";
}; };
} }
+1
View File
@@ -26,6 +26,7 @@ in
}; };
private = true; private = true;
auth = true; auth = true;
group = "Outils";
icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/paperless-ngx.png"; icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/paperless-ngx.png";
}; };
+2
View File
@@ -7,6 +7,7 @@
memory = 512; memory = 512;
disk = "5G"; disk = "5G";
swap = 512; swap = 512;
onboot = false;
}; };
system = { system = {
port = 80; port = 80;
@@ -20,6 +21,7 @@
}; };
private = true; private = true;
auth = true; auth = true;
group = "Système";
icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/ups.png"; icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/ups.png";
}; };
+1
View File
@@ -50,6 +50,7 @@
}; };
private = true; private = true;
auth = true; auth = true;
group = "Système";
icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/traefik.png"; icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/traefik.png";
}; };
+1
View File
@@ -62,5 +62,6 @@ in
port = 9696; port = 9696;
} }
]; ];
group = "Médias";
}; };
} }
+2
View File
@@ -6,6 +6,7 @@
memory = 512; memory = 512;
disk = "6G"; disk = "6G";
swap = 512; swap = 512;
onboot = false;
}; };
system = { system = {
additionalPorts = [ 80 ]; additionalPorts = [ 80 ];
@@ -19,6 +20,7 @@
}; };
private = true; # available only on private lan private = true; # available only on private lan
auth = true; # auth overlay auth = true; # auth overlay
group = "Système";
icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/zigbee2mqtt-light.png"; icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/zigbee2mqtt-light.png";
}; };
} }
@@ -35,6 +35,7 @@ in
protocol_provider = "\${resource.authentik_provider_proxy.${containerName}.id}"; protocol_provider = "\${resource.authentik_provider_proxy.${containerName}.id}";
meta_description = def.description; meta_description = def.description;
meta_icon = def.icon; meta_icon = def.icon;
group = def.group;
} }
) cfg ) cfg
) )
@@ -44,42 +45,49 @@ in
slug = "home_assistant"; slug = "home_assistant";
protocol_provider = "\${resource.authentik_provider_oauth2.home_assistant.id}"; protocol_provider = "\${resource.authentik_provider_oauth2.home_assistant.id}";
meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/home-assistant.png"; meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/home-assistant.png";
group = "Médias";
}; };
matrix = { matrix = {
name = "matrix"; name = "matrix";
slug = "matrix"; slug = "matrix";
protocol_provider = "\${resource.authentik_provider_oauth2.matrix.id}"; protocol_provider = "\${resource.authentik_provider_oauth2.matrix.id}";
meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/matrix-light.png"; meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/matrix-light.png";
group = "Outils";
}; };
vaultwarden = { vaultwarden = {
name = "vaultwarden"; name = "vaultwarden";
slug = "vaultwarden"; slug = "vaultwarden";
protocol_provider = "\${resource.authentik_provider_oauth2.vaultwarden.id}"; protocol_provider = "\${resource.authentik_provider_oauth2.vaultwarden.id}";
meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/vaultwarden-light.png"; meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/vaultwarden-light.png";
group = "Outils";
}; };
gitea = { gitea = {
name = "gitea"; name = "gitea";
slug = "gitea"; slug = "gitea";
protocol_provider = "\${resource.authentik_provider_oauth2.gitea.id}"; protocol_provider = "\${resource.authentik_provider_oauth2.gitea.id}";
meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/gitea.png"; meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/gitea.png";
group = "Outils";
}; };
nas = { nas = {
name = "nas"; name = "nas";
slug = "nas"; slug = "nas";
protocol_provider = "\${resource.authentik_provider_oauth2.nas.id}"; protocol_provider = "\${resource.authentik_provider_oauth2.nas.id}";
meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/synology-light.png"; meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/synology-light.png";
group = "Médias";
}; };
jellyfin = { jellyfin = {
name = "jellyfin"; name = "jellyfin";
slug = "jellyfin"; slug = "jellyfin";
protocol_provider = "\${resource.authentik_provider_oauth2.jellyfin.id}"; protocol_provider = "\${resource.authentik_provider_oauth2.jellyfin.id}";
meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/jellyfin.png"; meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/jellyfin.png";
group = "Médias";
}; };
proxmox = { proxmox = {
name = "proxmox"; name = "proxmox";
slug = "proxmox"; slug = "proxmox";
protocol_provider = "\${resource.authentik_provider_oauth2.proxmox.id}"; protocol_provider = "\${resource.authentik_provider_oauth2.proxmox.id}";
meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/proxmox-light.png"; meta_icon = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/proxmox-light.png";
group = "Système";
}; };
}; };
+1 -1
View File
@@ -30,7 +30,7 @@ in
type = "veth"; type = "veth";
}; };
protection = c.protection; protection = c.protection;
onboot = true; onboot = c.onboot;
rootfs = { rootfs = {
storage = "local-lvm"; storage = "local-lvm";
size = c.disk; size = c.disk;
+10
View File
@@ -65,6 +65,11 @@ in
description = "Overrides to the Proxmox LXC Terraform resource"; description = "Overrides to the Proxmox LXC Terraform resource";
default = { }; default = { };
}; };
onboot = mkOption {
type = bool;
default = true;
description = "Boot at Proxmox's startup";
};
protection = mkOption { protection = mkOption {
type = bool; type = bool;
description = "Whether container should be protected against changes."; description = "Whether container should be protected against changes.";
@@ -174,6 +179,11 @@ in
description = "Possible description for the service"; description = "Possible description for the service";
default = null; default = null;
}; };
group = mkOption {
type = nullOr str;
description = "Group for the service (on Authentik)";
default = null;
};
icon = mkOption { icon = mkOption {
type = nullOr str; type = nullOr str;
description = "URL for a logo for the service"; description = "URL for a logo for the service";
+1 -1
View File
@@ -3,7 +3,7 @@
terraform.required_providers = { terraform.required_providers = {
proxmox = { proxmox = {
source = "Telmate/proxmox"; source = "Telmate/proxmox";
version = "~> 2.9.11"; version = "= 3.0.2-rc07";
}; };
postgresql = { postgresql = {