diff --git a/dns/default_records.js b/dns/default_records.js
index f9cf54b..e4ad5e3 100644
--- a/dns/default_records.js
+++ b/dns/default_records.js
@@ -12,7 +12,7 @@ function mx_default(dkim) {
 		TXT("_dmarc", "v=DMARC1; p=quarantine; rua=mailto:dmarcreports@serguzim.me; ruf=mailto:dmarcreports@serguzim.me; rf=afrf; sp=quarantine; fo=1; pct=100; ri=604800; adkim=r; aspf=r"),
 		TXT("dkim._domainkey", "v=DKIM1; k=rsa; t=s; s=email; p=" + dkim),
 
-		TLSA("_25._tcp", 3, 1, 1, "e66a608a3ec459bda7fb1f2d500b8abeb78f2910f26641204b6bc454b8aa2a49"),
+		TLSA("_25._tcp", 3, 1, 1, "70143145ab67680a3b61fe2d0eb63319625fa086f845cce59afdbf1dad79e561"),
 
 		MX("@", 10, "mail.serguzim.me."),
 		MX("*", 10, "mail.serguzim.me."),
diff --git a/dns/functions.js b/dns/functions.js
index a8efc14..52922cb 100644
--- a/dns/functions.js
+++ b/dns/functions.js
@@ -1,11 +1,12 @@
-function service(target, domain, host, alias) {
+function service(target, domain, host, alias, vpn) {
 	return {
 		target: target,
 		domain: domain,
 		host: hosts[host],
 		alias: alias,
+		vpn: vpn,
 		record: function() {
-			return my_host_record(this.target, this.resolve_host());
+			return my_host_record(this.target, this.resolve_host(), this.vpn);
 		},
 		resolve_host: function() {
 			if (this.alias) {
@@ -27,18 +28,18 @@ function collect_services(domain) {
 	return result;
 }
 
-function my_host_record(target, host) {
-	switch (target) {
-		case "db":
-			return [
-				A(target, host.ipv4_address_vpn),
-				AAAA(target, host.ipv6_address_vpn)
-			];
-		default:
-			return [
-				A(target, host.ipv4_address),
-				AAAA(target, host.ipv6_address)
-			];
+function my_host_record(target, host, vpn) {
+	if (vpn) {
+		return [
+			A(target, host.ipv4_address_vpn),
+			AAAA(target, host.ipv6_address_vpn)
+		];
+	}
+	else {
+		return [
+			A(target, host.ipv4_address),
+			AAAA(target, host.ipv6_address)
+		];
 	}
 }
 
diff --git a/dnsconfig.js b/dnsconfig.js
index 427fc85..6d8ece0 100644
--- a/dnsconfig.js
+++ b/dnsconfig.js
@@ -15,7 +15,7 @@ var DSP_OVH = NewDnsProvider("ovh");
 var services = {};
 for (var key in services_json) {
 	var s = services_json[key];
-	services[key] = service(s.target, s.domain, s.host, s.alias);
+	services[key] = service(s.target, s.domain, s.host, s.alias, s.vpn);
 }
 
 
@@ -61,11 +61,13 @@ D("serguzim.me", REG_OVH, DnsProvider(DSP_OVH),
 	all_defaults("serguzim.me", true),
 	TXT("direct", "v=spf1 mx -all"),
 
-	TLSA("_25._tcp.mail", 3, 1, 1, "e66a608a3ec459bda7fb1f2d500b8abeb78f2910f26641204b6bc454b8aa2a49"),
+	TLSA("_25._tcp.mail", 3, 1, 1, "70143145ab67680a3b61fe2d0eb63319625fa086f845cce59afdbf1dad79e561"),
 
 	acme_challenge("auth", "18a42983-3d19-4c17-8213-fc275a8be721"),
 	acme_challenge("db", "ca2c86c0-ff3d-458a-89e0-11bcfd2543e4"),
 	acme_challenge("paas", "92924f7c-0859-4941-9e3d-2ecedfb21c1b"),
+	acme_challenge("alloy", "92924f7c-0859-4941-9e3d-2ecedfb21c1b"),
+	acme_challenge("mimir", "92924f7c-0859-4941-9e3d-2ecedfb21c1b"),
 
 	verify_amazon_ses(dkim_ses["serguzim.me"]),
 
diff --git a/playbooks/filter_plugins/service_filters.py b/playbooks/filter_plugins/service_filters.py
index 91d6700..d55c5bd 100644
--- a/playbooks/filter_plugins/service_filters.py
+++ b/playbooks/filter_plugins/service_filters.py
@@ -71,6 +71,7 @@ class FilterModule(object):
                 result[name] = {
                     "target": ".".join(target_parts),
                     "domain": ".".join(domain_parts[-2:]),
+                    "vpn": dns.get("vpn", False),
                 }
                
                 if dns.get("alias"):
diff --git a/services.auto.tfvars b/services.auto.tfvars
index 69b4b94..be7a9d8 100644
--- a/services.auto.tfvars
+++ b/services.auto.tfvars
@@ -502,6 +502,7 @@ services = {
     host = "node001"
     dns = [{
       domain = "db.serguzim.me"
+      vpn = true
     }]
     backup = [{
       name = "postgresql"
diff --git a/variables.tf b/variables.tf
index a28d5af..4224771 100644
--- a/variables.tf
+++ b/variables.tf
@@ -139,6 +139,7 @@ variable "services" {
       domain = string
       name = optional(string)
       alias = optional(string)
+      vpn = optional(bool)
     })))
     backup = optional(list(object({
       name = string