config.exs 6.72 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

18
config :pleroma, Pleroma.Captcha.Kocaptcha, endpoint: "https://captcha.kotobank.ch"
19

href's avatar
href committed
20
# Upload configuration
gled's avatar
gled committed
21
config :pleroma, Pleroma.Upload,
Thurloat's avatar
Thurloat committed
22
  uploader: Pleroma.Uploaders.Local,
href's avatar
href committed
23
  filters: [],
href's avatar
href committed
24
  proxy_remote: false,
href's avatar
href committed
25
26
  proxy_opts: []

href's avatar
href committed
27
config :pleroma, Pleroma.Uploaders.Local, uploads: "uploads"
28

29
30
config :pleroma, Pleroma.Uploaders.S3,
  bucket: nil,
href's avatar
href committed
31
  public_endpoint: "https://s3.amazonaws.com"
lain's avatar
lain committed
32

hakabahitoyo's avatar
hakabahitoyo committed
33
config :pleroma, Pleroma.Uploaders.MDII,
hakabahitoyo's avatar
hakabahitoyo committed
34
35
  cgi: "https://mdii.sakura.ne.jp/mdii-post.cgi",
  files: "https://mdii.sakura.ne.jp"
Hakaba Hitoyo's avatar
Hakaba Hitoyo committed
36

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

39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
config :pleroma, :uri_schemes,
  valid_schemes: [
    "https",
    "http",
    "dat",
    "dweb",
    "gopher",
    "ipfs",
    "ipns",
    "irc",
    "ircs",
    "magnet",
    "mailto",
    "mumble",
    "ssb",
    "xmpp"
  ]
56

lain's avatar
lain committed
57
58
59
60
61
62
63
64
65
66
67
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
68
69
70
# Configures the endpoint
config :pleroma, Pleroma.Web.Endpoint,
  url: [host: "localhost"],
href's avatar
href committed
71
72
73
74
75
  http: [
    dispatch: [
      {:_,
       [
         {"/api/v1/streaming", Elixir.Pleroma.Web.MastodonAPI.WebsocketHandler, []},
lain's avatar
lain committed
76
77
         {"/socket/websocket", Phoenix.Endpoint.CowboyWebSocket,
          {nil, {Pleroma.Web.Endpoint, Pleroma.Web.UserSocket, websocket_config}}},
href's avatar
href committed
78
79
80
81
         {:_, Plug.Adapters.Cowboy.Handler, {Pleroma.Web.Endpoint, []}}
       ]}
    ]
  ],
lain's avatar
lain committed
82
  protocol: "https",
lain's avatar
lain committed
83
  secret_key_base: "aK4Abxf29xU9TTDKre9coZPUgevcVCFQJe/5xP/7Lt4BEif6idBIbjupVbOrbKxl",
href's avatar
href committed
84
  signing_salt: "CqaoopA2",
lain's avatar
lain committed
85
  render_errors: [view: Pleroma.Web.ErrorView, accepts: ~w(json)],
86
87
  pubsub: [name: Pleroma.PubSub, adapter: Phoenix.PubSub.PG2],
  secure_cookie_flag: true
lain's avatar
lain committed
88
89
90
91
92
93

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

lain's avatar
lain committed
94
config :mime, :types, %{
95
  "application/xml" => ["xml"],
lain's avatar
lain committed
96
  "application/xrd+xml" => ["xrd+xml"],
97
  "application/jrd+json" => ["jrd+json"],
lain's avatar
lain committed
98
99
  "application/activity+json" => ["activity+json"],
  "application/ld+json" => ["activity+json"]
lain's avatar
lain committed
100
101
}

lain's avatar
lain committed
102
103
config :pleroma, :websub, Pleroma.Web.Websub
config :pleroma, :ostatus, Pleroma.Web.OStatus
104
config :pleroma, :httpoison, Pleroma.HTTP
105
config :tesla, adapter: Tesla.Adapter.Hackney
106

jeff's avatar
docs    
jeff committed
107
# Configures http settings, upstream proxy etc.
lain's avatar
lain committed
108
config :pleroma, :http, proxy_url: nil
109

lain's avatar
lain committed
110
111
config :pleroma, :instance,
  name: "Pleroma",
112
  email: "example@example.com",
113
  description: "A Pleroma instance, an alternative fediverse server",
114
  limit: 5_000,
lain's avatar
lain committed
115
  remote_limit: 100_000,
116
  upload_limit: 16_000_000,
117
118
119
  avatar_upload_limit: 2_000_000,
  background_upload_limit: 4_000_000,
  banner_upload_limit: 4_000_000,
lain's avatar
lain committed
120
  registrations_open: true,
121
  federating: true,
122
  allow_relay: true,
lain's avatar
lain committed
123
  rewrite_policy: Pleroma.Web.ActivityPub.MRF.NoOpPolicy,
124
  public: true,
125
  quarantined_instances: [],
126
  managed_config: true,
