2025-02-06 09:17:36 -06:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
with lib; let
|
|
|
|
cfg = config.custom.containers.adguardhome;
|
|
|
|
in {
|
|
|
|
options = {
|
|
|
|
custom.containers.adguardhome.enable = mkOption {default = false;};
|
|
|
|
};
|
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
#?? arion-adguardhome pull
|
|
|
|
environment.shellAliases.arion-adguardhome = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.adguardhome.settings.out.dockerComposeYaml}";
|
|
|
|
|
|
|
|
virtualisation.arion.projects.adguardhome.settings.services = {
|
|
|
|
# https://github.com/AdguardTeam/AdGuardHome
|
|
|
|
# https://adguard-dns.io/kb/adguard-home/overview/
|
2025-02-06 20:42:34 -06:00
|
|
|
#?? ls /var/lib/caddy/.local/share/caddy/certificates/*
|
2025-02-06 09:17:36 -06:00
|
|
|
adguardhome.service = {
|
|
|
|
container_name = "adguardhome";
|
|
|
|
image = "adguard/adguardhome:v0.107.56";
|
|
|
|
|
|
|
|
ports = [
|
2025-02-06 20:42:34 -06:00
|
|
|
"53:53/tcp" # DNS
|
|
|
|
"53:53/udp" # DNS
|
|
|
|
"853:853/tcp" # DNS-over-TLS
|
|
|
|
"853:853/udp" # DNS-over-QUIC
|
|
|
|
"3003:80/tcp" # Admin panel
|
|
|
|
"8443:443/tcp" # DNS-over-HTTPS
|
2025-02-06 09:17:36 -06:00
|
|
|
];
|
|
|
|
|
|
|
|
restart = "unless-stopped";
|
|
|
|
|
|
|
|
volumes = [
|
|
|
|
"${config.custom.containers.directory}/adguardhome/config:/opt/adguardhome/conf"
|
|
|
|
"${config.custom.containers.directory}/adguardhome/data:/opt/adguardhome/data"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
# https://github.com/AdguardTeam/AdGuardHome/wiki/Encryption
|
|
|
|
networking.firewall = {
|
|
|
|
allowedTCPPorts = [
|
2025-02-06 20:42:34 -06:00
|
|
|
53 # DNS
|
2025-02-06 09:17:36 -06:00
|
|
|
853 # DNS-over-TLS
|
|
|
|
];
|
|
|
|
|
|
|
|
allowedUDPPorts = [
|
|
|
|
53 # DNS
|
2025-02-06 20:42:34 -06:00
|
|
|
853 # DNS-over-QUIC
|
2025-02-06 09:17:36 -06:00
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
# https://adguard-dns.io/kb/adguard-home/faq/#bindinuse
|
|
|
|
services.resolved.extraConfig = ''
|
|
|
|
DNSStubListener=false
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
}
|