diff options
Diffstat (limited to 'config')
| -rw-r--r-- | config/config.exs | 69 | ||||
| -rw-r--r-- | config/description.exs | 213 | ||||
| -rw-r--r-- | config/test.exs | 2 | 
3 files changed, 260 insertions, 24 deletions
| diff --git a/config/config.exs b/config/config.exs index 2ab939107..232a91bf1 100644 --- a/config/config.exs +++ b/config/config.exs @@ -58,20 +58,6 @@ config :pleroma, Pleroma.Captcha,  config :pleroma, Pleroma.Captcha.Kocaptcha, endpoint: "https://captcha.kotobank.ch" -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 -  ] -  # Upload configuration  config :pleroma, Pleroma.Upload,    uploader: Pleroma.Uploaders.Local, @@ -184,21 +170,13 @@ config :mime, :types, %{    "application/ld+json" => ["activity+json"]  } -config :tesla, adapter: Tesla.Adapter.Hackney - +config :tesla, adapter: Tesla.Adapter.Gun  # Configures http settings, upstream proxy etc.  config :pleroma, :http,    proxy_url: nil,    send_user_agent: true,    user_agent: :default, -  adapter: [ -    ssl_options: [ -      # Workaround for remote server certificate chain issues -      partial_chain: &:hackney_connect.partial_chain/1, -      # We don't support TLS v1.3 yet -      versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"] -    ] -  ] +  adapter: []  config :pleroma, :instance,    name: "Pleroma", @@ -624,6 +602,49 @@ config :pleroma, Pleroma.Repo,    parameters: [gin_fuzzy_search_limit: "500"],    prepare: :unnamed +config :pleroma, :connections_pool, +  checkin_timeout: 250, +  max_connections: 250, +  retry: 1, +  retry_timeout: 1000, +  await_up_timeout: 5_000 + +config :pleroma, :pools, +  federation: [ +    size: 50, +    max_overflow: 10, +    timeout: 150_000 +  ], +  media: [ +    size: 50, +    max_overflow: 10, +    timeout: 150_000 +  ], +  upload: [ +    size: 25, +    max_overflow: 5, +    timeout: 300_000 +  ], +  default: [ +    size: 10, +    max_overflow: 2, +    timeout: 10_000 +  ] + +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 +  ] +  config :pleroma, :restrict_unauthenticated,    timelines: %{local: false, federated: false},    profiles: %{local: false, remote: false}, diff --git a/config/description.exs b/config/description.exs index 9612adba7..642f1a3ce 100644 --- a/config/description.exs +++ b/config/description.exs @@ -2918,6 +2918,219 @@ config :pleroma, :config_description, [    },    %{      group: :pleroma, +    key: :connections_pool, +    type: :group, +    description: "Advanced settings for `gun` connections pool", +    children: [ +      %{ +        key: :checkin_timeout, +        type: :integer, +        description: "Timeout to checkin connection from pool. Default: 250ms.", +        suggestions: [250] +      }, +      %{ +        key: :max_connections, +        type: :integer, +        description: "Maximum number of connections in the pool. Default: 250 connections.", +        suggestions: [250] +      }, +      %{ +        key: :retry, +        type: :integer, +        description: +          "Number of retries, while `gun` will try to reconnect if connection goes down. Default: 1.", +        suggestions: [1] +      }, +      %{ +        key: :retry_timeout, +        type: :integer, +        description: +          "Time between retries when `gun` will try to reconnect in milliseconds. Default: 1000ms.", +        suggestions: [1000] +      }, +      %{ +        key: :await_up_timeout, +        type: :integer, +        description: "Timeout while `gun` will wait until connection is up. Default: 5000ms.", +        suggestions: [5000] +      } +    ] +  }, +  %{ +    group: :pleroma, +    key: :pools, +    type: :group, +    description: "Advanced settings for `gun` workers pools", +    children: [ +      %{ +        key: :federation, +        type: :keyword, +        description: "Settings for federation pool.", +        children: [ +          %{ +            key: :size, +            type: :integer, +            description: "Number workers in the pool.", +            suggestions: [50] +          }, +          %{ +            key: :max_overflow, +            type: :integer, +            description: "Number of additional workers if pool is under load.", +            suggestions: [10] +          }, +          %{ +            key: :timeout, +            type: :integer, +            description: "Timeout while `gun` will wait for response.", +            suggestions: [150_000] +          } +        ] +      }, +      %{ +        key: :media, +        type: :keyword, +        description: "Settings for media pool.", +        children: [ +          %{ +            key: :size, +            type: :integer, +            description: "Number workers in the pool.", +            suggestions: [50] +          }, +          %{ +            key: :max_overflow, +            type: :integer, +            description: "Number of additional workers if pool is under load.", +            suggestions: [10] +          }, +          %{ +            key: :timeout, +            type: :integer, +            description: "Timeout while `gun` will wait for response.", +            suggestions: [150_000] +          } +        ] +      }, +      %{ +        key: :upload, +        type: :keyword, +        description: "Settings for upload pool.", +        children: [ +          %{ +            key: :size, +            type: :integer, +            description: "Number workers in the pool.", +            suggestions: [25] +          }, +          %{ +            key: :max_overflow, +            type: :integer, +            description: "Number of additional workers if pool is under load.", +            suggestions: [5] +          }, +          %{ +            key: :timeout, +            type: :integer, +            description: "Timeout while `gun` will wait for response.", +            suggestions: [300_000] +          } +        ] +      }, +      %{ +        key: :default, +        type: :keyword, +        description: "Settings for default pool.", +        children: [ +          %{ +            key: :size, +            type: :integer, +            description: "Number workers in the pool.", +            suggestions: [10] +          }, +          %{ +            key: :max_overflow, +            type: :integer, +            description: "Number of additional workers if pool is under load.", +            suggestions: [2] +          }, +          %{ +            key: :timeout, +            type: :integer, +            description: "Timeout while `gun` will wait for response.", +            suggestions: [10_000] +          } +        ] +      } +    ] +  }, +  %{ +    group: :pleroma, +    key: :hackney_pools, +    type: :group, +    description: "Advanced settings for `hackney` connections pools", +    children: [ +      %{ +        key: :federation, +        type: :keyword, +        description: "Settings for federation pool.", +        children: [ +          %{ +            key: :max_connections, +            type: :integer, +            description: "Number workers in the pool.", +            suggestions: [50] +          }, +          %{ +            key: :timeout, +            type: :integer, +            description: "Timeout while `hackney` will wait for response.", +            suggestions: [150_000] +          } +        ] +      }, +      %{ +        key: :media, +        type: :keyword, +        description: "Settings for media pool.", +        children: [ +          %{ +            key: :max_connections, +            type: :integer, +            description: "Number workers in the pool.", +            suggestions: [50] +          }, +          %{ +            key: :timeout, +            type: :integer, +            description: "Timeout while `hackney` will wait for response.", +            suggestions: [150_000] +          } +        ] +      }, +      %{ +        key: :upload, +        type: :keyword, +        description: "Settings for upload pool.", +        children: [ +          %{ +            key: :max_connections, +            type: :integer, +            description: "Number workers in the pool.", +            suggestions: [25] +          }, +          %{ +            key: :timeout, +            type: :integer, +            description: "Timeout while `hackney` will wait for response.", +            suggestions: [300_000] +          } +        ] +      } +    ] +  }, +  %{ +    group: :pleroma,      key: :restrict_unauthenticated,      type: :group,      description: diff --git a/config/test.exs b/config/test.exs index b8ea63c94..040e67e4a 100644 --- a/config/test.exs +++ b/config/test.exs @@ -90,6 +90,8 @@ config :pleroma, Pleroma.ReverseProxy.Client, Pleroma.ReverseProxy.ClientMock  config :pleroma, :modules, runtime_dir: "test/fixtures/modules" +config :pleroma, Pleroma.Gun, Pleroma.GunMock +  config :pleroma, Pleroma.Emails.NewUsersDigestEmail, enabled: true  config :pleroma, Pleroma.Plugs.RemoteIp, enabled: false | 
