config.exs 8.38 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
167
  no_attachment_links: false,
  welcome_user_nickname: nil,
  welcome_message: nil
lain's avatar
lain committed
168

169
config :pleroma, :markup,
170
171
172
  # 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,
173
174
175
  allow_headings: false,
  allow_tables: false,
  allow_fonts: false,
176
177
178
179
  scrub_policy: [
    Pleroma.HTML.Transform.MediaProxy,
    Pleroma.HTML.Scrubber.Default
  ]
180

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

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

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

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

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

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

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

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

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

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

href's avatar
href committed
250
251
252
253
254
255
256
257
258
259
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
260
261

config :pleroma, :chat, enabled: true
262

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

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

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

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

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

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

kaniini's avatar
kaniini committed
289
290
291
292
293
294
295
296
297
298
299
300
301
302
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
303
304
config :pleroma, Pleroma.User,
  restricted_nicknames: [
feld's avatar
feld committed
305
    ".well-known",
lain's avatar
lain committed
306
    "~",
feld's avatar
feld committed
307
    "about",
lain's avatar
lain committed
308
309
    "activities",
    "api",
feld's avatar
feld committed
310
311
312
313
314
315
316
317
    "auth",
    "dev",
    "friend-requests",
    "inbox",
    "internal",
    "main",
    "media",
    "nodeinfo",
lain's avatar
lain committed
318
319
    "notice",
    "oauth",
feld's avatar
feld committed
320
321
322
323
    "objects",
    "ostatus_subscribe",
    "pleroma",
    "proxy",
lain's avatar
lain committed
324
    "push",
feld's avatar
feld committed
325
    "registration",
lain's avatar
lain committed
326
    "relay",
feld's avatar
feld committed
327
328
329
330
331
332
    "settings",
    "status",
    "tag",
    "user-search",
    "users",
    "web"
lain's avatar
lain committed
333
334
  ]

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

minibikini's avatar
minibikini committed
341
342
343
344
config :pleroma, Pleroma.Jobs,
  federator_incoming: [max_jobs: 50],
  federator_outgoing: [max_jobs: 50]

lain's avatar
lain committed
345
346
# 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
347
import_config "#{Mix.env()}.exs"