diff options
| -rw-r--r-- | config/config.exs | 3 | ||||
| -rw-r--r-- | lib/pleroma/application.ex | 6 | ||||
| -rw-r--r-- | lib/pleroma/web/channels/user_socket.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/endpoint.ex | 4 | 
4 files changed, 14 insertions, 3 deletions
| diff --git a/config/config.exs b/config/config.exs index e71d5e5a0..01109b30f 100644 --- a/config/config.exs +++ b/config/config.exs @@ -56,6 +56,9 @@ config :pleroma, :media_proxy,    redirect_on_failure: true    #base_url: "https://cache.pleroma.social" +config :pleroma, :chat, +  enabled: true +  # Import environment specific config. This must remain at the bottom  # of this file so it overrides the configuration defined above.  import_config "#{Mix.env}.exs" diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex index cdfca8b1a..79b9dee9d 100644 --- a/lib/pleroma/application.ex +++ b/lib/pleroma/application.ex @@ -20,14 +20,18 @@ defmodule Pleroma.Application do                           limit: 2500                         ]]),        worker(Pleroma.Web.Federator, []), -      worker(Pleroma.Web.ChatChannel.ChatChannelState, []),        worker(Pleroma.Stats, []),      ]      ++ if Mix.env == :test, do: [], else: [worker(Pleroma.Web.Streamer, [])] +    ++ if !chat_enabled(), do: [], else: [worker(Pleroma.Web.ChatChannel.ChatChannelState, [])]      # See http://elixir-lang.org/docs/stable/elixir/Supervisor.html      # for other strategies and supported options      opts = [strategy: :one_for_one, name: Pleroma.Supervisor]      Supervisor.start_link(children, opts)    end + +  defp chat_enabled do +    Application.get_env(:pleroma, :chat, []) |> Keyword.get(:enabled) +  end  end diff --git a/lib/pleroma/web/channels/user_socket.ex b/lib/pleroma/web/channels/user_socket.ex index 4a9bb8e22..f18b3cb80 100644 --- a/lib/pleroma/web/channels/user_socket.ex +++ b/lib/pleroma/web/channels/user_socket.ex @@ -5,7 +5,9 @@ defmodule Pleroma.Web.UserSocket do    ## Channels    # channel "room:*", Pleroma.Web.RoomChannel -  channel "chat:*", Pleroma.Web.ChatChannel +  if Application.get_env(:pleroma, :chat) |> Keyword.get(:enabled) do +    channel "chat:*", Pleroma.Web.ChatChannel +  end    ## Transports    transport :websocket, Phoenix.Transports.WebSocket diff --git a/lib/pleroma/web/endpoint.ex b/lib/pleroma/web/endpoint.ex index ec88df692..93b37dc74 100644 --- a/lib/pleroma/web/endpoint.ex +++ b/lib/pleroma/web/endpoint.ex @@ -1,7 +1,9 @@  defmodule Pleroma.Web.Endpoint do    use Phoenix.Endpoint, otp_app: :pleroma -  socket "/socket", Pleroma.Web.UserSocket +  if Application.get_env(:pleroma, :chat) |> Keyword.get(:enabled) do +    socket "/socket", Pleroma.Web.UserSocket +  end    socket "/api/v1", Pleroma.Web.MastodonAPI.MastodonSocket    # Serve at "/" the static files from "priv/static" directory. | 
