config.exs 8.44 KB
Newer Older
lain's avatar
lain committed
1 2 3 4 5 6 7 8
# This file is responsible for configuring your application
# and its dependencies with the aid of the Mix.Config module.
#
# This configuration file is loaded before any dependency and
# is restricted to this project.
use Mix.Config

# General application configuration
lain's avatar
lain committed
9
config :pleroma, ecto_repos: [Pleroma.Repo]
lain's avatar
lain committed
10

lain's avatar
lain committed
11
config :pleroma, Pleroma.Repo, types: Pleroma.PostgresTypes
lain's avatar
lain committed
12

13
config :pleroma, Pleroma.Captcha,
vaartis's avatar
vaartis committed
14
  enabled: false,
15
  seconds_valid: 60,
16 17
  method: Pleroma.Captcha.Kocaptcha

href's avatar
href committed
18 19 20 21 22 23 24 25 26 27 28 29 30 31
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
  ]

32
config :pleroma, Pleroma.Captcha.Kocaptcha, endpoint: "https://captcha.kotobank.ch"
33

href's avatar
href committed
34
# Upload configuration
gled's avatar
gled committed
35
config :pleroma, Pleroma.Upload,
Thurloat's avatar
Thurloat committed
36
  uploader: Pleroma.Uploaders.Local,
href's avatar
href committed
37
  filters: [],
href's avatar
href committed
38
  proxy_remote: false,
href's avatar
href committed
39 40 41 42 43 44 45 46
  proxy_opts: [
    redirect_on_failure: false,
    max_body_length: 25 * 1_048_576,
    http: [
      follow_redirect: true,
      pool: :upload
    ]
  ]
href's avatar
href committed
47

href's avatar
href committed
48
config :pleroma, Pleroma.Uploaders.Local, uploads: "uploads"
49

50 51
config :pleroma, Pleroma.Uploaders.S3,
  bucket: nil,
href's avatar
href committed
52
  public_endpoint: "https://s3.amazonaws.com"
lain's avatar
lain committed
53

hakabahitoyo's avatar
hakabahitoyo committed
54
config :pleroma, Pleroma.Uploaders.MDII,
hakabahitoyo's avatar
hakabahitoyo committed
55 56
  cgi: "https://mdii.sakura.ne.jp/mdii-post.cgi",
  files: "https://mdii.sakura.ne.jp"
Hakaba Hitoyo's avatar
Hakaba Hitoyo committed
57

Jorty's avatar
Jorty committed
58
config :pleroma, :emoji, shortcode_globs: ["/emoji/custom/**/*.png"]
Jorty's avatar
Jorty committed
59

60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
config :pleroma, :uri_schemes,
  valid_schemes: [
    "https",
    "http",
    "dat",
    "dweb",
    "gopher",
    "ipfs",
    "ipns",
    "irc",
    "ircs",
    "magnet",
    "mailto",
    "mumble",
    "ssb",
    "xmpp"
  ]
77

lain's avatar
lain committed
78 79 80 81 82 83 84 85 86 87 88
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
]

lain's avatar
lain committed
89 90 91
# Configures the endpoint
config :pleroma, Pleroma.Web.Endpoint,
  url: [host: "localhost"],
href's avatar
href committed
92 93 94 95 96
  http: [
    dispatch: [
      {:_,
       [
         {"/api/v1/streaming", Elixir.Pleroma.Web.MastodonAPI.WebsocketHandler, []},
lain's avatar
lain committed
97 98
         {"/socket/websocket", Phoenix.Endpoint.CowboyWebSocket,
          {nil, {Pleroma.Web.Endpoint, Pleroma.Web.UserSocket, websocket_config}}},
href's avatar
href committed
99 100 101 102
         {:_, Plug.Adapters.Cowboy.Handler, {Pleroma.Web.Endpoint, []}}
       ]}
    ]
  ],
lain's avatar
lain committed
103
  protocol: "https",
lain's avatar
lain committed
104
  secret_key_base: "aK4Abxf29xU9TTDKre9coZPUgevcVCFQJe/5xP/7Lt4BEif6idBIbjupVbOrbKxl",
href's avatar
href committed
105
  signing_salt: "CqaoopA2",
lain's avatar
lain committed
106
  render_errors: [view: Pleroma.Web.ErrorView, accepts: ~w(json)],
107 108
  pubsub: [name: Pleroma.PubSub, adapter: Phoenix.PubSub.PG2],
  secure_cookie_flag: true
lain's avatar
lain committed
109 110 111 112 113 114

# Configures Elixir's Logger
config :logger, :console,
  format: "$time $metadata[$level] $message\n",
  metadata: [:request_id]

115 116 117
config :logger, :ex_syslogger,
  level: :debug,
  ident: "Pleroma",
118
  format: "$metadata[$level] $message",
119 120
  metadata: [:request_id]

