config :pleroma, Pleroma.Repo, types: Pleroma.PostgresTypes
+config :pleroma, Pleroma.Captcha,
+ enabled: false,
+ seconds_valid: 60,
+ method: Pleroma.Captcha.Kocaptcha
+
+config :pleroma, :hackney_pools,
+ federation: [
+ max_connections: 50,
+ timeout: 150_000
+ ],
+ media: [
+ max_connections: 50,
+ timeout: 150_000
+ ],
+ upload: [
+ max_connections: 25,
+ timeout: 300_000
+ ]
+
+config :pleroma, Pleroma.Captcha.Kocaptcha, endpoint: "https://captcha.kotobank.ch"
+
+# Upload configuration
config :pleroma, Pleroma.Upload,
uploader: Pleroma.Uploaders.Local,
- strip_exif: false
+ filters: [],
+ proxy_remote: false,
+ proxy_opts: [
+ redirect_on_failure: false,
+ max_body_length: 25 * 1_048_576,
+ http: [
+ follow_redirect: true,
+ pool: :upload
+ ]
+ ]
-config :pleroma, Pleroma.Uploaders.Local,
- uploads: "uploads",
- uploads_url: "{{base_url}}/media/{{file}}"
+config :pleroma, Pleroma.Uploaders.Local, uploads: "uploads"
config :pleroma, Pleroma.Uploaders.S3,
bucket: nil,
- public_endpoint: "https://s3.amazonaws.com",
- force_media_proxy: false
+ public_endpoint: "https://s3.amazonaws.com"
+
+config :pleroma, Pleroma.Uploaders.MDII,
+ cgi: "https://mdii.sakura.ne.jp/mdii-post.cgi",
+ files: "https://mdii.sakura.ne.jp"
config :pleroma, :emoji, shortcode_globs: ["/emoji/custom/**/*.png"]
"xmpp"
]
+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
+]
+
# Configures the endpoint
config :pleroma, Pleroma.Web.Endpoint,
url: [host: "localhost"],
+ http: [
+ dispatch: [
+ {:_,
+ [
+ {"/api/v1/streaming", Elixir.Pleroma.Web.MastodonAPI.WebsocketHandler, []},
+ {"/socket/websocket", Phoenix.Endpoint.CowboyWebSocket,
+ {nil, {Pleroma.Web.Endpoint, Pleroma.Web.UserSocket, websocket_config}}},
+ {:_, Plug.Adapters.Cowboy.Handler, {Pleroma.Web.Endpoint, []}}
+ ]}
+ ]
+ ],
protocol: "https",
secret_key_base: "aK4Abxf29xU9TTDKre9coZPUgevcVCFQJe/5xP/7Lt4BEif6idBIbjupVbOrbKxl",
+ signing_salt: "CqaoopA2",
render_errors: [view: Pleroma.Web.ErrorView, accepts: ~w(json)],
pubsub: [name: Pleroma.PubSub, adapter: Phoenix.PubSub.PG2],
secure_cookie_flag: true
format: "$time $metadata[$level] $message\n",
metadata: [:request_id]
+config :logger, :ex_syslogger,
+ level: :debug,
+ ident: "Pleroma",
+ format: "$metadata[$level] $message",
+ metadata: [:request_id]
+
config :mime, :types, %{
"application/xml" => ["xml"],
"application/xrd+xml" => ["xrd+xml"],
+ "application/jrd+json" => ["jrd+json"],
"application/activity+json" => ["activity+json"],
"application/ld+json" => ["activity+json"]
}
config :pleroma, :websub, Pleroma.Web.Websub
config :pleroma, :ostatus, Pleroma.Web.OStatus
config :pleroma, :httpoison, Pleroma.HTTP
-
-version =
- with {version, 0} <- System.cmd("git", ["rev-parse", "HEAD"]) do
- "Pleroma #{Mix.Project.config()[:version]} #{String.trim(version)}"
- else
- _ -> "Pleroma #{Mix.Project.config()[:version]} dev"
- end
+config :tesla, adapter: Tesla.Adapter.Hackney
# Configures http settings, upstream proxy etc.
config :pleroma, :http, proxy_url: nil
config :pleroma, :instance,
- version: version,
name: "Pleroma",
email: "example@example.com",
description: "A Pleroma instance, an alternative fediverse server",
- limit: 5000,
+ limit: 5_000,
+ remote_limit: 100_000,
upload_limit: 16_000_000,
avatar_upload_limit: 2_000_000,
background_upload_limit: 4_000_000,
banner_upload_limit: 4_000_000,
registrations_open: true,
federating: true,
+ federation_reachability_timeout_days: 7,
allow_relay: true,
rewrite_policy: Pleroma.Web.ActivityPub.MRF.NoOpPolicy,
public: true,
quarantined_instances: [],
managed_config: true,
+ static_dir: "instance/static/",
allowed_post_formats: [
"text/plain",
"text/html",
"text/markdown"
],
finmoji_enabled: true,
- mrf_transparency: true
+ mrf_transparency: true,
+ autofollowed_nicknames: [],
+ max_pinned_statuses: 1,
+ no_attachment_links: false,
+ welcome_user_nickname: nil,
+ welcome_message: nil,
+ max_report_comment_size: 1000
config :pleroma, :markup,
# XXX - unfortunately, inline images must be enabled by default right now, because
Pleroma.HTML.Scrubber.Default
]
+# Deprecated, will be gone in 1.0
config :pleroma, :fe,
theme: "pleroma-dark",
logo: "/static/logo.png",
formatting_options_enabled: false,
collapse_message_with_subject: false,
hide_post_stats: false,
- hide_user_stats: false
+ hide_user_stats: false,
+ scope_copy: true,
+ subject_line_behavior: "email",
+ always_show_subject_input: true
+
+config :pleroma, :frontend_configurations,
+ pleroma_fe: %{
+ theme: "pleroma-dark",
+ logo: "/static/logo.png",
+ background: "/images/city.jpg",
+ redirectRootNoLogin: "/main/all",
+ redirectRootLogin: "/main/friends",
+ showInstanceSpecificPanel: true,
+ scopeOptionsEnabled: false,
+ formattingOptionsEnabled: false,
+ collapseMessageWithSubject: false,
+ hidePostStats: false,
+ hideUserStats: false,
+ scopeCopy: true,
+ subjectLineBehavior: "email",
+ alwaysShowSubjectInput: true
+ }
config :pleroma, :activitypub,
accept_blocks: true,
allow_followersonly: false,
allow_direct: false
+config :pleroma, :mrf_hellthread,
+ delist_threshold: 10,
+ reject_threshold: 20
+
config :pleroma, :mrf_simple,
media_removal: [],
media_nsfw: [],
reject: [],
accept: []
+config :pleroma, :mrf_keyword,
+ reject: [],
+ federated_timeline_removal: [],
+ replace: []
+
+config :pleroma, :rich_media, enabled: true
+
config :pleroma, :media_proxy,
enabled: false,
- redirect_on_failure: true
-
-# base_url: "https://cache.pleroma.social"
+ proxy_opts: [
+ redirect_on_failure: false,
+ max_body_length: 25 * 1_048_576,
+ http: [
+ follow_redirect: true,
+ pool: :media
+ ]
+ ]
config :pleroma, :chat, enabled: true
ip: {0, 0, 0, 0},
port: 9999
+config :pleroma, Pleroma.Web.Metadata, providers: [], unfurl_nsfw: false
+
config :pleroma, :suggestions,
enabled: false,
third_party_engine:
limit: 23,
web: "https://vinayaka.distsn.org/?{{host}}+{{user}}"
-config :pleroma, :csp,
+config :pleroma, :http_security,
enabled: true,
sts: false,
sts_max_age: 31_536_000,
- ct_max_age: 2_592_000
+ ct_max_age: 2_592_000,
+ referrer_policy: "same-origin"
config :cors_plug,
max_age: 86_400,
credentials: true,
headers: ["Authorization", "Content-Type", "Idempotency-Key"]
+config :pleroma, Pleroma.User,
+ restricted_nicknames: [
+ ".well-known",
+ "~",
+ "about",
+ "activities",
+ "api",
+ "auth",
+ "dev",
+ "friend-requests",
+ "inbox",
+ "internal",
+ "main",
+ "media",
+ "nodeinfo",
+ "notice",
+ "oauth",
+ "objects",
+ "ostatus_subscribe",
+ "pleroma",
+ "proxy",
+ "push",
+ "registration",
+ "relay",
+ "settings",
+ "status",
+ "tag",
+ "user-search",
+ "users",
+ "web"
+ ]
+
+config :pleroma, Pleroma.Web.Federator.RetryQueue,
+ enabled: false,
+ max_jobs: 20,
+ initial_timeout: 30,
+ max_retries: 5
+
+config :pleroma, Pleroma.Jobs,
+ federator_incoming: [max_jobs: 50],
+ federator_outgoing: [max_jobs: 50],
+ mailer: [max_jobs: 10]
+
# Import environment specific config. This must remain at the bottom
# of this file so it overrides the configuration defined above.
import_config "#{Mix.env()}.exs"