all repos — nixfiles @ 21dbbf8b280beb2f3f2d8fa6cc38d3e8412f643a

System and user configuration, managed by nix and home-manager

system/roles/redis-website.nix (view raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{
  config,
  ...
}:
let
  domain = config.networking.domain;
in
{
  age.secrets.redis-website.file = ../../secrets/redis-website.age;

  networking.firewall.allowedTCPPorts = [ 6379 ];

  services.redis = {
    servers = {
      website = {
        enable = true;
        port = 0;
        bind = null;
        databases = 2;
        maxclients = 20;
        requirePassFile = config.age.secrets.redis-website.path;
        settings = {
          notify-keyspace-events = "KEA";
          tls-port = 6379;
          tls-cert-file = "/var/lib/acme/redis.${domain}/cert.pem";
          tls-key-file = "/var/lib/acme/redis.${domain}/key.pem";
          tls-ca-cert-file = "/etc/ssl/certs/ca-certificates.crt";
          tls-auth-clients = false;
        };
      };
    };
  };

  security.acme.certs."redis.${domain}" = {
    group = "redis-website";
    reloadServices = [ "redis-website" ];
  };
}