lain's avatar
lain committed
121
config :mime, :types, %{
122
  "application/xml" => ["xml"],
lain's avatar
lain committed
123
  "application/xrd+xml" => ["xrd+xml"],
124
  "application/jrd+json" => ["jrd+json"],
lain's avatar
lain committed
125 126
  "application/activity+json" => ["activity+json"],
  "application/ld+json" => ["activity+json"]
lain's avatar
lain committed
127 128
}

lain's avatar
lain committed
129 130
config :pleroma, :websub, Pleroma.Web.Websub
config :pleroma, :ostatus, Pleroma.Web.OStatus
131
config :pleroma, :httpoison, Pleroma.HTTP
132
config :tesla, adapter: Tesla.Adapter.Hackney
133

jeff's avatar
docs  
jeff committed
134
# Configures http settings, upstream proxy etc.
lain's avatar
lain committed
135
config :pleroma, :http, proxy_url: nil
136

lain's avatar
lain committed
137 138
config :pleroma, :instance,
  name: "Pleroma",
139
  email: "example@example.com",
140
  description: "A Pleroma instance, an alternative fediverse server",
141
  limit: 5_000,
lain's avatar
lain committed
142
  remote_limit: 100_000,
143
  upload_limit: 16_000_000,
144 145 146
  avatar_upload_limit: 2_000_000,
  background_upload_limit: 4_000_000,
  banner_upload_limit: 4_000_000,
lain's avatar
lain committed
147
  registrations_open: true,
148
  federating: true,
149
  federation_reachability_timeout_days: 7,
150
  allow_relay: true,
lain's avatar
lain committed
151
  rewrite_policy: Pleroma.Web.ActivityPub.MRF.NoOpPolicy,
152
  public: true,
153
  quarantined_instances: [],
154
  managed_config: true,
href's avatar
href committed
155
  static_dir: "instance/static/",
156 157 158 159
  allowed_post_formats: [
    "text/plain",
    "text/html",
    "text/markdown"
160
  ],
scarlett's avatar
scarlett committed
161
  finmoji_enabled: true,
162
  mrf_transparency: true,
163
  autofollowed_nicknames: [],
feld's avatar
feld committed
164
  max_pinned_statuses: 1,
lain's avatar
lain committed
165 166
  no_attachment_links: false,
  welcome_user_nickname: nil,
minibikini's avatar
Reports  
minibikini committed
167 168
  welcome_message: nil,
  max_report_comment_size: 1000
lain's avatar
lain committed
169

170
config :pleroma, :markup,
171 172 173
  # XXX - unfortunately, inline images must be enabled by default right now, because
  # of custom emoji.  Issue #275 discusses defanging that somehow.
  allow_inline_images: true,
174 175 176
  allow_headings: false,
  allow_tables: false,
  allow_fonts: false,
177 178 179 180
  scrub_policy: [
    Pleroma.HTML.Transform.MediaProxy,
    Pleroma.HTML.Scrubber.Default
  ]
181

lain's avatar
lain committed
182
# Deprecated, will be gone in 1.0
183 184 185
config :pleroma, :fe,
  theme: "pleroma-dark",
  logo: "/static/logo.png",
186 187
  logo_mask: true,
  logo_margin: "0.1em",
188
  background: "/static/aurora_borealis.jpg",
lain's avatar
lain committed
189 190
  redirect_root_no_login: "/main/all",
  redirect_root_login: "/main/friends",
191
  show_instance_panel: true,
192
  scope_options_enabled: false,
193
  formatting_options_enabled: false,
194 195
  collapse_message_with_subject: false,
  hide_post_stats: false,
196 197 198 199
  hide_user_stats: false,
  scope_copy: true,
  subject_line_behavior: "email",
  always_show_subject_input: true
200

lain's avatar
lain committed
201 202 203 204
config :pleroma, :frontend_configurations,
  pleroma_fe: %{
    theme: "pleroma-dark",
    logo: "/static/logo.png",
lain's avatar
lain committed
205
    background: "/images/city.jpg",
lain's avatar
lain committed
206 207 208 209 210 211 212 213 214 215 216 217 218
    redirectRootNoLogin: "/main/all",
    redirectRootLogin: "/main/friends",
    showInstanceSpecificPanel: true,
    scopeOptionsEnabled: false,
    formattingOptionsEnabled: false,
    collapseMessageWithSubject: false,
    hidePostStats: false,
    hideUserStats: false,
    scopeCopy: true,
    subjectLineBehavior: "email",
    alwaysShowSubjectInput: true
  }

219 220 221
config :pleroma, :activitypub,
  accept_blocks: true,
  unfollow_blocked: true,
222 223
  outgoing_blocks: true,
  follow_handshake_timeout: 500
224

squidboi's avatar
squidboi committed
225
config :pleroma, :user, deny_follow_blocked: true
226

227 228
config :pleroma, :mrf_normalize_markup, scrub_policy: Pleroma.HTML.Scrubber.Default

229 230 231 232
config :pleroma, :mrf_rejectnonpublic,
  allow_followersonly: false,
  allow_direct: false

