# See http://elixir-lang.org/docs/stable/elixir/Application.html
# for more information on OTP Applications
defstart(_type,_args)do
Config.Holder.save_default()
Pleroma.HTML.compile_scrubbers()
Config.DeprecationWarnings.warn()
Pleroma.Plugs.HTTPSecurityPlug.warn_if_disabled()
Pleroma.ApplicationRequirements.verify!()
setup_instrumenters()
load_custom_modules()
adapter=Application.get_env(:tesla,:adapter)
ifadapter==Tesla.Adapter.Gundo
ifversion=Pleroma.OTPVersion.version()do
[major,minor]=
version
|>String.split(".")
|>Enum.map(&String.to_integer/1)
|>Enum.take(2)
if(major==22andminor<2)ormajor<22do
raise"
!!!OTP VERSION WARNING!!!
You are using gun adapter with OTP version #{version}, which doesn't support correct handling of unordered certificates chains. Please update your Erlang/OTP to at least 22.2.
"
end
else
raise"
!!!OTP VERSION WARNING!!!
To support correct handling of unordered certificates chains - OTP version must be > 22.2.
"
end
end
# Define workers and child supervisors to be supervised
children=
[
Pleroma.Repo,
Config.TransferTask,
Pleroma.Emoji,
Pleroma.Plugs.RateLimiter.Supervisor
]++
cachex_children()++
http_children(adapter,@env)++
[
Pleroma.Stats,
Pleroma.JobQueueMonitor,
{Oban,Config.get(Oban)}
]++
task_children(@env)++
streamer_child(@env)++
chat_child(@env,chat_enabled?())++
[
Pleroma.Web.Endpoint,
Pleroma.Gopher.Server
]
# See http://elixir-lang.org/docs/stable/elixir/Supervisor.html