compress: false
]
-frontend_options = [
+installed_frontend_options = [
%{
key: "name",
label: "Name",
type: :string,
description:
- "Name of the frontend. Valid config must include both `Name` and `Reference` values."
+ "Name of the installed frontend. Valid config must include both `Name` and `Reference` values."
},
%{
key: "ref",
label: "Reference",
type: :string,
description:
- "Reference of the frontend to be used. Valid config must include both `Name` and `Reference` values."
+ "Reference of the installed frontend to be used. Valid config must include both `Name` and `Reference` values."
+ }
+]
+
+frontend_options = [
+ %{
+ key: "name",
+ label: "Name",
+ type: :string,
+ description: "Name of the frontend."
+ },
+ %{
+ key: "ref",
+ label: "Reference",
+ type: :string,
+ description: "Reference of the frontend to be used."
},
%{
key: "git",
suggestions: [
redirect_on_failure: false,
max_body_length: 25 * 1_048_576,
+ max_read_duration: 30_000,
http: [
follow_redirect: true,
pool: :media
"Limits the content length to be approximately the " <>
"specified length. It is validated with the `content-length` header and also verified when proxying."
},
+ %{
+ key: :max_read_duration,
+ type: :integer,
+ description: "Timeout (in milliseconds) of GET request to remote URI."
+ },
%{
key: :http,
label: "HTTP",
}
]
},
+ %{
+ group: :pleroma,
+ key: :media_preview_proxy,
+ type: :group,
+ description: "Media preview proxy",
+ children: [
+ %{
+ key: :enabled,
+ type: :boolean,
+ description:
+ "Enables proxying of remote media preview to the instance's proxy. Requires enabled media proxy."
+ },
+ %{
+ key: :thumbnail_max_width,
+ type: :integer,
+ description: "Max width of preview thumbnail."
+ },
+ %{
+ key: :thumbnail_max_height,
+ type: :integer,
+ description: "Max height of preview thumbnail."
+ },
+ %{
+ key: :image_quality,
+ type: :integer,
+ description: "Quality of the output. Ranges from 0 (min quality) to 100 (max quality)."
+ },
+ %{
+ key: :proxy_opts,
+ type: :keyword,
+ description: "Media proxy options",
+ suggestions: [
+ head_request_max_read_duration: 5_000
+ ],
+ children: [
+ %{
+ key: :head_request_max_read_duration,
+ type: :integer,
+ description: "Timeout (in milliseconds) of HEAD request to remote URI."
+ }
+ ]
+ },
+ %{
+ key: :whitelist,
+ type: {:list, :string},
+ description: "List of hosts with scheme to bypass the mediaproxy",
+ suggestions: ["http://example.com"]
+ }
+ ]
+ },
%{
group: :pleroma,
key: Pleroma.Web.MediaProxy.Invalidation.Http,
key: :primary,
type: :map,
description: "Primary frontend, the one that is served for all pages by default",
- children: frontend_options
+ children: installed_frontend_options
},
%{
key: :admin,
type: :map,
description: "Admin frontend",
- children: frontend_options
+ children: installed_frontend_options
},
%{
key: :available,