{ config, lib, ... }: let cfg = config.homelab.apps.bind9; in { options.homelab.apps.bind9.enable = lib.mkEnableOption "ISC BIND 9 (Docker)"; config = lib.mkIf cfg.enable { homelab.virtualisation.containers.enable = true; environment.etc = { "bind/named.conf" = { source = ./named.conf; mode = "0555"; }; "bind/named.conf.options" = { source = ./named.conf.options; mode = "0555"; }; "bind/named.conf.local" = { source = ./named.conf.local; mode = "0555"; }; "bind/zones/db.depeuter.dev" = { source = ./db.depeuter.dev; mode = "0555"; }; }; virtualisation.oci-containers.containers.bind9 = { hostname = "bind9"; #image = "internetsystemsconsortium/bind9:9.20"; # Current stable image = "ubuntu/bind9"; # Current stable autoStart = true; ports = [ "53:53/udp" "53:53/tcp" "953:953/tcp" ]; extraOptions = [ ]; environment = { }; volumes = [ "/etc/bind:/etc/bind" # For configuration, your `named.conf` lives here "bind9-cache:/var/cache/bind" #"...:/var/lib/bind" # Secondary zones "bind9-logs:/var/log" # Logfiles ]; labels = { }; }; }; }