2019-08-30 12:20:09 +02:00
use Mix.Config
2019-08-30 18:14:01 +02:00
alias Pleroma.Docs.Generator
2019-08-30 12:20:09 +02:00
websocket_config = [
path : " /websocket " ,
serializer : [
{ Phoenix.Socket.V1.JSONSerializer , " ~> 1.0.0 " } ,
{ Phoenix.Socket.V2.JSONSerializer , " ~> 2.0.0 " }
] ,
timeout : 60_000 ,
transport_log : false ,
compress : false
]
config :pleroma , :config_description , [
%{
group : :pleroma ,
key : Pleroma.Upload ,
type : :group ,
description : " Upload general settings " ,
children : [
%{
key : :uploader ,
type : :module ,
description : " Module which will be used for uploads " ,
2020-01-24 09:05:03 +01:00
suggestions : [ Pleroma.Uploaders.Local , Pleroma.Uploaders.S3 ]
2019-08-30 12:20:09 +02:00
} ,
%{
key : :filters ,
type : { :list , :module } ,
description : " List of filter modules for uploads " ,
2019-09-29 10:17:38 +02:00
suggestions :
Generator . list_modules_in_dir (
" lib/pleroma/upload/filter " ,
" Elixir.Pleroma.Upload.Filter. "
)
2019-08-30 12:20:09 +02:00
} ,
%{
key : :link_name ,
type : :boolean ,
2019-09-03 10:56:21 +02:00
description :
2020-01-25 17:45:51 +01:00
" If enabled, a name parameter will be added to the url of the upload. For example `https://instance.tld/media/imagehash.png?name=realname.png`. "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :base_url ,
type : :string ,
description : " Base url for the uploads, needed if you use CDN " ,
suggestions : [
" https://cdn-host.com "
]
} ,
%{
key : :proxy_remote ,
type : :boolean ,
2019-09-03 10:56:21 +02:00
description :
2020-01-25 17:45:51 +01:00
" If enabled, requests to media stored using a remote uploader will be proxied instead of being redirected "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :proxy_opts ,
type : :keyword ,
2019-09-29 10:17:38 +02:00
description : " Options for Pleroma.ReverseProxy " ,
suggestions : [
redirect_on_failure : false ,
max_body_length : 25 * 1_048_576 ,
http : [
follow_redirect : true ,
pool : :media
]
] ,
children : [
%{
key : :redirect_on_failure ,
type : :boolean ,
description :
" Redirects the client to the real remote URL if there's any HTTP errors. " <>
2020-01-25 17:45:51 +01:00
" Any error during body processing will not be redirected as the response is chunked. "
2019-09-29 10:17:38 +02:00
} ,
%{
key : :max_body_length ,
type : :integer ,
description :
2020-01-25 17:45:51 +01:00
" Limits the content length to be approximately the " <>
" specified length. It is validated with the `content-length` header and also verified when proxying. "
2019-09-29 10:17:38 +02:00
} ,
%{
key : :http ,
type : :keyword ,
description : " HTTP options " ,
children : [
%{
key : :adapter ,
type : :keyword ,
2019-12-10 10:16:19 +01:00
description : " Adapter specific options " ,
children : [
%{
key : :ssl_options ,
type : :keyword ,
label : " SSL Options " ,
description : " SSL options for HTTP adapter " ,
children : [
%{
key : :versions ,
type : { :list , :atom } ,
2020-02-13 18:45:58 +01:00
description : " List of TLS versions to use " ,
2019-12-25 13:31:51 +01:00
suggestions : [ :tlsv1 , " :tlsv1.1 " , " :tlsv1.2 " ]
2019-12-10 10:16:19 +01:00
}
]
}
]
2019-09-29 10:17:38 +02:00
} ,
%{
key : :proxy_url ,
label : " Proxy URL " ,
type : [ :string , :tuple ] ,
description : " Proxy URL " ,
suggestions : [ " 127.0.0.1:8123 " , { :socks5 , :localhost , 9050 } ]
}
]
}
]
2019-08-30 12:20:09 +02:00
}
]
} ,
%{
group : :pleroma ,
key : Pleroma.Uploaders.Local ,
type : :group ,
description : " Local uploader-related settings " ,
children : [
%{
key : :uploads ,
type : :string ,
2020-01-25 17:45:51 +01:00
description : " Path where user's uploads will be saved " ,
2019-08-30 12:20:09 +02:00
suggestions : [
" uploads "
]
}
]
} ,
%{
group : :pleroma ,
key : Pleroma.Uploaders.S3 ,
type : :group ,
description : " S3 uploader-related settings " ,
children : [
%{
key : :bucket ,
2019-08-30 18:14:01 +02:00
type : :string ,
2019-08-30 12:20:09 +02:00
description : " S3 bucket " ,
suggestions : [
" bucket "
]
} ,
%{
key : :bucket_namespace ,
type : :string ,
description : " S3 bucket namespace " ,
suggestions : [ " pleroma " ]
} ,
%{
key : :public_endpoint ,
type : :string ,
description : " S3 endpoint " ,
suggestions : [ " https://s3.amazonaws.com " ]
} ,
%{
key : :truncated_namespace ,
type : :string ,
description :
" If you use S3 compatible service such as Digital Ocean Spaces or CDN, set folder name or \" \" etc. " <>
2019-09-17 21:57:13 +02:00
" For example, when using CDN to S3 virtual host format, set \" \" . At this time, write CNAME to CDN in public_endpoint. "
2019-09-23 22:38:53 +02:00
} ,
%{
key : :streaming_enabled ,
type : :boolean ,
description :
" Enable streaming uploads, when enabled the file will be sent to the server in chunks as it's being read. This may be unsupported by some providers, try disabling this if you have upload problems. "
2019-08-30 12:20:09 +02:00
}
]
} ,
%{
group : :pleroma ,
key : Pleroma.Upload.Filter.Mogrify ,
type : :group ,
description : " Uploads mogrify filter settings " ,
children : [
%{
key : :args ,
type : [ :string , { :list , :string } , { :list , :tuple } ] ,
description : " List of actions for the mogrify command " ,
suggestions : [
" strip " ,
2019-09-29 10:17:38 +02:00
" auto-orient " ,
{ " implode " , " 1 " }
2019-08-30 12:20:09 +02:00
]
}
]
} ,
%{
group : :pleroma ,
key : Pleroma.Upload.Filter.AnonymizeFilename ,
type : :group ,
description : " Filter replaces the filename of the upload " ,
children : [
%{
key : :text ,
type : :string ,
description :
" Text to replace filenames in links. If no setting, {random}.extension will be used. You can get the original " <>
2020-01-25 17:45:51 +01:00
" filename extension by using {extension}, for example custom-file-name.{extension}. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
2019-09-29 10:17:38 +02:00
" custom-file-name.{extension} "
2019-08-30 12:20:09 +02:00
]
}
]
} ,
%{
group : :pleroma ,
key : Pleroma.Emails.Mailer ,
type : :group ,
description : " Mailer-related settings " ,
children : [
%{
key : :adapter ,
type : :module ,
description :
" One of the mail adapters listed in [Swoosh readme](https://github.com/swoosh/swoosh # adapters), " <>
" or Swoosh.Adapters.Local for in-memory mailbox " ,
suggestions : [
Swoosh.Adapters.SMTP ,
Swoosh.Adapters.Sendgrid ,
Swoosh.Adapters.Sendmail ,
Swoosh.Adapters.Mandrill ,
Swoosh.Adapters.Mailgun ,
Swoosh.Adapters.Mailjet ,
Swoosh.Adapters.Postmark ,
Swoosh.Adapters.SparkPost ,
Swoosh.Adapters.AmazonSES ,
Swoosh.Adapters.Dyn ,
Swoosh.Adapters.SocketLabs ,
2019-12-20 08:22:53 +01:00
Swoosh.Adapters.Gmail ,
Swoosh.Adapters.Local
2019-08-30 12:20:09 +02:00
]
} ,
%{
key : :enabled ,
type : :boolean ,
2019-09-13 17:05:19 +02:00
description : " Allow/disallow send emails "
2019-08-30 12:20:09 +02:00
} ,
%{
group : { :subgroup , Swoosh.Adapters.SMTP } ,
key : :relay ,
type : :string ,
description : " `Swoosh.Adapters.SMTP` adapter specific setting " ,
suggestions : [ " smtp.gmail.com " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.SMTP } ,
key : :username ,
type : :string ,
description : " `Swoosh.Adapters.SMTP` adapter specific setting " ,
suggestions : [ " pleroma " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.SMTP } ,
key : :password ,
type : :string ,
description : " `Swoosh.Adapters.SMTP` adapter specific setting " ,
suggestions : [ " password " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.SMTP } ,
key : :ssl ,
2019-09-29 10:17:38 +02:00
label : " SSL " ,
2019-08-30 12:20:09 +02:00
type : :boolean ,
2019-09-13 17:05:19 +02:00
description : " `Swoosh.Adapters.SMTP` adapter specific setting "
2019-08-30 12:20:09 +02:00
} ,
%{
group : { :subgroup , Swoosh.Adapters.SMTP } ,
key : :tls ,
2019-09-29 10:17:38 +02:00
label : " TLS " ,
2019-08-30 12:20:09 +02:00
type : :atom ,
description : " `Swoosh.Adapters.SMTP` adapter specific setting " ,
suggestions : [ :always , :never , :if_available ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.SMTP } ,
key : :auth ,
type : :atom ,
description : " `Swoosh.Adapters.SMTP` adapter specific setting " ,
suggestions : [ :always , :never , :if_available ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.SMTP } ,
key : :port ,
type : :integer ,
description : " `Swoosh.Adapters.SMTP` adapter specific setting " ,
suggestions : [ 1025 ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.SMTP } ,
key : :retries ,
type : :integer ,
description : " `Swoosh.Adapters.SMTP` adapter specific setting " ,
suggestions : [ 5 ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.SMTP } ,
key : :no_mx_lookups ,
2019-09-29 10:17:38 +02:00
label : " No MX lookups " ,
2019-08-30 12:20:09 +02:00
type : :boolean ,
2019-09-13 17:05:19 +02:00
description : " `Swoosh.Adapters.SMTP` adapter specific setting "
2019-08-30 12:20:09 +02:00
} ,
%{
group : { :subgroup , Swoosh.Adapters.Sendgrid } ,
key : :api_key ,
2019-09-29 10:17:38 +02:00
label : " API key " ,
2019-08-30 12:20:09 +02:00
type : :string ,
description : " `Swoosh.Adapters.Sendgrid` adapter specific setting " ,
suggestions : [ " my-api-key " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.Sendmail } ,
key : :cmd_path ,
type : :string ,
description : " `Swoosh.Adapters.Sendmail` adapter specific setting " ,
suggestions : [ " /usr/bin/sendmail " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.Sendmail } ,
key : :cmd_args ,
type : :string ,
description : " `Swoosh.Adapters.Sendmail` adapter specific setting " ,
suggestions : [ " -N delay,failure,success " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.Sendmail } ,
key : :qmail ,
type : :boolean ,
2019-09-13 17:05:19 +02:00
description : " `Swoosh.Adapters.Sendmail` adapter specific setting "
2019-08-30 12:20:09 +02:00
} ,
%{
group : { :subgroup , Swoosh.Adapters.Mandrill } ,
key : :api_key ,
2019-09-29 10:17:38 +02:00
label : " API key " ,
2019-08-30 12:20:09 +02:00
type : :string ,
description : " `Swoosh.Adapters.Mandrill` adapter specific setting " ,
suggestions : [ " my-api-key " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.Mailgun } ,
key : :api_key ,
2019-09-29 10:17:38 +02:00
label : " API key " ,
2019-08-30 12:20:09 +02:00
type : :string ,
description : " `Swoosh.Adapters.Mailgun` adapter specific setting " ,
suggestions : [ " my-api-key " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.Mailgun } ,
key : :domain ,
type : :string ,
description : " `Swoosh.Adapters.Mailgun` adapter specific setting " ,
suggestions : [ " pleroma.com " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.Mailjet } ,
key : :api_key ,
2019-09-29 10:17:38 +02:00
label : " API key " ,
2019-08-30 12:20:09 +02:00
type : :string ,
description : " `Swoosh.Adapters.Mailjet` adapter specific setting " ,
suggestions : [ " my-api-key " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.Mailjet } ,
key : :secret ,
type : :string ,
description : " `Swoosh.Adapters.Mailjet` adapter specific setting " ,
suggestions : [ " my-secret-key " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.Postmark } ,
key : :api_key ,
2019-09-29 10:17:38 +02:00
label : " API key " ,
2019-08-30 12:20:09 +02:00
type : :string ,
description : " `Swoosh.Adapters.Postmark` adapter specific setting " ,
suggestions : [ " my-api-key " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.SparkPost } ,
key : :api_key ,
2019-09-29 10:17:38 +02:00
label : " API key " ,
2019-08-30 12:20:09 +02:00
type : :string ,
description : " `Swoosh.Adapters.SparkPost` adapter specific setting " ,
suggestions : [ " my-api-key " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.SparkPost } ,
key : :endpoint ,
type : :string ,
description : " `Swoosh.Adapters.SparkPost` adapter specific setting " ,
suggestions : [ " https://api.sparkpost.com/api/v1 " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.AmazonSES } ,
key : :region ,
2019-09-29 10:17:38 +02:00
type : :string ,
2019-08-30 12:20:09 +02:00
description : " `Swoosh.Adapters.AmazonSES` adapter specific setting " ,
suggestions : [ " us-east-1 " , " us-east-2 " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.AmazonSES } ,
key : :access_key ,
type : :string ,
description : " `Swoosh.Adapters.AmazonSES` adapter specific setting " ,
suggestions : [ " aws-access-key " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.AmazonSES } ,
key : :secret ,
type : :string ,
description : " `Swoosh.Adapters.AmazonSES` adapter specific setting " ,
suggestions : [ " aws-secret-key " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.Dyn } ,
key : :api_key ,
2019-09-29 10:17:38 +02:00
label : " API key " ,
2019-08-30 12:20:09 +02:00
type : :string ,
description : " `Swoosh.Adapters.Dyn` adapter specific setting " ,
suggestions : [ " my-api-key " ]
} ,
%{
group : { :subgroup , Swoosh.Adapters.SocketLabs } ,
key : :server_id ,
type : :string ,
2019-09-17 21:57:13 +02:00
description : " `Swoosh.Adapters.SocketLabs` adapter specific setting "
2019-08-30 12:20:09 +02:00
} ,
%{
group : { :subgroup , Swoosh.Adapters.SocketLabs } ,
key : :api_key ,
2019-09-29 10:17:38 +02:00
label : " API key " ,
2019-08-30 12:20:09 +02:00
type : :string ,
2019-09-17 21:57:13 +02:00
description : " `Swoosh.Adapters.SocketLabs` adapter specific setting "
2019-08-30 12:20:09 +02:00
} ,
%{
group : { :subgroup , Swoosh.Adapters.Gmail } ,
key : :access_token ,
type : :string ,
2019-09-17 21:57:13 +02:00
description : " `Swoosh.Adapters.Gmail` adapter specific setting "
2019-08-30 12:20:09 +02:00
}
]
} ,
2019-12-20 08:22:53 +01:00
%{
group : :swoosh ,
type : :group ,
description : " `Swoosh.Adapters.Local` adapter specific settings " ,
children : [
%{
group : { :subgroup , Swoosh.Adapters.Local } ,
key : :serve_mailbox ,
type : :boolean ,
description : " Run the preview server together as part of your app "
} ,
%{
group : { :subgroup , Swoosh.Adapters.Local } ,
key : :preview_port ,
type : :integer ,
description : " The preview server port " ,
suggestions : [ 4001 ]
}
]
} ,
2019-08-30 12:20:09 +02:00
%{
group : :pleroma ,
key : :uri_schemes ,
type : :group ,
description : " URI schemes related settings " ,
children : [
%{
key : :valid_schemes ,
type : { :list , :string } ,
description : " List of the scheme part that is considered valid to be an URL " ,
suggestions : [
2019-09-29 10:17:38 +02:00
" https " ,
" http " ,
" dat " ,
" dweb " ,
" gopher " ,
" ipfs " ,
" ipns " ,
" irc " ,
" ircs " ,
" magnet " ,
" mailto " ,
" mumble " ,
" ssb " ,
" xmpp "
2019-08-30 12:20:09 +02:00
]
}
]
} ,
%{
group : :pleroma ,
key : :instance ,
type : :group ,
description : " Instance-related settings " ,
children : [
%{
key : :name ,
type : :string ,
description : " Name of the instance " ,
suggestions : [
" Pleroma "
]
} ,
%{
key : :email ,
2020-01-24 09:19:12 +01:00
label : " Admin Email Address " ,
2019-08-30 12:20:09 +02:00
type : :string ,
description : " Email used to reach an Administrator/Moderator of the instance " ,
suggestions : [
" email@example.com "
]
} ,
%{
key : :notify_email ,
2020-01-24 09:19:12 +01:00
label : " Sender Email Address " ,
2019-08-30 12:20:09 +02:00
type : :string ,
2020-01-24 09:19:12 +01:00
description : " Envelope FROM address for mail sent via Pleroma " ,
2019-08-30 12:20:09 +02:00
suggestions : [
" notify@example.com "
]
} ,
%{
key : :description ,
type : :string ,
2020-02-13 19:09:11 +01:00
description :
" The instance's description. It can be seen in nodeinfo and `/api/v1/instance` " ,
2019-08-30 12:20:09 +02:00
suggestions : [
" Very cool instance "
]
} ,
%{
key : :limit ,
type : :integer ,
description : " Posts character limit (CW/Subject included in the counter) " ,
suggestions : [
5_000
]
} ,
2020-01-10 15:54:54 +01:00
%{
key : :chat_limit ,
type : :integer ,
description : " Character limit of the instance chat messages " ,
suggestions : [
5_000
]
} ,
2019-08-30 12:20:09 +02:00
%{
key : :remote_limit ,
type : :integer ,
description : " Hard character limit beyond which remote posts will be dropped " ,
suggestions : [
100_000
]
} ,
%{
key : :upload_limit ,
type : :integer ,
description : " File size limit of uploads (except for avatar, background, banner) " ,
suggestions : [
16_000_000
]
} ,
%{
key : :avatar_upload_limit ,
type : :integer ,
description : " File size limit of user's profile avatars " ,
suggestions : [
2_000_000
]
} ,
%{
key : :background_upload_limit ,
type : :integer ,
description : " File size limit of user's profile backgrounds " ,
suggestions : [
4_000_000
]
} ,
%{
key : :banner_upload_limit ,
type : :integer ,
description : " File size limit of user's profile banners " ,
suggestions : [
4_000_000
]
} ,
%{
key : :poll_limits ,
type : :map ,
description : " A map with poll limits for local polls " ,
suggestions : [
%{
max_options : 20 ,
max_option_chars : 200 ,
min_expiration : 0 ,
max_expiration : 31_536_000
}
] ,
children : [
%{
key : :max_options ,
type : :integer ,
description : " Maximum number of options " ,
suggestions : [ 20 ]
} ,
%{
key : :max_option_chars ,
type : :integer ,
description : " Maximum number of characters per option " ,
suggestions : [ 200 ]
} ,
%{
key : :min_expiration ,
type : :integer ,
description : " Minimum expiration time (in seconds) " ,
suggestions : [ 0 ]
} ,
%{
key : :max_expiration ,
type : :integer ,
description : " Maximum expiration time (in seconds) " ,
suggestions : [ 3600 ]
}
]
} ,
%{
key : :registrations_open ,
type : :boolean ,
2020-02-13 15:01:39 +01:00
description :
" Enable registrations for anyone. Invitations require this setting to be disabled. "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :invites_enabled ,
type : :boolean ,
2020-02-13 15:01:39 +01:00
description :
" Enable user invitations for admins (depends on `registrations_open` being disabled). "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :account_activation_required ,
type : :boolean ,
2020-02-11 22:21:36 +01:00
description : " Require users to confirm their emails before signing in. "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :federating ,
type : :boolean ,
2020-02-11 22:21:36 +01:00
description : " Enable federation with other instances. "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :federation_incoming_replies_max_depth ,
2020-01-14 13:00:38 +01:00
label : " Fed. incoming replies max depth " ,
2019-08-30 12:20:09 +02:00
type : :integer ,
description :
2020-02-15 18:41:38 +01:00
" Max. depth of reply-to and reply activities fetching on incoming federation, to prevent out-of-memory situations while " <>
2020-01-25 17:45:51 +01:00
" fetching very long threads. If set to `nil`, threads of any depth will be fetched. Lower this value if you experience out-of-memory crashes. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
100
]
} ,
%{
key : :federation_reachability_timeout_days ,
2020-01-14 13:00:38 +01:00
label : " Fed. reachability timeout days " ,
2019-08-30 12:20:09 +02:00
type : :integer ,
description :
2020-01-25 17:45:51 +01:00
" Timeout (in days) of each external federation target being unreachable prior to pausing federating to it. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
7
]
} ,
%{
key : :federation_publisher_modules ,
2019-09-29 10:17:38 +02:00
type : { :list , :module } ,
2019-08-30 12:20:09 +02:00
description : " List of modules for federation publishing " ,
suggestions : [
2019-10-18 00:31:20 +02:00
Pleroma.Web.ActivityPub.Publisher
2019-08-30 12:20:09 +02:00
]
} ,
%{
key : :allow_relay ,
type : :boolean ,
2019-09-13 17:05:19 +02:00
description : " Enable Pleroma's Relay, which makes it possible to follow a whole instance "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :rewrite_policy ,
2019-09-29 10:17:38 +02:00
type : [ :module , { :list , :module } ] ,
2019-08-30 12:20:09 +02:00
description : " A list of MRF policies enabled " ,
2019-09-29 10:17:38 +02:00
suggestions :
Generator . list_modules_in_dir (
" lib/pleroma/web/activity_pub/mrf " ,
" Elixir.Pleroma.Web.ActivityPub.MRF. "
)
2019-08-30 12:20:09 +02:00
} ,
%{
key : :public ,
type : :boolean ,
description :
" Makes the client API in authentificated mode-only except for user-profiles. " <>
2020-01-25 17:45:51 +01:00
" Useful for disabling the Local Timeline and The Whole Known Network. "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :quarantined_instances ,
type : { :list , :string } ,
description :
2020-01-25 17:45:51 +01:00
" List of ActivityPub instances where private (DMs, followers-only) activities will not be send " ,
2019-08-30 12:20:09 +02:00
suggestions : [
" quarantined.com " ,
" *.quarantined.com "
]
} ,
%{
key : :managed_config ,
type : :boolean ,
description :
2019-09-13 17:05:19 +02:00
" Whenether the config for pleroma-fe is configured in this config or in static/config.json "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :static_dir ,
type : :string ,
description : " Instance static directory " ,
suggestions : [
" instance/static/ "
]
} ,
%{
key : :allowed_post_formats ,
type : { :list , :string } ,
description : " MIME-type list of formats allowed to be posted (transformed into HTML) " ,
suggestions : [
2019-12-16 16:13:22 +01:00
" text/plain " ,
" text/html " ,
" text/markdown " ,
" text/bbcode "
2019-08-30 12:20:09 +02:00
]
} ,
%{
key : :mrf_transparency ,
2019-09-29 10:17:38 +02:00
label : " MRF transparency " ,
2019-08-30 12:20:09 +02:00
type : :boolean ,
description :
2019-09-13 17:05:19 +02:00
" Make the content of your Message Rewrite Facility settings public (via nodeinfo) "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :mrf_transparency_exclusions ,
2019-09-29 10:17:38 +02:00
label : " MRF transparency exclusions " ,
2019-08-30 12:20:09 +02:00
type : { :list , :string } ,
description :
2020-01-25 17:45:51 +01:00
" Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
2019-09-29 10:17:38 +02:00
" exclusion.com "
2019-08-30 12:20:09 +02:00
]
} ,
%{
key : :extended_nickname_format ,
type : :boolean ,
description :
2020-02-11 22:21:36 +01:00
" Enable to use extended local nicknames format (allows underscores/dashes). " <>
2020-01-25 17:45:51 +01:00
" This will break federation with older software for theses nicknames. "
2019-08-30 12:20:09 +02:00
} ,
2020-01-30 23:20:37 +01:00
%{
key : :cleanup_attachments ,
type : :boolean ,
description : """
2020-02-13 18:31:02 +01:00
Enable to remove associated attachments when status is removed .
2020-01-30 23:20:37 +01:00
This will not affect duplicates and attachments without status .
Enabling this will increase load to database when deleting statuses on larger instances .
"""
2019-08-30 12:20:09 +02:00
} ,
%{
key : :max_pinned_statuses ,
type : :integer ,
2020-01-25 17:45:51 +01:00
description : " The maximum number of pinned statuses. 0 will disable the feature. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
0 ,
1 ,
3
]
} ,
%{
key : :autofollowed_nicknames ,
type : { :list , :string } ,
description :
" Set to nicknames of (local) users that every new user should automatically follow " ,
suggestions : [
" lain " ,
" kaniini " ,
" lanodan " ,
" rinpatch "
]
} ,
%{
2020-02-11 22:39:19 +01:00
key : :attachment_links ,
2019-08-30 12:20:09 +02:00
type : :boolean ,
2020-02-13 15:02:33 +01:00
description : " Enable to automatically add attachment link text to statuses "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :welcome_message ,
type : :string ,
description :
2020-01-25 17:45:51 +01:00
" A message that will be sent to a newly registered users as a direct message " ,
2019-08-30 12:20:09 +02:00
suggestions : [
2019-09-29 10:17:38 +02:00
" Hi, @username! Welcome on board! "
2019-08-30 12:20:09 +02:00
]
} ,
%{
key : :welcome_user_nickname ,
type : :string ,
description : " The nickname of the local user that sends the welcome message " ,
suggestions : [
2019-09-29 10:17:38 +02:00
" lain "
2019-08-30 12:20:09 +02:00
]
} ,
%{
key : :max_report_comment_size ,
type : :integer ,
2020-01-25 17:45:51 +01:00
description : " The maximum size of the report comment. Default: 1000. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
1_000
]
} ,
%{
key : :safe_dm_mentions ,
type : :boolean ,
description :
2020-02-11 22:21:36 +01:00
" If enabled, only mentions at the beginning of a post will be used to address people in direct messages. " <>
2020-01-25 17:45:51 +01:00
" This is to prevent accidental mentioning of people when talking about them (e.g. \" @admin please keep an eye on @bad_actor \" ). " <>
2020-02-11 22:21:36 +01:00
" Default: disabled "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :healthcheck ,
type : :boolean ,
2020-02-13 18:31:02 +01:00
description : " If enabled, system data will be shown on `/api/pleroma/healthcheck` "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :remote_post_retention_days ,
type : :integer ,
description :
" The default amount of days to retain remote posts when pruning the database " ,
suggestions : [
90
]
} ,
%{
key : :user_bio_length ,
type : :integer ,
2020-01-25 17:45:51 +01:00
description : " A user bio maximum length. Default: 5000. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
5_000
]
} ,
%{
key : :user_name_length ,
type : :integer ,
2020-01-25 17:45:51 +01:00
description : " A user name maximum length. Default: 100. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
100
]
} ,
%{
key : :skip_thread_containment ,
type : :boolean ,
2020-02-11 22:21:36 +01:00
description : " Skip filtering out broken threads. Default: enabled "
2019-08-30 12:20:09 +02:00
} ,
%{
key : :limit_to_local_content ,
2020-02-05 17:05:20 +01:00
type : { :dropdown , :atom } ,
2019-08-30 12:20:09 +02:00
description :
2020-01-25 17:45:51 +01:00
" Limit unauthenticated users to search for local statutes and users only. Default: `:unauthenticated`. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
:unauthenticated ,
:all ,
false
]
} ,
%{
key : :max_account_fields ,
type : :integer ,
2020-01-25 17:45:51 +01:00
description : " The maximum number of custom fields in the user profile. Default: 10. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
10
]
} ,
%{
key : :max_remote_account_fields ,
type : :integer ,
description :
2020-01-25 17:45:51 +01:00
" The maximum number of custom fields in the remote user profile. Default: 20. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
20
]
} ,
%{
key : :account_field_name_length ,
type : :integer ,
2020-01-25 17:45:51 +01:00
description : " An account field name maximum length. Default: 512. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
512
]
} ,
%{
key : :account_field_value_length ,
type : :integer ,
2020-01-25 17:45:51 +01:00
description : " An account field value maximum length. Default: 2048. " ,
2019-08-30 12:20:09 +02:00
suggestions : [
2019-09-16 16:48:01 +02:00
2048
2019-08-30 12:20:09 +02:00
]
} ,
%{
key : :external_user_synchronization ,
type : :boolean ,
2019-09-13 17:05:19 +02:00
description : " Enabling following/followers counters synchronization for external users "
2019-08-30 12:20:09 +02:00
}
]
} ,
%{
group : :logger ,
type : :group ,
description : " Logger-related settings " ,
children : [
%{
key : :backends ,
type : [ :atom , :tuple , :module ] ,
description :
2020-01-25 17:45:51 +01:00
" Where logs will be sent, :console - send logs to stdout, { ExSyslogger, :ex_syslogger } - to syslog, Quack.Logger - to Slack. " ,
2019-09-29 10:17:38 +02:00
suggestions : [ :console , { ExSyslogger , :ex_syslogger } , Quack.Logger ]
2019-08-30 12:20:09 +02:00
}
]
} ,
%{
group : :logger ,
type : :group ,
key : :ex_syslogger ,
description : " ExSyslogger-related settings " ,
children : [
%{
key : :level ,
2020-02-05 17:05:20 +01:00
type : { :dropdown , :atom } ,
2019-08-30 12:20:09 +02:00
description : " Log level " ,
suggestions : [ :debug , :info , :warn , :error ]
} ,
%{
key : :ident ,
type : :string ,
description :
" A string that's prepended to every message, and is typically set to the app name " ,
suggestions : [ " pleroma " ]
} ,
%{
key : :format ,
type : :string ,
2020-01-25 17:45:51 +01:00
description : " Default: \" $date $time [$level] $levelpad$node $metadata $message \" . " ,
2019-08-30 12:20:09 +02:00
suggestions : [ " $metadata[$level] $message " ]
} ,
%{
key : :metadata ,
type : { :list , :atom } ,
2019-09-29 10:17:38 +02:00
suggestions : [ :request_id ]
2019-08-30 12:20:09 +02:00
}
]