Unverified Commit a05afb14 authored by Izorkin's avatar Izorkin
Browse files

nixos/mastodon: update redis host and port configurations

parent 3cf52f6b
Loading
Loading
Loading
Loading
+26 −6
Original line number Diff line number Diff line
@@ -20,8 +20,6 @@ let

    DB_USER = cfg.database.user;

    REDIS_HOST = cfg.redis.host;
    REDIS_PORT = toString(cfg.redis.port);
    DB_HOST = cfg.database.host;
    DB_NAME = cfg.database.name;
    LOCAL_DOMAIN = cfg.localDomain;
@@ -34,6 +32,8 @@ let

    TRUSTED_PROXY_IP = cfg.trustedProxy;
  }
  // lib.optionalAttrs (cfg.redis.host != null) { REDIS_HOST = cfg.redis.host; }
  // lib.optionalAttrs (cfg.redis.port != null) { REDIS_PORT = toString(cfg.redis.port); }
  // lib.optionalAttrs (cfg.redis.createLocally && cfg.redis.enableUnixSocket) { REDIS_URL = "unix://${config.services.redis.servers.mastodon.unixSocket}"; }
  // lib.optionalAttrs (cfg.database.host != "/run/postgresql" && cfg.database.port != null) { DB_PORT = toString cfg.database.port; }
  // lib.optionalAttrs cfg.smtp.authenticate { SMTP_LOGIN  = cfg.smtp.user; }
@@ -401,14 +401,20 @@ in {

        host = lib.mkOption {
          description = "Redis host.";
          type = lib.types.str;
          default = "127.0.0.1";
          type = lib.types.nullOr lib.types.str;
          default = if cfg.redis.createLocally && !cfg.redis.enableUnixSocket then "127.0.0.1" else null;
          defaultText = lib.literalExpression ''
            if config.${opt.redis.createLocally} && !config.${opt.redis.enableUnixSocket} then "127.0.0.1" else null
          '';
        };

        port = lib.mkOption {
          description = "Redis port.";
          type = lib.types.port;
          default = 31637;
          type = lib.types.nullOr lib.types.port;
          default = if cfg.redis.createLocally && !cfg.redis.enableUnixSocket then 31637 else null;
          defaultText = lib.literalExpression ''
            if config.${opt.redis.createLocally} && !config.${opt.redis.enableUnixSocket} then 31637 else null
          '';
        };

        passwordFile = lib.mkOption {
@@ -631,6 +637,20 @@ in {

  config = lib.mkIf cfg.enable (lib.mkMerge [{
    assertions = [
      {
        assertion = !redisActuallyCreateLocally -> (cfg.redis.host != "127.0.0.1" && cfg.redis.port != null);
        message = ''
          `services.mastodon.redis.host` and `services.mastodon.redis.port` need to be set if
            `services.mastodon.redis.createLocally` is not enabled.
        '';
      }
      {
        assertion = redisActuallyCreateLocally -> (!cfg.redis.enableUnixSocket || (cfg.redis.host == null && cfg.redis.port == null));
        message = ''
          `services.mastodon.redis.enableUnixSocket` needs to be disabled if
            `services.mastodon.redis.host` and `services.mastodon.redis.port` is used.
        '';
      }
      {
        assertion = redisActuallyCreateLocally -> (!cfg.redis.enableUnixSocket || cfg.redis.passwordFile == null);
        message = ''