Loading nixos/modules/services/web-apps/mastodon.nix +31 −2 Original line number Diff line number Diff line Loading @@ -30,13 +30,15 @@ let PAPERCLIP_ROOT_PATH = "/var/lib/mastodon/public-system"; PAPERCLIP_ROOT_URL = "/system"; ES_ENABLED = if (cfg.elasticsearch.host != null) then "true" else "false"; ES_HOST = cfg.elasticsearch.host; ES_PORT = toString(cfg.elasticsearch.port); TRUSTED_PROXY_IP = cfg.trustedProxy; } // 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; } // lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_HOST = cfg.elasticsearch.host; } // lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_PORT = toString(cfg.elasticsearch.port); } // lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_PRESET = cfg.elasticsearch.preset; } // lib.optionalAttrs (cfg.elasticsearch.user != null) { ES_USER = cfg.elasticsearch.user; } // cfg.extraConfig; systemCallsList = [ "@cpu-emulation" "@debug" "@keyring" "@ipc" "@mount" "@obsolete" "@privileged" "@setuid" ]; Loading Loading @@ -513,6 +515,31 @@ in { type = lib.types.port; default = 9200; }; preset = lib.mkOption { description = lib.mdDoc '' It controls the ElasticSearch indices configuration (number of shards and replica). ''; type = lib.types.enum [ "single_node_cluster" "small_cluster" "large_cluster" ]; default = "single_node_cluster"; example = "large_cluster"; }; user = lib.mkOption { description = lib.mdDoc "Used for optionally authenticating with Elasticsearch."; type = lib.types.nullOr lib.types.str; default = null; example = "elasticsearch-mastodon"; }; passwordFile = lib.mkOption { description = lib.mdDoc '' Path to file containing password for optionally authenticating with Elasticsearch. ''; type = lib.types.nullOr lib.types.path; default = null; example = "/var/lib/mastodon/secrets/elasticsearch-password"; }; }; package = lib.mkOption { Loading Loading @@ -665,6 +692,8 @@ in { DB_PASS="$(cat ${cfg.database.passwordFile})" '' + lib.optionalString cfg.smtp.authenticate '' SMTP_PASSWORD="$(cat ${cfg.smtp.passwordFile})" '' + lib.optionalString (cfg.elasticsearch.passwordFile != null) '' ES_PASS="$(cat ${cfg.elasticsearch.passwordFile})" '' + '' EOF ''; Loading Loading
nixos/modules/services/web-apps/mastodon.nix +31 −2 Original line number Diff line number Diff line Loading @@ -30,13 +30,15 @@ let PAPERCLIP_ROOT_PATH = "/var/lib/mastodon/public-system"; PAPERCLIP_ROOT_URL = "/system"; ES_ENABLED = if (cfg.elasticsearch.host != null) then "true" else "false"; ES_HOST = cfg.elasticsearch.host; ES_PORT = toString(cfg.elasticsearch.port); TRUSTED_PROXY_IP = cfg.trustedProxy; } // 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; } // lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_HOST = cfg.elasticsearch.host; } // lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_PORT = toString(cfg.elasticsearch.port); } // lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_PRESET = cfg.elasticsearch.preset; } // lib.optionalAttrs (cfg.elasticsearch.user != null) { ES_USER = cfg.elasticsearch.user; } // cfg.extraConfig; systemCallsList = [ "@cpu-emulation" "@debug" "@keyring" "@ipc" "@mount" "@obsolete" "@privileged" "@setuid" ]; Loading Loading @@ -513,6 +515,31 @@ in { type = lib.types.port; default = 9200; }; preset = lib.mkOption { description = lib.mdDoc '' It controls the ElasticSearch indices configuration (number of shards and replica). ''; type = lib.types.enum [ "single_node_cluster" "small_cluster" "large_cluster" ]; default = "single_node_cluster"; example = "large_cluster"; }; user = lib.mkOption { description = lib.mdDoc "Used for optionally authenticating with Elasticsearch."; type = lib.types.nullOr lib.types.str; default = null; example = "elasticsearch-mastodon"; }; passwordFile = lib.mkOption { description = lib.mdDoc '' Path to file containing password for optionally authenticating with Elasticsearch. ''; type = lib.types.nullOr lib.types.path; default = null; example = "/var/lib/mastodon/secrets/elasticsearch-password"; }; }; package = lib.mkOption { Loading Loading @@ -665,6 +692,8 @@ in { DB_PASS="$(cat ${cfg.database.passwordFile})" '' + lib.optionalString cfg.smtp.authenticate '' SMTP_PASSWORD="$(cat ${cfg.smtp.passwordFile})" '' + lib.optionalString (cfg.elasticsearch.passwordFile != null) '' ES_PASS="$(cat ${cfg.elasticsearch.passwordFile})" '' + '' EOF ''; Loading