+# .i;;;;i.
+# iYcviii;vXY:
+# .YXi .i1c.
+# .YC. . in7.
+# .vc. ...... ;1c.
+# i7, .. .;1;
+# i7, .. ... .Y1i
+# ,7v .6MMM@; .YX,
+# .7;. ..IMMMMMM1 :t7.
+# .;Y. ;$MMMMMM9. :tc.
+# vY. .. .nMMM@MMU. ;1v.
+# i7i ... .#MM@M@C. .....:71i
+# it: .... $MMM@9;.,i;;;i,;tti
+# :t7. ..... 0MMMWv.,iii:::,,;St.
+# .nC. ..... IMMMQ..,::::::,.,czX.
+# .ct: ....... .ZMMMI..,:::::::,,:76Y.
+# c2: ......,i..Y$M@t..:::::::,,..inZY
+# vov ......:ii..c$MBc..,,,,,,,,,,..iI9i
+# i9Y ......iii:..7@MA,..,,,,,,,,,....;AA:
+# iIS. ......:ii::..;@MI....,............;Ez.
+# .I9. ......:i::::...8M1..................C0z.
+# .z9; ......:i::::,.. .i:...................zWX.
+# vbv ......,i::::,,. ................. :AQY
+# c6Y. .,...,::::,,..:t0@@QY. ................ :8bi
+# :6S. ..,,...,:::,,,..EMMMMMMI. ............... .;bZ,
+# :6o, .,,,,..:::,,,..i#MMMMMM#v................. YW2.
+# .n8i ..,,,,,,,::,,,,.. tMMMMM@C:.................. .1Wn
+# 7Uc. .:::,,,,,::,,,,.. i1t;,..................... .UEi
+# 7C...::::::::::::,,,,.. .................... vSi.
+# ;1;...,,::::::,......... .................. Yz:
+# v97,......... .voC.
+# izAotX7777777777777777777777777777777777777777Y7n92:
+# .;CoIIIIIUAA666666699999ZZZZZZZZZZZZZZZZZZZZ6ov.
+#
+# !!! ATTENTION !!!
+# DO NOT EDIT THIS FILE! THIS FILE CONTAINS THE DEFAULT VALUES FOR THE CON-
+# FIGURATION! EDIT YOUR SECRET FILE (either prod.secret.exs, dev.secret.exs).
+#
# This file is responsible for configuring your application
# and its dependencies with the aid of the Mix.Config module.
#
config :pleroma, Pleroma.Repo,
types: Pleroma.PostgresTypes,
- telemetry_event: [Pleroma.Repo.Instrumenter]
+ telemetry_event: [Pleroma.Repo.Instrumenter],
+ migration_lock: nil
config :pleroma, Pleroma.Captcha,
enabled: false,
shortcode_globs: ["/emoji/custom/**/*.png"],
groups: [
# Put groups that have higher priority than defaults here. Example in `docs/config/custom_emoji.md`
- Finmoji: "/finmoji/128px/*-128.png",
- Custom: ["/emoji/*.png", "/emoji/custom/*.png"]
- ]
+ Custom: ["/emoji/*.png", "/emoji/**/*.png"]
+ ],
+ default_manifest: "https://git.pleroma.social/pleroma/emoji-index/raw/master/index.json"
config :pleroma, :uri_schemes,
valid_schemes: [
instrumenters: [Pleroma.Web.Endpoint.Instrumenter],
url: [host: "localhost"],
http: [
+ ip: {127, 0, 0, 1},
dispatch: [
{:_,
[
signing_salt: "CqaoopA2",
render_errors: [view: Pleroma.Web.ErrorView, accepts: ~w(json)],
pubsub: [name: Pleroma.PubSub, adapter: Phoenix.PubSub.PG2],
- secure_cookie_flag: true
+ secure_cookie_flag: true,
+ extra_cookie_attrs: [
+ "SameSite=Lax"
+ ]
# Configures Elixir's Logger
config :logger, :console,
"application/ld+json" => ["activity+json"]
}
-config :pleroma, :websub, Pleroma.Web.Websub
-config :pleroma, :ostatus, Pleroma.Web.OStatus
-config :pleroma, :httpoison, Pleroma.HTTP
config :tesla, adapter: Tesla.Adapter.Hackney
# Configures http settings, upstream proxy etc.
config :pleroma, :http,
proxy_url: nil,
+ send_user_agent: true,
adapter: [
ssl_options: [
# We don't support TLS v1.3 yet
config :pleroma, :instance,
name: "Pleroma",
email: "example@example.com",
+ notify_email: "noreply@example.com",
description: "A Pleroma instance, an alternative fediverse server",
limit: 5_000,
remote_limit: 100_000,
avatar_upload_limit: 2_000_000,
background_upload_limit: 4_000_000,
banner_upload_limit: 4_000_000,
+ poll_limits: %{
+ max_options: 20,
+ max_option_chars: 200,
+ min_expiration: 0,
+ max_expiration: 365 * 24 * 60 * 60
+ },
registrations_open: true,
federating: true,
federation_reachability_timeout_days: 7,
+ federation_publisher_modules: [
+ Pleroma.Web.ActivityPub.Publisher,
+ Pleroma.Web.Websub,
+ Pleroma.Web.Salmon
+ ],
allow_relay: true,
rewrite_policy: Pleroma.Web.ActivityPub.MRF.NoOpPolicy,
public: true,
allowed_post_formats: [
"text/plain",
"text/html",
- "text/markdown"
+ "text/markdown",
+ "text/bbcode"
],
- finmoji_enabled: true,
mrf_transparency: true,
autofollowed_nicknames: [],
max_pinned_statuses: 1,
welcome_user_nickname: nil,
welcome_message: nil,
max_report_comment_size: 1000,
- safe_dm_mentions: false
+ safe_dm_mentions: false,
+ healthcheck: false,
+ remote_post_retention_days: 90,
+ skip_thread_containment: true,
+ limit_to_local_content: :unauthenticated,
+ dynamic_configuration: false
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",
- logo_mask: true,
- logo_margin: "0.1em",
- background: "/static/aurora_borealis.jpg",
- redirect_root_no_login: "/main/all",
- redirect_root_login: "/main/friends",
- show_instance_panel: true,
- scope_options_enabled: false,
- formatting_options_enabled: false,
- collapse_message_with_subject: false,
- hide_post_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",
showInstanceSpecificPanel: true
}
+config :pleroma, :assets,
+ mascots: [
+ pleroma_fox_tan: %{
+ url: "/images/pleroma-fox-tan-smol.png",
+ mime_type: "image/png"
+ },
+ pleroma_fox_tan_shy: %{
+ url: "/images/pleroma-fox-tan-shy.png",
+ mime_type: "image/png"
+ }
+ ],
+ default_mascot: :pleroma_fox_tan
+
config :pleroma, :activitypub,
accept_blocks: true,
unfollow_blocked: true,
media_removal: [],
media_nsfw: [],
federated_timeline_removal: [],
+ report_removal: [],
reject: [],
- accept: []
+ accept: [],
+ avatar_removal: [],
+ banner_removal: []
config :pleroma, :mrf_keyword,
reject: [],
federated_timeline_removal: [],
replace: []
+config :pleroma, :mrf_subchain, match_actor: %{}
+
config :pleroma, :rich_media, enabled: true
config :pleroma, :media_proxy,
follow_redirect: true,
pool: :media
]
- ]
+ ],
+ whitelist: []
config :pleroma, :chat, enabled: true
ip: {0, 0, 0, 0},
port: 9999
-config :pleroma, Pleroma.Web.Metadata, providers: [], unfurl_nsfw: false
+config :pleroma, Pleroma.Web.Metadata,
+ providers: [Pleroma.Web.Metadata.Providers.RelMe],
+ unfurl_nsfw: false
config :pleroma, :suggestions,
enabled: false,
third_party_engine:
"http://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-suggestions-api.cgi?{{host}}+{{user}}",
timeout: 300_000,
- limit: 23,
- web: "https://vinayaka.distsn.org/?{{host}}+{{user}}"
+ limit: 40,
+ web: "https://vinayaka.distsn.org"
config :pleroma, :http_security,
enabled: true,
"activities",
"api",
"auth",
+ "check_password",
"dev",
"friend-requests",
"inbox",
"status",
"tag",
"user-search",
+ "user_exists",
"users",
"web"
]
web_push: 50,
mailer: 10,
transmogrifier: 20,
- scheduled_activities: 10
+ scheduled_activities: 10,
+ background: 5
config :pleroma, :fetch_initial_posts,
enabled: false,
opts: [
scheme: true,
extra: true,
+ # TODO: Set to :no_scheme when it works properly
+ validate_tld: true,
class: false,
strip_prefix: false,
new_window: false,
base: System.get_env("LDAP_BASE") || "dc=example,dc=com",
uid: System.get_env("LDAP_UID") || "cn"
-oauth_consumer_strategies = String.split(System.get_env("OAUTH_CONSUMER_STRATEGIES") || "")
+config :esshd,
+ enabled: false
+
+oauth_consumer_strategies =
+ System.get_env("OAUTH_CONSUMER_STRATEGIES")
+ |> to_string()
+ |> String.split()
+ |> Enum.map(&hd(String.split(&1, ":")))
ueberauth_providers =
for strategy <- oauth_consumer_strategies do
config :pleroma, :auth, oauth_consumer_strategies: oauth_consumer_strategies
-config :pleroma, Pleroma.Mailer, adapter: Swoosh.Adapters.Sendmail
+config :pleroma, Pleroma.Emails.Mailer, adapter: Swoosh.Adapters.Sendmail
config :prometheus, Pleroma.Web.Endpoint.MetricsExporter, path: "/api/pleroma/app_metrics"
total_user_limit: 300,
enabled: true
+config :pleroma, :oauth2,
+ token_expires_in: 600,
+ issue_new_refresh_token: true,
+ clean_expired_tokens: false,
+ clean_expired_tokens_interval: 86_400_000
+
+config :pleroma, :database, rum_enabled: false
+
+config :pleroma, :env, Mix.env()
+
+config :http_signatures,
+ adapter: Pleroma.Signature
+
+config :pleroma, :rate_limit,
+ search: [{1000, 10}, {1000, 30}],
+ app_account_creation: {1_800_000, 25}
+
# 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"