12 KiB
Configuration
This file describe the configuration, it is recommended to edit the relevant *.secret.exs file instead of the others founds in the config
directory.
If you run Pleroma with MIX_ENV=prod
the file is prod.secret.exs
, otherwise it is dev.secret.exs
.
Pleroma.Upload
uploader
: Select whichPleroma.Uploaders
to usefilters
: List ofPleroma.Upload.Filter
to use.base_url
: The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host.proxy_remote
: If you're using a remote uploader, Pleroma will proxy media requests instead of redirecting to it.proxy_opts
: Proxy options, seePleroma.ReverseProxy
documentation.
Note: strip_exif
has been replaced by Pleroma.Upload.Filter.Mogrify
.
Pleroma.Uploaders.Local
uploads
: Which directory to store the user-uploads in, relative to pleroma’s working directory
Pleroma.Upload.Filter.Mogrify
args
: List of actions for themogrify
command like"strip"
or["strip", {"impode", "1"}]
.
Pleroma.Upload.Filter.Dedupe
No specific configuration.
Pleroma.Upload.Filter.AnonymizeFilename
This filter replaces the filename (not the path) of an upload. For complete obfuscation, add
Pleroma.Upload.Filter.Dedupe
before AnonymizeFilename.
text
: Text to replace filenames in links. If empty,{random}.extension
will be used.
Pleroma.Mailer
adapter
: one of the mail adapters listed in Swoosh readme, orSwoosh.Adapters.Local
for in-memory mailbox.api_key
/password
and / or other adapter-specific settings, per the above documentation.
An example for Sendgrid adapter:
config :pleroma, Pleroma.Mailer,
adapter: Swoosh.Adapters.Sendgrid,
api_key: "YOUR_API_KEY"
An example for SMTP adapter:
config :pleroma, Pleroma.Mailer,
adapter: Swoosh.Adapters.SMTP,
relay: "smtp.gmail.com",
username: "YOUR_USERNAME@gmail.com",
password: "YOUR_SMTP_PASSWORD",
port: 465,
ssl: true,
tls: :always,
auth: :always
:uri_schemes
valid_schemes
: List of the scheme part that is considered valid to be an URL
:instance
name
: The instance’s nameemail
: Email used to reach an Administrator/Moderator of the instancedescription
: The instance’s description, can be seen in nodeinfo and/api/v1/instance
limit
: Posts character limit (CW/Subject included in the counter)remote_limit
: Hard character limit beyond which remote posts will be dropped.upload_limit
: File size limit of uploads (except for avatar, background, banner)avatar_upload_limit
: File size limit of user’s profile avatarsbackground_upload_limit
: File size limit of user’s profile backgroundsbanner_upload_limit
: File size limit of user’s profile bannersregistrations_open
: Enable registrations for anyone, invitations can be enabled when false.invites_enabled
: Enable user invitations for admins (depends onregistrations_open: false
).account_activation_required
: Require users to confirm their emails before signing in.federating
: Enable federation with other instancesallow_relay
: Enable Pleroma’s Relay, which makes it possible to follow a whole instancerewrite_policy
: Message Rewrite Policy, either one or a list. Here are the ones available by default:Pleroma.Web.ActivityPub.MRF.NoOpPolicy
: Doesn’t modify activities (default)Pleroma.Web.ActivityPub.MRF.DropPolicy
: Drops all activities. It generally doesn’t makes sense to use in productionPleroma.Web.ActivityPub.MRF.SimplePolicy
: Restrict the visibility of activities from certains instances (See:mrf_simple
section)Pleroma.Web.ActivityPub.MRF.RejectNonPublic
: Drops posts with non-public visibility settings (See:mrf_rejectnonpublic
section)Pleroma.Web.ActivityPub.MRF.EnsureRePrepended
: Rewrites posts to ensure that replies to posts with subjects do not have an identical subject and instead begin with re:.
public
: Makes the client API in authentificated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network.quarantined_instances
: List of ActivityPub instances where private(DMs, followers-only) activities will not be send.managed_config
: Whenether the config for pleroma-fe is configured in this config or instatic/config.json
allowed_post_formats
: MIME-type list of formats allowed to be posted (transformed into HTML)finmoji_enabled
: Whenether to enable the finmojis in the custom emojis.mrf_transparency
: Make the content of your Message Rewrite Facility settings public (via nodeinfo).scope_copy
: Copy the scope (private/unlisted/public) in replies to posts by default.subject_line_behavior
: Allows changing the default behaviour of subject lines in replies. Valid values:- "email": Copy and preprend re:, as in email.
- "masto": Copy verbatim, as in Mastodon.
- "noop": Don't copy the subject.
always_show_subject_input
: When set to false, auto-hide the subject field when it's empty.extended_nickname_format
: Set totrue
to use extended local nicknames format (allows underscores/dashes). This will break federation with older software for theses nicknames.max_pinned_statuses
: The maximum number of pinned statuses.0
will disable the feature.autofollowed_nicknames
: Set to nicknames of (local) users that every new user should automatically follow.no_attachment_links
: Set to true to disable automatically adding attachment link text to statuses
:logger
backends
::console
is used to send logs to stdout,{ExSyslogger, :ex_syslogger}
to log to syslog See: logger’s documentation and ex_syslogger’s documentation
:frontend_configurations
This can be used to configure a keyword list that keeps the configuration data for any kind of frontend. By default, settings for pleroma_fe
are configured.
Frontends can access these settings at /api/pleroma/frontend_configurations
To add your own configuration for PleromaFE, use it like this:
config :pleroma, :frontend_configurations, :pleroma_fe, %{theme: "my-theme", ...}
These settings need to be complete, they will overide the defaults.
:fe
THIS IS DEPRECATED
If you are using this method, please change it to the frontend_configurations
method. Please set this option to false in your config like this: config :pleroma, :fe, false
.
This section is used to configure Pleroma-FE, unless :managed_config
in :instance
is set to false.
theme
: Which theme to use, they are defined instyles.json
logo
: URL of the logo, defaults to Pleroma’s logologo_mask
: Whenether to mask the logologo_margin
: What margin to use around the logobackground
: URL of the background, unless viewing a user profile with a background that is setredirect_root_no_login
: relative URL which indicates where to redirect when a user isn’t logged in.redirect_root_login
: relative URL which indicates where to redirect when a user is logged in.show_instance_panel
: Whenether to show the instance’s specific panel.scope_options_enabled
: Enable setting an notice visibility and subject/CW when postingformatting_options_enabled
: Enable setting a formatting different than plain-text (ie. HTML, Markdown) when posting, relates to:instance, allowed_post_formats
collapse_message_with_subjects
: When a message has a subject(aka Content Warning), collapse it by defaulthide_post_stats
: Hide notices statistics(repeats, favorites, …)hide_user_stats
: Hide profile statistics(posts, posts per day, followers, followings, …)
:mrf_simple
media_removal
: List of instances to remove medias frommedia_nsfw
: List of instances to put medias as NSFW(sensitive) fromfederated_timeline_removal
: List of instances to remove from Federated (aka The Whole Known Network) Timelinereject
: List of instances to reject any activities fromaccept
: List of instances to accept any activities from
:mrf_rejectnonpublic
allow_followersonly
: whether to allow followers-only postsallow_direct
: whether to allow direct messages
:mrf_hellthread
threshold
: Number of mentioned users after which the message gets discarded as spam
:media_proxy
enabled
: Enables proxying of remote media to the instance’s proxybase_url
: The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host/CDN fronts.proxy_opts
: All options defined inPleroma.ReverseProxy
documentation, defaults to[max_body_length: (25*1_048_576)]
.
:gopher
enabled
: Enables the gopher interfaceip
: IP address to bind toport
: Port to bind to
:activitypub
accept_blocks
: Whether to accept incoming block activities from other instancesunfollow_blocked
: Whether blocks result in people getting unfollowedoutgoing_blocks
: Whether to federate blocks to other instancesdeny_follow_blocked
: Whether to disallow following an account that has blocked the user in question
:http_security
enabled
: Whether the managed content security policy is enabledsts
: Whether to additionally send aStrict-Transport-Security
headersts_max_age
: The maximum age for theStrict-Transport-Security
header if sentct_max_age
: The maximum age for theExpect-CT
header if sentreferrer_policy
: The referrer policy to use, either"same-origin"
or"no-referrer"
.
:mrf_user_allowlist
The keys in this section are the domain names that the policy should apply to. Each key should be assigned a list of users that should be allowed through by their ActivityPub ID.
An example:
config :pleroma, :mrf_user_allowlist,
"example.org": ["https://example.org/users/admin"]
:web_push_encryption, :vapid_details
Web Push Notifications configuration. You can use the mix task mix web_push.gen.keypair
to generate it.
subject
: a mailto link for the administrative contact. It’s best if this email is not a personal email address, but rather a group email so that if a person leaves an organization, is unavailable for an extended period, or otherwise can’t respond, someone else on the list can.public_key
: VAPID public keyprivate_key
: VAPID private key
Pleroma.Captcha
enabled
: Whether the captcha should be shown on registrationmethod
: The method/service to use for captchaseconds_valid
: The time in seconds for which the captcha is valid
Pleroma.Captcha.Kocaptcha
Kocaptcha is a very simple captcha service with a single API endpoint,
the source code is here: https://github.com/koto-bank/kocaptcha. The default endpoint
https://captcha.kotobank.ch
is hosted by the developer.
endpoint
: the kocaptcha endpoint to use
:admin_token
Allows to set a token that can be used to authenticate with the admin api without using an actual user by giving it as the 'admin_token' parameter. Example:
config :pleroma, :admin_token, "somerandomtoken"
You can then do
curl "http://localhost:4000/api/pleroma/admin/invite_token?admin_token=somerandomtoken"
Pleroma.Web.Federator
max_jobs
: The maximum amount of parallel federation jobs running at the same time.
Pleroma.Web.Federator.RetryQueue
enabled
: If set totrue
, failed federation jobs will be retriedmax_jobs
: The maximum amount of parallel federation jobs running at the same time.initial_timeout
: The initial timeout in secondsmax_retries
: The maximum number of times a federation job is retried
Pleroma.Web.Metadata
providers
: a list of metadata providers to enable. Providers availible:- Pleroma.Web.Metadata.Providers.OpenGraph
- Pleroma.Web.Metadata.Providers.TwitterCard
unfurl_nsfw
: If set totrue
nsfw attachments will be shown in previews
:hackney_pools
Advanced. Tweaks Hackney (http client) connections pools.
There's three pools used:
:federation
for the federation jobs. You may want this pool max_connections to be at least equal to the number of federator jobs + retry queue jobs.:media
for rich media, media proxy:upload
for uploaded media (if using a remote uploader andproxy_remote: true
)
For each pool, the options are:
max_connections
- how much connections a pool can holdtimeout
- retention duration for connections