2018-11-02 05:13:29 -04:00
# Configuration
2018-11-08 08:59:44 -05:00
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``.
2018-11-02 05:13:29 -04:00
## Pleroma.Upload
* `uploader` : Select which `Pleroma.Uploaders` to use
2018-11-30 11:44:42 -05:00
* `filters` : List of `Pleroma.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.
2018-12-15 14:12:20 -05:00
* `proxy_remote` : If you\'re using a remote uploader, Pleroma will proxy media requests instead of redirecting to it.
2018-11-30 11:44:42 -05:00
* `proxy_opts` : Proxy options, see `Pleroma.ReverseProxy` documentation.
Note: `strip_exif` has been replaced by `Pleroma.Upload.Filter.Mogrify` .
2018-11-02 05:13:29 -04:00
## Pleroma.Uploaders.Local
2018-11-02 05:32:43 -04:00
* `uploads` : Which directory to store the user-uploads in, relative to pleroma’ s working directory
2018-11-30 11:44:42 -05:00
## Pleroma.Upload.Filter.Mogrify
* `args` : List of actions for the `mogrify` command like `"strip"` or `["strip", {"impode", "1"}]` .
2018-11-02 05:13:29 -04:00
2018-12-07 08:07:11 -05:00
## Pleroma.Upload.Filter.Dedupe
No specific configuration.
## Pleroma.Upload.Filter.AnonymizeFilename
2018-12-08 05:09:35 -05:00
This filter replaces the filename (not the path) of an upload. For complete obfuscation, add
2018-12-07 08:07:11 -05:00
`Pleroma.Upload.Filter.Dedupe` before AnonymizeFilename.
2018-12-08 05:09:35 -05:00
* `text` : Text to replace filenames in links. If empty, `{random}.extension` will be used.
2018-12-07 08:07:11 -05:00
2018-12-11 06:59:25 -05:00
## Pleroma.Mailer
* `adapter` : one of the mail adapters listed in [Swoosh readme ](https://github.com/swoosh/swoosh#adapters ), or `Swoosh.Adapters.Local` for in-memory mailbox.
2019-01-09 04:56:31 -05:00
* `api_key` / `password` and / or other adapter-specific settings, per the above documentation.
2018-12-11 06:59:25 -05:00
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
```
2018-11-02 05:32:43 -04:00
## :uri_schemes
2018-11-02 05:13:29 -04:00
* `valid_schemes` : List of the scheme part that is considered valid to be an URL
2018-11-02 05:32:43 -04:00
## :instance
2018-11-08 08:27:21 -05:00
* `name` : The instance’ s name
2018-11-02 05:32:43 -04:00
* `email` : Email used to reach an Administrator/Moderator of the instance
2018-11-08 08:27:21 -05:00
* `description` : The instance’ s description, can be seen in nodeinfo and ``/api/v1/instance``
* `limit` : Posts character limit (CW/Subject included in the counter)
2018-12-26 06:39:35 -05:00
* `remote_limit` : Hard character limit beyond which remote posts will be dropped.
2018-11-02 05:32:43 -04:00
* `upload_limit` : File size limit of uploads (except for avatar, background, banner)
* `avatar_upload_limit` : File size limit of user’ s profile avatars
* `background_upload_limit` : File size limit of user’ s profile backgrounds
2018-12-09 05:09:21 -05:00
* `banner_upload_limit` : File size limit of user’ s profile banners
2018-12-14 04:37:06 -05:00
* `registrations_open` : Enable registrations for anyone, invitations can be enabled when false.
* `invites_enabled` : Enable user invitations for admins (depends on `registrations_open: false` ).
2018-12-18 09:52:38 -05:00
* `account_activation_required` : Require users to confirm their emails before signing in.
2018-12-09 05:09:21 -05:00
* `federating` : Enable federation with other instances
2018-11-08 08:27:21 -05:00
* `allow_relay` : Enable Pleroma’ s Relay, which makes it possible to follow a whole instance
2018-11-08 08:59:44 -05:00
* `rewrite_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 production
* `Pleroma.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)
2018-12-04 16:39:18 -05:00
* `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:.
2018-11-08 08:27:21 -05:00
* `public` : Makes the client API in authentificated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network.
2018-11-02 05:32:43 -04:00
* `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 in ``static/config.json``
* `allowed_post_formats` : MIME-type list of formats allowed to be posted (transformed into HTML)
2018-11-08 08:27:21 -05:00
* `finmoji_enabled` : Whenether to enable the finmojis in the custom emojis.
2018-11-02 05:32:43 -04:00
* `mrf_transparency` : Make the content of your Message Rewrite Facility settings public (via nodeinfo).
2018-12-10 18:23:10 -05:00
* `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.
2018-12-12 15:44:08 -05:00
* `extended_nickname_format` : Set to `true` to use extended local nicknames format (allows underscores/dashes). This will break federation with
2018-12-12 12:17:15 -05:00
older software for theses nicknames.
2019-01-08 04:11:03 -05:00
* `max_pinned_statuses` : The maximum number of pinned statuses. `0` will disable the feature.
2019-01-08 03:55:33 -05:00
* `autofollowed_nicknames` : Set to nicknames of (local) users that every new user should automatically follow.
2019-01-17 10:48:14 -05:00
* `no_attachment_links` : Set to true to disable automatically adding attachment link text to statuses
2018-11-02 05:32:43 -04:00
2019-01-02 17:07:48 -05:00
## :logger
* `backends` : `:console` is used to send logs to stdout, `{ExSyslogger, :ex_syslogger}` to log to syslog
See: [logger’ s documentation ](https://hexdocs.pm/logger/Logger.html ) and [ex_syslogger’ s documentation ](https://hexdocs.pm/ex_syslogger/ )
2019-01-23 06:40:57 -05:00
## :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.
2018-11-02 05:32:43 -04:00
## :fe
2019-01-28 07:06:28 -05:00
__THIS IS DEPRECATED__
2019-01-23 06:40:57 -05:00
2019-01-28 07:06:28 -05:00
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` .
2019-01-23 06:40:57 -05:00
2018-11-08 08:27:21 -05:00
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 in ``styles.json``
* `logo` : URL of the logo, defaults to Pleroma’ s logo
* `logo_mask` : Whenether to mask the logo
* `logo_margin` : What margin to use around the logo
* `background` : URL of the background, unless viewing a user profile with a background that is set
* `redirect_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.
2018-11-08 08:33:05 -05:00
* `scope_options_enabled` : Enable setting an notice visibility and subject/CW when posting
2018-11-02 05:32:43 -04:00
* `formatting_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 default
* `hide_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 from
* `media_nsfw` : List of instances to put medias as NSFW(sensitive) from
* `federated_timeline_removal` : List of instances to remove from Federated (aka The Whole Known Network) Timeline
* `reject` : List of instances to reject any activities from
* `accept` : List of instances to accept any activities from
2018-11-08 08:59:44 -05:00
## :mrf_rejectnonpublic
* `allow_followersonly` : whether to allow followers-only posts
* `allow_direct` : whether to allow direct messages
2018-12-23 05:14:29 -05:00
## :mrf_hellthread
2018-12-23 04:41:56 -05:00
* `threshold` : Number of mentioned users after which the message gets discarded as spam
2018-11-02 05:32:43 -04:00
## :media_proxy
* `enabled` : Enables proxying of remote media to the instance’ s proxy
2018-11-30 11:44:42 -05:00
* `base_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 in `Pleroma.ReverseProxy` documentation, defaults to `[max_body_length: (25*1_048_576)]` .
2018-11-02 05:32:43 -04:00
## :gopher
* `enabled` : Enables the gopher interface
* `ip` : IP address to bind to
* `port` : Port to bind to
2018-11-08 08:59:44 -05:00
## :activitypub
* ``accept_blocks``: Whether to accept incoming block activities from other instances
* ``unfollow_blocked``: Whether blocks result in people getting unfollowed
* ``outgoing_blocks``: Whether to federate blocks to other instances
* ``deny_follow_blocked``: Whether to disallow following an account that has blocked the user in question
2018-11-11 01:37:18 -05:00
2018-11-12 10:08:02 -05:00
## :http_security
2018-11-11 01:37:18 -05:00
* ``enabled``: Whether the managed content security policy is enabled
* ``sts``: Whether to additionally send a `Strict-Transport-Security` header
* ``sts_max_age``: The maximum age for the `Strict-Transport-Security` header if sent
2018-11-11 02:27:36 -05:00
* ``ct_max_age``: The maximum age for the `Expect-CT` header if sent
2018-11-12 10:14:46 -05:00
* ``referrer_policy``: The referrer policy to use, either `"same-origin"` or `"no-referrer"` .
2018-11-26 18:54:46 -05:00
## :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"]
```
2018-12-07 03:55:28 -05:00
2018-12-14 10:06:04 -05:00
## :web_push_encryption, :vapid_details
2018-12-07 03:55:28 -05:00
2018-12-07 04:32:59 -05:00
Web Push Notifications configuration. You can use the mix task `mix web_push.gen.keypair` to generate it.
2018-12-07 03:55:28 -05:00
* ``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 key
* ``private_key``: VAPID private key
2018-12-15 14:12:20 -05:00
## Pleroma.Captcha
* `enabled` : Whether the captcha should be shown on registration
* `method` : The method/service to use for captcha
2018-12-20 16:32:37 -05:00
* `seconds_valid` : The time in seconds for which the captcha is valid
2018-12-15 14:12:20 -05:00
### Pleroma.Captcha.Kocaptcha
Kocaptcha is a very simple captcha service with a single API endpoint,
2018-12-16 14:37:16 -05:00
the source code is here: https://github.com/koto-bank/kocaptcha. The default endpoint
`https://captcha.kotobank.ch` is hosted by the developer.
2018-12-15 14:12:20 -05:00
2018-12-18 15:08:52 -05:00
* `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"
```
2019-01-01 11:40:42 -05:00
## Pleroma.Web.Federator
* `max_jobs` : The maximum amount of parallel federation jobs running at the same time.
## Pleroma.Web.Federator.RetryQueue
* `enabled` : If set to `true` , failed federation jobs will be retried
2019-01-11 04:55:33 -05:00
* `max_jobs` : The maximum amount of parallel federation jobs running at the same time.
2019-01-01 11:40:42 -05:00
* `initial_timeout` : The initial timeout in seconds
* `max_retries` : The maximum number of times a federation job is retried
2019-01-16 02:45:56 -05:00
## Pleroma.Web.Metadata
2019-01-17 03:00:02 -05:00
* `providers` : a list of metadata providers to enable. Providers availible:
2019-01-16 02:45:56 -05:00
* Pleroma.Web.Metadata.Providers.OpenGraph
* Pleroma.Web.Metadata.Providers.TwitterCard
2019-01-17 03:00:02 -05:00
* `unfurl_nsfw` : If set to `true` nsfw attachments will be shown in previews
2019-01-30 06:38:38 -05:00
## :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 and `proxy_remote: true` )
For each pool, the options are:
* `max_connections` - how much connections a pool can hold
* `timeout` - retention duration for connections