projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove chromium input hilight that clashes with our own
[akkoma]
/
lib
/
pleroma
/
application.ex
diff --git
a/lib/pleroma/application.ex
b/lib/pleroma/application.ex
index a151b85625a2db26e522f10d40b4bd1b136787d9..d2523c045bec60182164498625ae7dafc9cea6f7 100644
(file)
--- a/
lib/pleroma/application.ex
+++ b/
lib/pleroma/application.ex
@@
-1,25
+1,48
@@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Pleroma.Application do
use Application
import Supervisor.Spec
defmodule Pleroma.Application do
use Application
import Supervisor.Spec
- @name
"Pleroma"
+ @name
Mix.Project.config()[:name]
@version Mix.Project.config()[:version]
@version Mix.Project.config()[:version]
+ @repository Mix.Project.config()[:source_url]
def name, do: @name
def version, do: @version
def named_version(), do: @name <> " " <> @version
def name, do: @name
def version, do: @version
def named_version(), do: @name <> " " <> @version
+ def repository, do: @repository
+
+ def user_agent() do
+ info = "#{Pleroma.Web.base_url()} <#{Pleroma.Config.get([:instance, :email], "")}>"
+ named_version() <> "; " <> info
+ end
# See http://elixir-lang.org/docs/stable/elixir/Application.html
# for more information on OTP Applications
# See http://elixir-lang.org/docs/stable/elixir/Application.html
# for more information on OTP Applications
- @env Mix.env()
def start(_type, _args) do
import Cachex.Spec
def start(_type, _args) do
import Cachex.Spec
+ Pleroma.Config.DeprecationWarnings.warn()
+
# Define workers and child supervisors to be supervised
children =
[
# Start the Ecto repository
supervisor(Pleroma.Repo, []),
worker(Pleroma.Emoji, []),
# Define workers and child supervisors to be supervised
children =
[
# Start the Ecto repository
supervisor(Pleroma.Repo, []),
worker(Pleroma.Emoji, []),
+ worker(Pleroma.Captcha, []),
+ worker(
+ Cachex,
+ [
+ :used_captcha_cache,
+ [
+ ttl_interval: :timer.seconds(Pleroma.Config.get!([Pleroma.Captcha, :seconds_valid]))
+ ]
+ ],
+ id: :cachex_used_captcha_cache
+ ),
worker(
Cachex,
[
worker(
Cachex,
[
@@
-44,6
+67,27
@@
defmodule Pleroma.Application do
],
id: :cachex_object
),
],
id: :cachex_object
),
+ worker(
+ Cachex,
+ [
+ :rich_media_cache,
+ [
+ default_ttl: :timer.minutes(120),
+ limit: 5000
+ ]
+ ],
+ id: :cachex_rich_media
+ ),
+ worker(
+ Cachex,
+ [
+ :scrubber_cache,
+ [
+ limit: 2500
+ ]
+ ],
+ id: :cachex_scrubber
+ ),
worker(
Cachex,
[
worker(
Cachex,
[
@@
-59,10
+103,16
@@
defmodule Pleroma.Application do
],
id: :cachex_idem
),
],
id: :cachex_idem
),
- worker(Pleroma.Web.Federator.RetryQueue, []),
- worker(Pleroma.Web.Federator, []),
- worker(Pleroma.Stats, [])
+ worker(Pleroma.FlakeId, [])
] ++
] ++
+ hackney_pool_children() ++
+ [
+ worker(Pleroma.Web.Federator.RetryQueue, []),
+ worker(Pleroma.Stats, []),
+ worker(Pleroma.Web.Push, []),
+ worker(Pleroma.Jobs, []),
+ worker(Task, [&Pleroma.Web.Federator.init/0], restart: :temporary)
+ ] ++
streamer_child() ++
chat_child() ++
[
streamer_child() ++
chat_child() ++
[
@@
-77,6
+127,20
@@
defmodule Pleroma.Application do
Supervisor.start_link(children, opts)
end
Supervisor.start_link(children, opts)
end
+ def enabled_hackney_pools() do
+ [:media] ++
+ if Application.get_env(:tesla, :adapter) == Tesla.Adapter.Hackney do
+ [:federation]
+ else
+ []
+ end ++
+ if Pleroma.Config.get([Pleroma.Uploader, :proxy_remote]) do
+ [:upload]
+ else
+ []
+ end
+ end
+
if Mix.env() == :test do
defp streamer_child(), do: []
defp chat_child(), do: []
if Mix.env() == :test do
defp streamer_child(), do: []
defp chat_child(), do: []
@@
-93,4
+157,11
@@
defmodule Pleroma.Application do
end
end
end
end
end
end
+
+ defp hackney_pool_children() do
+ for pool <- enabled_hackney_pools() do
+ options = Pleroma.Config.get([:hackney_pools, pool])
+ :hackney_pool.child_spec(pool, options)
+ end
+ end
end
end