kore / nixos / roles / web.nix37 lines · 847B · raw
1{ config, pkgs, ... }:
2
3let
4 inherit (config.networking) domain;
5 admin = builtins.head config.kore.currentHost.users;
6in {
7 security.acme = {
8 acceptTerms = true;
9 defaults.email = config.kore.identities.${admin}.email;
10 };
11
12 services.nginx = {
13 enable = true;
14
15 recommendedTlsSettings = true;
16 recommendedOptimisation = true;
17 recommendedGzipSettings = true;
18 recommendedProxySettings = true;
19
20 virtualHosts.${domain} = {
21 enableACME = true;
22 forceSSL = true;
23
24 root = pkgs.writeTextDir "index.html" ''
25 <!doctype html>
26 <html lang="en">
27 <meta charset="utf-8">
28 <title>${domain}</title>
29 <p>soon</p>
30 </html>
31 '';
32 };
33 };
34
35 networking.firewall.allowedTCPPorts = [ 80 443 ];
36 environment.persistence."/persist".directories = [ "/var/lib/acme" ];
37}