diff options
-rw-r--r-- | hosts/surtr/dns/default.nix | 2 | ||||
-rw-r--r-- | hosts/surtr/dns/zones/li.synapse.soa | 6 | ||||
-rw-r--r-- | hosts/surtr/matrix/default.nix | 24 |
3 files changed, 30 insertions, 2 deletions
diff --git a/hosts/surtr/dns/default.nix b/hosts/surtr/dns/default.nix index 0a754a86..0115412c 100644 --- a/hosts/surtr/dns/default.nix +++ b/hosts/surtr/dns/default.nix | |||
@@ -171,7 +171,7 @@ in { | |||
171 | addACLs = { "xmpp.li" = ["ymir_acme_acl"]; }; | 171 | addACLs = { "xmpp.li" = ["ymir_acme_acl"]; }; |
172 | } | 172 | } |
173 | { domain = "synapse.li"; | 173 | { domain = "synapse.li"; |
174 | acmeDomains = ["element.synapse.li" "turn.synapse.li" "synapse.li"]; | 174 | acmeDomains = ["element.synapse.li" "turn.synapse.li" "admin.synapse.li" "synapse.li"]; |
175 | } | 175 | } |
176 | { domain = "dirty-haskell.org"; | 176 | { domain = "dirty-haskell.org"; |
177 | addACLs = { "dirty-haskell.org" = ["ymir_acme_acl"]; }; | 177 | addACLs = { "dirty-haskell.org" = ["ymir_acme_acl"]; }; |
diff --git a/hosts/surtr/dns/zones/li.synapse.soa b/hosts/surtr/dns/zones/li.synapse.soa index 44d4e22e..8991b8ea 100644 --- a/hosts/surtr/dns/zones/li.synapse.soa +++ b/hosts/surtr/dns/zones/li.synapse.soa | |||
@@ -1,7 +1,7 @@ | |||
1 | $ORIGIN synapse.li. | 1 | $ORIGIN synapse.li. |
2 | $TTL 3600 | 2 | $TTL 3600 |
3 | @ IN SOA ns.yggdrasil.li. root.yggdrasil.li. ( | 3 | @ IN SOA ns.yggdrasil.li. root.yggdrasil.li. ( |
4 | 2022022602 ; serial | 4 | 2022022700 ; serial |
5 | 10800 ; refresh | 5 | 10800 ; refresh |
6 | 3600 ; retry | 6 | 3600 ; retry |
7 | 604800 ; expire | 7 | 604800 ; expire |
@@ -27,6 +27,10 @@ element IN A 202.61.241.61 | |||
27 | element IN AAAA 2a03:4000:52:ada:: | 27 | element IN AAAA 2a03:4000:52:ada:: |
28 | _acme-challenge.element IN NS ns.yggdrasil.li. | 28 | _acme-challenge.element IN NS ns.yggdrasil.li. |
29 | 29 | ||
30 | admin IN A 202.61.241.61 | ||
31 | admin IN AAAA 2a03:4000:52:ada:: | ||
32 | _acme-challenge.admin IN NS ns.yggdrasil.li. | ||
33 | |||
30 | turn IN CAA 128 issue "letsencrypt.org; validationmethods=dns-01" | 34 | turn IN CAA 128 issue "letsencrypt.org; validationmethods=dns-01" |
31 | turn IN CAA 128 issue "sectigo.com; validationmethods=dns-01" | 35 | turn IN CAA 128 issue "sectigo.com; validationmethods=dns-01" |
32 | turn IN CAA 128 iodef "mailto:caa@yggdrasil.li" | 36 | turn IN CAA 128 iodef "mailto:caa@yggdrasil.li" |
diff --git a/hosts/surtr/matrix/default.nix b/hosts/surtr/matrix/default.nix index 01ea2aee..a5811612 100644 --- a/hosts/surtr/matrix/default.nix +++ b/hosts/surtr/matrix/default.nix | |||
@@ -138,6 +138,18 @@ | |||
138 | }; | 138 | }; |
139 | }; | 139 | }; |
140 | }; | 140 | }; |
141 | |||
142 | virtualHosts."admin.synapse.li" = { | ||
143 | forceSSL = true; | ||
144 | sslCertificate = "/run/credentials/nginx.service/admin.synapse.li.pem"; | ||
145 | sslCertificateKey = "/run/credentials/nginx.service/admin.synapse.li.key.pem"; | ||
146 | sslTrustedCertificate = "/run/credentials/nginx.service/admin.synapse.li.chain.pem"; | ||
147 | extraConfig = '' | ||
148 | add_header Strict-Transport-Security "max-age=63072000" always; | ||
149 | ''; | ||
150 | |||
151 | root = pkgs.synapse-admin; | ||
152 | }; | ||
141 | }; | 153 | }; |
142 | 154 | ||
143 | security.acme.domains = { | 155 | security.acme.domains = { |
@@ -149,6 +161,14 @@ | |||
149 | ''; | 161 | ''; |
150 | }; | 162 | }; |
151 | }; | 163 | }; |
164 | "admin.synapse.li" = { | ||
165 | zone = "synapse.li"; | ||
166 | certCfg = { | ||
167 | postRun = '' | ||
168 | ${pkgs.systemd}/bin/systemctl try-restart nginx.service | ||
169 | ''; | ||
170 | }; | ||
171 | }; | ||
152 | "turn.synapse.li" = { | 172 | "turn.synapse.li" = { |
153 | zone = "synapse.li"; | 173 | zone = "synapse.li"; |
154 | certCfg = { | 174 | certCfg = { |
@@ -178,6 +198,10 @@ | |||
178 | "element.synapse.li.key.pem:${config.security.acme.certs."element.synapse.li".directory}/key.pem" | 198 | "element.synapse.li.key.pem:${config.security.acme.certs."element.synapse.li".directory}/key.pem" |
179 | "element.synapse.li.pem:${config.security.acme.certs."element.synapse.li".directory}/fullchain.pem" | 199 | "element.synapse.li.pem:${config.security.acme.certs."element.synapse.li".directory}/fullchain.pem" |
180 | "element.synapse.li.chain.pem:${config.security.acme.certs."element.synapse.li".directory}/chain.pem" | 200 | "element.synapse.li.chain.pem:${config.security.acme.certs."element.synapse.li".directory}/chain.pem" |
201 | |||
202 | "admin.synapse.li.key.pem:${config.security.acme.certs."admin.synapse.li".directory}/key.pem" | ||
203 | "admin.synapse.li.pem:${config.security.acme.certs."admin.synapse.li".directory}/fullchain.pem" | ||
204 | "admin.synapse.li.chain.pem:${config.security.acme.certs."admin.synapse.li".directory}/chain.pem" | ||
181 | ]; | 205 | ]; |
182 | }; | 206 | }; |
183 | }; | 207 | }; |