{ 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; 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" ]; }; }