Karen Konou's avatar
Karen Konou committed
233
config :pleroma, :mrf_hellthread,
234 235
  delist_threshold: 10,
  reject_threshold: 20
Karen Konou's avatar
Karen Konou committed
236

237 238 239 240
config :pleroma, :mrf_simple,
  media_removal: [],
  media_nsfw: [],
  federated_timeline_removal: [],
kaniini's avatar
kaniini committed
241 242
  reject: [],
  accept: []
rinpatch's avatar
rinpatch committed
243

244 245
config :pleroma, :mrf_keyword,
  reject: [],
246
  federated_timeline_removal: [],
247 248
  replace: []

rinpatch's avatar
rinpatch committed
249
config :pleroma, :rich_media, enabled: true
250

href's avatar
href committed
251 252 253 254 255 256 257 258 259 260
config :pleroma, :media_proxy,
  enabled: false,
  proxy_opts: [
    redirect_on_failure: false,
    max_body_length: 25 * 1_048_576,
    http: [
      follow_redirect: true,
      pool: :media
    ]
  ]
lain's avatar
lain committed
261 262

config :pleroma, :chat, enabled: true
263

lain's avatar
lain committed
264 265
config :ecto, json_library: Jason

lain's avatar
lain committed
266
config :phoenix, :format_encoders, json: Jason
lain's avatar
lain committed
267

lain's avatar
lain committed
268 269 270 271 272
config :pleroma, :gopher,
  enabled: false,
  ip: {0, 0, 0, 0},
  port: 9999

rinpatch's avatar
rinpatch committed
273
config :pleroma, Pleroma.Web.Metadata, providers: [], unfurl_nsfw: false
274

Hakaba Hitoyo's avatar
Hakaba Hitoyo committed
275 276 277
config :pleroma, :suggestions,
  enabled: false,
  third_party_engine:
Hakaba Hitoyo's avatar
Hakaba Hitoyo committed
278
    "http://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-suggestions-api.cgi?{{host}}+{{user}}",
Hakaba Hitoyo's avatar
Hakaba Hitoyo committed
279
  timeout: 300_000,
280
  limit: 23,
Hakaba Hitoyo's avatar
Hakaba Hitoyo committed
281
  web: "https://vinayaka.distsn.org/?{{host}}+{{user}}"
hakabahitoyo's avatar
hakabahitoyo committed
282

kaniini's avatar
kaniini committed
283
config :pleroma, :http_security,
284 285
  enabled: true,
  sts: false,
286
  sts_max_age: 31_536_000,
287 288
  ct_max_age: 2_592_000,
  referrer_policy: "same-origin"
289

kaniini's avatar
kaniini committed
290 291 292 293 294 295 296 297 298 299 300 301 302 303
config :cors_plug,
  max_age: 86_400,
  methods: ["POST", "PUT", "DELETE", "GET", "PATCH", "OPTIONS"],
  expose: [
    "Link",
    "X-RateLimit-Reset",
    "X-RateLimit-Limit",
    "X-RateLimit-Remaining",
    "X-Request-Id",
    "Idempotency-Key"
  ],
  credentials: true,
  headers: ["Authorization", "Content-Type", "Idempotency-Key"]

lain's avatar
lain committed
304 305
config :pleroma, Pleroma.User,
  restricted_nicknames: [
feld's avatar
feld committed
306
    ".well-known",
lain's avatar
lain committed
307
    "~",
feld's avatar
feld committed
308
    "about",
lain's avatar
lain committed
309 310
    "activities",
    "api",
feld's avatar
feld committed
311 312 313 314 315 316 317 318
    "auth",
    "dev",
    "friend-requests",
    "inbox",
    "internal",
    "main",
    "media",
    "nodeinfo",
lain's avatar
lain committed
319 320
    "notice",
    "oauth",
feld's avatar
feld committed
321 322 323 324
    "objects",
    "ostatus_subscribe",
    "pleroma",
    "proxy",
lain's avatar
lain committed
325
    "push",
feld's avatar
feld committed
326
    "registration",
lain's avatar
lain committed
327
    "relay",
feld's avatar
feld committed
328 329 330 331 332 333
    "settings",
    "status",
    "tag",
    "user-search",
    "users",
    "web"
lain's avatar
lain committed
334 335
  ]

lain's avatar
lain committed
336 337 338 339 340 341
config :pleroma, Pleroma.Web.Federator.RetryQueue,
  enabled: false,
  max_jobs: 20,
  initial_timeout: 30,
  max_retries: 5

minibikini's avatar
minibikini committed
342 343
config :pleroma, Pleroma.Jobs,
  federator_incoming: [max_jobs: 50],
minibikini's avatar
Reports  
minibikini committed
344 345
  federator_outgoing: [max_jobs: 50],
  mailer: [max_jobs: 10]
minibikini's avatar
minibikini committed
346

lain's avatar
lain committed
347 348
# Import environment specific config. This must remain at the bottom
# of this file so it overrides the configuration defined above.
lain's avatar
lain committed
349
import_config "#{Mix.env()}.exs"