summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/config.exs63
-rw-r--r--config/description.exs222
-rw-r--r--config/test.exs4
3 files changed, 245 insertions, 44 deletions
diff --git a/config/config.exs b/config/config.exs
index 9d8d43c54..d257865a9 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -172,7 +172,7 @@ config :mime, :types, %{
"application/ld+json" => ["activity+json"]
}
-config :tesla, adapter: Tesla.Adapter.Gun
+config :tesla, adapter: Tesla.Adapter.Hackney
# Configures http settings, upstream proxy etc.
config :pleroma, :http,
@@ -205,6 +205,7 @@ config :pleroma, :instance,
registrations_open: true,
invites_enabled: false,
account_activation_required: false,
+ account_approval_required: false,
federating: true,
federation_incoming_replies_max_depth: 100,
federation_reachability_timeout_days: 7,
@@ -225,8 +226,6 @@ config :pleroma, :instance,
autofollowed_nicknames: [],
max_pinned_statuses: 1,
attachment_links: false,
- welcome_user_nickname: nil,
- welcome_message: nil,
max_report_comment_size: 1000,
safe_dm_mentions: false,
healthcheck: false,
@@ -239,6 +238,7 @@ config :pleroma, :instance,
max_remote_account_fields: 20,
account_field_name_length: 512,
account_field_value_length: 2048,
+ registration_reason_length: 500,
external_user_synchronization: true,
extended_nickname_format: true,
cleanup_attachments: false,
@@ -252,6 +252,26 @@ config :pleroma, :instance,
number: 5,
length: 16
]
+ ],
+ show_reactions: true
+
+config :pleroma, :welcome,
+ direct_message: [
+ enabled: false,
+ sender_nickname: nil,
+ message: nil
+ ],
+ chat_message: [
+ enabled: false,
+ sender_nickname: nil,
+ message: nil
+ ],
+ email: [
+ enabled: false,
+ sender: nil,
+ subject: "Welcome to <%= instance_name %>",
+ html: "Welcome to <%= instance_name %>",
+ text: "Welcome to <%= instance_name %>"
]
config :pleroma, :feed,
@@ -359,6 +379,7 @@ config :pleroma, :mrf_simple,
federated_timeline_removal: [],
report_removal: [],
reject: [],
+ followers_only: [],
accept: [],
avatar_removal: [],
banner_removal: [],
@@ -377,8 +398,9 @@ config :pleroma, :mrf_vocabulary,
accept: [],
reject: []
+# threshold of 7 days
config :pleroma, :mrf_object_age,
- threshold: 172_800,
+ threshold: 604_800,
actions: [:delist, :strip_followers]
config :pleroma, :rich_media,
@@ -506,7 +528,8 @@ config :pleroma, Pleroma.User,
"user_exists",
"users",
"web"
- ]
+ ],
+ email_blacklist: []
config :pleroma, Oban,
repo: Pleroma.Repo,
@@ -539,16 +562,14 @@ config :pleroma, :workers,
federator_outgoing: 5
]
-config :auto_linker,
- opts: [
- extra: true,
- # TODO: Set to :no_scheme when it works properly
- validate_tld: true,
- class: false,
- strip_prefix: false,
- new_window: false,
- rel: "ugc"
- ]
+config :pleroma, Pleroma.Formatter,
+ class: false,
+ rel: "ugc",
+ new_window: false,
+ truncate: false,
+ strip_prefix: false,
+ extra: true,
+ validate_tld: :no_scheme
config :pleroma, :ldap,
enabled: System.get_env("LDAP_ENABLED") == "true",
@@ -647,6 +668,16 @@ config :pleroma, Pleroma.Plugs.RemoteIp, enabled: true
config :pleroma, :static_fe, enabled: false
+# Example of frontend configuration
+# This example will make us serve the primary frontend from the
+# frontends directory within your `:pleroma, :instance, static_dir`.
+# e.g., instance/static/frontends/pleroma/develop/
+#
+# With no frontend configuration, the bundled files from the `static` directory will
+# be used.
+#
+# config :pleroma, :frontends, primary: %{"name" => "pleroma", "ref" => "develop"}
+
config :pleroma, :web_cache_ttl,
activity_pub: nil,
activity_pub_question: 30_000
@@ -708,7 +739,7 @@ config :pleroma, :restrict_unauthenticated,
config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: false
config :pleroma, :mrf,
- policies: Pleroma.Web.ActivityPub.MRF.NoOpPolicy,
+ policies: Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy,
transparency: true,
transparency_exclusions: []
diff --git a/config/description.exs b/config/description.exs
index f1c6773f1..d823812fb 100644
--- a/config/description.exs
+++ b/config/description.exs
@@ -662,6 +662,11 @@ config :pleroma, :config_description, [
description: "Require users to confirm their emails before signing in"
},
%{
+ key: :account_approval_required,
+ type: :boolean,
+ description: "Require users to be manually approved by an admin before signing in"
+ },
+ %{
key: :federating,
type: :boolean,
description: "Enable federation with other instances"
@@ -779,23 +784,6 @@ config :pleroma, :config_description, [
description: "Enable to automatically add attachment link text to statuses"
},
%{
- key: :welcome_message,
- type: :string,
- description:
- "A message that will be sent to a newly registered users as a direct message",
- suggestions: [
- "Hi, @username! Welcome on board!"
- ]
- },
- %{
- key: :welcome_user_nickname,
- type: :string,
- description: "The nickname of the local user that sends the welcome message",
- suggestions: [
- "lain"
- ]
- },
- %{
key: :max_report_comment_size,
type: :integer,
description: "The maximum size of the report comment. Default: 1000.",
@@ -892,6 +880,14 @@ config :pleroma, :config_description, [
]
},
%{
+ key: :registration_reason_length,
+ type: :integer,
+ description: "Maximum registration reason length. Default: 500.",
+ suggestions: [
+ 500
+ ]
+ },
+ %{
key: :external_user_synchronization,
type: :boolean,
description: "Enabling following/followers counters synchronization for external users"
@@ -959,6 +955,118 @@ config :pleroma, :config_description, [
description:
"The instance thumbnail can be any image that represents your instance and is used by some apps or services when they display information about your instance.",
suggestions: ["/instance/thumbnail.jpeg"]
+ },
+ %{
+ key: :show_reactions,
+ type: :boolean,
+ description: "Let favourites and emoji reactions be viewed through the API."
+ }
+ ]
+ },
+ %{
+ group: :welcome,
+ type: :group,
+ description: "Welcome messages settings",
+ children: [
+ %{
+ group: :direct_message,
+ type: :group,
+ descpiption: "Direct message settings",
+ children: [
+ %{
+ key: :enabled,
+ type: :boolean,
+ description: "Enables sends direct message for new user after registration"
+ },
+ %{
+ key: :message,
+ type: :string,
+ description:
+ "A message that will be sent to a newly registered users as a direct message",
+ suggestions: [
+ "Hi, @username! Welcome on board!"
+ ]
+ },
+ %{
+ key: :sender_nickname,
+ type: :string,
+ description: "The nickname of the local user that sends the welcome message",
+ suggestions: [
+ "lain"
+ ]
+ }
+ ]
+ },
+ %{
+ group: :chat_message,
+ type: :group,
+ descpiption: "Chat message settings",
+ children: [
+ %{
+ key: :enabled,
+ type: :boolean,
+ description: "Enables sends chat message for new user after registration"
+ },
+ %{
+ key: :message,
+ type: :string,
+ description:
+ "A message that will be sent to a newly registered users as a chat message",
+ suggestions: [
+ "Hello, welcome on board!"
+ ]
+ },
+ %{
+ key: :sender_nickname,
+ type: :string,
+ description: "The nickname of the local user that sends the welcome message",
+ suggestions: [
+ "lain"
+ ]
+ }
+ ]
+ },
+ %{
+ group: :email,
+ type: :group,
+ descpiption: "Email message settings",
+ children: [
+ %{
+ key: :enabled,
+ type: :boolean,
+ description: "Enables sends direct message for new user after registration"
+ },
+ %{
+ key: :sender,
+ type: [:string, :tuple],
+ description:
+ "The email address or tuple with `{nickname, email}` that will use as sender to the welcome email.",
+ suggestions: [
+ {"Pleroma App", "welcome@pleroma.app"}
+ ]
+ },
+ %{
+ key: :subject,
+ type: :string,
+ description:
+ "The subject of welcome email. Can be use EEX template with `user` and `instance_name` variables.",
+ suggestions: ["Welcome to <%= instance_name%>"]
+ },
+ %{
+ key: :html,
+ type: :string,
+ description:
+ "The html content of welcome email. Can be use EEX template with `user` and `instance_name` variables.",
+ suggestions: ["<h1>Hello <%= user.name%>. Welcome to <%= instance_name%></h1>"]
+ },
+ %{
+ key: :text,
+ type: :string,
+ description:
+ "The text content of welcome email. Can be use EEX template with `user` and `instance_name` variables.",
+ suggestions: ["Hello <%= user.name%>. \n Welcome to <%= instance_name%>\n"]
+ }
+ ]
}
]
},
@@ -1426,6 +1534,7 @@ config :pleroma, :config_description, [
group: :pleroma,
key: :mrf_simple,
tab: :mrf,
+ related_policy: "Pleroma.Web.ActivityPub.MRF.SimplePolicy",
label: "MRF Simple",
type: :group,
description: "Simple ingress policies",
@@ -1463,6 +1572,12 @@ config :pleroma, :config_description, [
suggestions: ["example.com", "*.example.com"]
},
%{
+ key: :followers_only,
+ type: {:list, :string},
+ description: "Force posts from the given instances to be visible by followers only",
+ suggestions: ["example.com", "*.example.com"]
+ },
+ %{
key: :report_removal,
type: {:list, :string},
description: "List of instances to reject reports from",
@@ -1492,6 +1607,7 @@ config :pleroma, :config_description, [
group: :pleroma,
key: :mrf_activity_expiration,
tab: :mrf,
+ related_policy: "Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy",
label: "MRF Activity Expiration Policy",
type: :group,
description: "Adds automatic expiration to all local activities",
@@ -1508,6 +1624,7 @@ config :pleroma, :config_description, [
group: :pleroma,
key: :mrf_subchain,
tab: :mrf,
+ related_policy: "Pleroma.Web.ActivityPub.MRF.SubchainPolicy",
label: "MRF Subchain",
type: :group,
description:
@@ -1530,6 +1647,7 @@ config :pleroma, :config_description, [
group: :pleroma,
key: :mrf_rejectnonpublic,
tab: :mrf,
+ related_policy: "Pleroma.Web.ActivityPub.MRF.RejectNonPublic",
description: "RejectNonPublic drops posts with non-public visibility settings.",
label: "MRF Reject Non Public",
type: :group,
@@ -1551,6 +1669,7 @@ config :pleroma, :config_description, [
group: :pleroma,
key: :mrf_hellthread,
tab: :mrf,
+ related_policy: "Pleroma.Web.ActivityPub.MRF.HellthreadPolicy",
label: "MRF Hellthread",
type: :group,
description: "Block messages with excessive user mentions",
@@ -1576,6 +1695,7 @@ config :pleroma, :config_description, [
group: :pleroma,
key: :mrf_keyword,
tab: :mrf,
+ related_policy: "Pleroma.Web.ActivityPub.MRF.KeywordPolicy",
label: "MRF Keyword",
type: :group,
description: "Reject or Word-Replace messages with a keyword or regex",
@@ -1607,6 +1727,7 @@ config :pleroma, :config_description, [
group: :pleroma,
key: :mrf_mention,
tab: :mrf,
+ related_policy: "Pleroma.Web.ActivityPub.MRF.MentionPolicy",
label: "MRF Mention",
type: :group,
description: "Block messages which mention a specific user",
@@ -1623,6 +1744,7 @@ config :pleroma, :config_description, [
group: :pleroma,
key: :mrf_vocabulary,
tab: :mrf,
+ related_policy: "Pleroma.Web.ActivityPub.MRF.VocabularyPolicy",
label: "MRF Vocabulary",
type: :group,
description: "Filter messages which belong to certain activity vocabularies",
@@ -1646,6 +1768,8 @@ config :pleroma, :config_description, [
# %{
# group: :pleroma,
# key: :mrf_user_allowlist,
+ # tab: :mrf,
+ # related_policy: "Pleroma.Web.ActivityPub.MRF.UserAllowListPolicy",
# type: :map,
# description:
# "The keys in this section are the domain names that the policy should apply to." <>
@@ -2216,45 +2340,53 @@ config :pleroma, :config_description, [
]
},
%{
- group: :auto_linker,
- key: :opts,
+ group: :pleroma,
+ key: Pleroma.Formatter,
label: "Auto Linker",
type: :group,
- description: "Configuration for the auto_linker library",
+ description:
+ "Configuration for Pleroma's link formatter which parses mentions, hashtags, and URLs.",
children: [
%{
key: :class,
- type: [:string, false],
+ type: [:string, :boolean],
description: "Specify the class to be added to the generated link. Disable to clear.",
suggestions: ["auto-linker", false]
},
%{
key: :rel,
- type: [:string, false],
+ type: [:string, :boolean],
description: "Override the rel attribute. Disable to clear.",
suggestions: ["ugc", "noopener noreferrer", false]
},
%{
key: :new_window,
type: :boolean,
- description: "Link URLs will open in new window/tab"
+ description: "Link URLs will open in a new window/tab."
},
%{
key: :truncate,
- type: [:integer, false],
+ type: [:integer, :boolean],
description:
- "Set to a number to truncate URLs longer then the number. Truncated URLs will end in `..`",
+ "Set to a number to truncate URLs longer than the number. Truncated URLs will end in `...`",
suggestions: [15, false]
},
%{
key: :strip_prefix,
type: :boolean,
- description: "Strip the scheme prefix"
+ description: "Strip the scheme prefix."
},
%{
key: :extra,
type: :boolean,
description: "Link URLs with rarely used schemes (magnet, ipfs, irc, etc.)"
+ },
+ %{
+ key: :validate_tld,
+ type: [:atom, :boolean],
+ description:
+ "Set to false to disable TLD validation for URLs/emails. Can be set to :no_scheme to validate TLDs only for URLs without a scheme (e.g `example.com` will be validated, but `http://example.loki` won't)",
+ suggestions: [:no_scheme, true]
}
]
},
@@ -2902,8 +3034,9 @@ config :pleroma, :config_description, [
},
%{
group: :pleroma,
- tab: :mrf,
key: :mrf_normalize_markup,
+ tab: :mrf,
+ related_policy: "Pleroma.Web.ActivityPub.MRF.NormalizeMarkup",
label: "MRF Normalize Markup",
description: "MRF NormalizeMarkup settings. Scrub configured hypertext markup.",
type: :group,
@@ -2923,6 +3056,7 @@ config :pleroma, :config_description, [
%{
key: :restricted_nicknames,
type: {:list, :string},
+ description: "List of nicknames users may not register with.",
suggestions: [
".well-known",
"~",
@@ -2955,6 +3089,12 @@ config :pleroma, :config_description, [
"users",
"web"
]
+ },
+ %{
+ key: :email_blacklist,
+ type: {:list, :string},
+ description: "List of email domains users may not register with.",
+ suggestions: ["mailinator.com", "maildrop.cc"]
}
]
},
@@ -3098,8 +3238,9 @@ config :pleroma, :config_description, [
%{
group: :pleroma,
key: :mrf_object_age,
- label: "MRF Object Age",
tab: :mrf,
+ related_policy: "Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy",
+ label: "MRF Object Age",
type: :group,
description:
"Rejects or delists posts based on their timestamp deviance from your server's clock.",
@@ -3400,5 +3541,30 @@ config :pleroma, :config_description, [
suggestions: ["s3.eu-central-1.amazonaws.com"]
}
]
+ },
+ %{
+ group: :pleroma,
+ key: :frontends,
+ type: :group,
+ description: "Installed frontends management",
+ children: [
+ %{
+ key: :primary,
+ type: :map,
+ description: "Primary frontend, the one that is served for all pages by default",
+ children: [
+ %{
+ key: "name",
+ type: :string,
+ description: "Name of the installed primary frontend"
+ },
+ %{
+ key: "ref",
+ type: :string,
+ description: "reference of the installed primary frontend to be used"
+ }
+ ]
+ }
+ ]
}
]
diff --git a/config/test.exs b/config/test.exs
index abcf793e5..413c7f0b9 100644
--- a/config/test.exs
+++ b/config/test.exs
@@ -118,6 +118,10 @@ config :pleroma, Pleroma.Uploaders.S3,
streaming_enabled: true,
public_endpoint: nil
+config :tzdata, :autoupdate, :disabled
+
+config :pleroma, :mrf, policies: []
+
if File.exists?("./config/test.secret.exs") do
import_config "test.secret.exs"
else