href's avatar
href committed
127
  static_dir: "instance/static/",
128
129
130
131
  allowed_post_formats: [
    "text/plain",
    "text/html",
    "text/markdown"
132
  ],
scarlett's avatar
scarlett committed
133
  finmoji_enabled: true,
134
  mrf_transparency: true
lain's avatar
lain committed
135

136
config :pleroma, :markup,
137
138
139
  # 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,
140
141
142
  allow_headings: false,
  allow_tables: false,
  allow_fonts: false,
143
144
145
146
  scrub_policy: [
    Pleroma.HTML.Transform.MediaProxy,
    Pleroma.HTML.Scrubber.Default
  ]
147

148
149
150
config :pleroma, :fe,
  theme: "pleroma-dark",
  logo: "/static/logo.png",
151
152
  logo_mask: true,
  logo_margin: "0.1em",
153
  background: "/static/aurora_borealis.jpg",
lain's avatar
lain committed
154
155
  redirect_root_no_login: "/main/all",
  redirect_root_login: "/main/friends",
156
  show_instance_panel: true,
157
  scope_options_enabled: false,
158
  formatting_options_enabled: false,
159
160
  collapse_message_with_subject: false,
  hide_post_stats: false,
161
162
163
164
  hide_user_stats: false,
  scope_copy: true,
  subject_line_behavior: "email",
  always_show_subject_input: true
165

166
167
168
config :pleroma, :activitypub,
  accept_blocks: true,
  unfollow_blocked: true,
169
170
  outgoing_blocks: true,
  follow_handshake_timeout: 500
171

squidboi's avatar
squidboi committed
172
config :pleroma, :user, deny_follow_blocked: true
173

174
175
config :pleroma, :mrf_normalize_markup, scrub_policy: Pleroma.HTML.Scrubber.Default

176
177
178
179
config :pleroma, :mrf_rejectnonpublic,
  allow_followersonly: false,
  allow_direct: false

Karen Konou's avatar
Karen Konou committed
180
config :pleroma, :mrf_hellthread, threshold: 10
Karen Konou's avatar
Karen Konou committed
181

182
183
184
185
config :pleroma, :mrf_simple,
  media_removal: [],
  media_nsfw: [],
  federated_timeline_removal: [],
kaniini's avatar
kaniini committed
186
187
  reject: [],
  accept: []
188

189
config :pleroma, :media_proxy, enabled: false
lain's avatar
lain committed
190
191

config :pleroma, :chat, enabled: true
192

lain's avatar
lain committed
193
194
config :ecto, json_library: Jason

lain's avatar
lain committed
195
config :phoenix, :format_encoders, json: Jason
lain's avatar
lain committed
196

lain's avatar
lain committed
197
198
199
200
201
config :pleroma, :gopher,
  enabled: false,
  ip: {0, 0, 0, 0},
  port: 9999

Hakaba Hitoyo's avatar
Hakaba Hitoyo committed
202
203
204
config :pleroma, :suggestions,
  enabled: false,
  third_party_engine:
Hakaba Hitoyo's avatar
Hakaba Hitoyo committed
205
    "http://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-suggestions-api.cgi?{{host}}+{{user}}",
Hakaba Hitoyo's avatar
Hakaba Hitoyo committed
206
  timeout: 300_000,
207
  limit: 23,
Hakaba Hitoyo's avatar
Hakaba Hitoyo committed
208
  web: "https://vinayaka.distsn.org/?{{host}}+{{user}}"
hakabahitoyo's avatar
hakabahitoyo committed
209

kaniini's avatar
kaniini committed
210
config :pleroma, :http_security,
211
212
  enabled: true,
  sts: false,
213
  sts_max_age: 31_536_000,
214
215
  ct_max_age: 2_592_000,
  referrer_policy: "same-origin"
216

kaniini's avatar
kaniini committed
217
218
219
220
221
222
223
224
225
226
227
228
229
230
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
231
232
config :pleroma, Pleroma.User,
  restricted_nicknames: [
lain's avatar
lain committed
233
    "about",
lain's avatar
lain committed
234
    "~",
lain's avatar
lain committed
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
    "main",
    "users",
    "settings",
    "objects",
    "activities",
    "web",
    "registration",
    "friend-requests",
    "pleroma",
    "api",
    "tag",
    "notice",
    "status",
    "user-search",
    "ostatus_subscribe",
    "oauth",
    "push",
    "relay",
    "inbox",
    ".well-known",
    "nodeinfo",
    "auth",
    "proxy",
    "dev",
Rin Toshaka's avatar
Rin Toshaka committed
259
260
    "internal",
    "media"
lain's avatar
lain committed
261
262
  ]

lain's avatar
lain committed
263
264
265
266
267
268
269
270
config :pleroma, Pleroma.Web.Federator, max_jobs: 50

config :pleroma, Pleroma.Web.Federator.RetryQueue,
  enabled: false,
  max_jobs: 20,
  initial_timeout: 30,
  max_retries: 5

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