X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;f=config%2Fdescription.exs;h=001a21cbad6e5468469ad40af67f39418613b846;hb=7c4b415929cfef17c409eab095b8e1eb956607cc;hp=d8eaa34a262d0a432a3d654bf6674394a63839c6;hpb=364b6969eb7c79e57ed02345ddff4f48519e6b0a;p=akkoma diff --git a/config/description.exs b/config/description.exs index d8eaa34a2..001a21cba 100644 --- a/config/description.exs +++ b/config/description.exs @@ -509,6 +509,16 @@ config :pleroma, :config_description, [ "Pleroma" ] }, + %{ + key: :languages, + type: {:list, :string}, + description: "Languages the instance uses", + suggestions: [ + "en", + "ja", + "fr" + ] + }, %{ key: :email, label: "Admin Email Address", @@ -681,8 +691,8 @@ config :pleroma, :config_description, [ key: :public, type: :boolean, description: - "Makes the client API in authenticated mode-only except for user-profiles." <> - " Useful for disabling the Local Timeline and The Whole Known Network. " <> + "Switching this on will allow unauthenticated users access to all public resources on your instance" <> + " Switching it off is useful for disabling the Local Timeline and The Whole Known Network. " <> " Note: when setting to `false`, please also check `:restrict_unauthenticated` setting." }, %{ @@ -691,7 +701,7 @@ config :pleroma, :config_description, [ key_placeholder: "instance", value_placeholder: "reason", description: - "List of ActivityPub instances where private (DMs, followers-only) activities will not be sent and the reason for doing so", + "(Deprecated, will be removed in next release) List of ActivityPub instances where activities will not be sent, and the reason for doing so", suggestions: [ {"quarantined.com", "Reason"}, {"*.quarantined.com", "Reason"} @@ -946,7 +956,13 @@ config :pleroma, :config_description, [ key: :privileged_staff, type: :boolean, description: - "Let moderators access sensitive data (e.g. updating user credentials, get password reset token, delete users, index and read private statuses and chats)" + "Let moderators access sensitive data (e.g. updating user credentials, get password reset token, delete users, index and read private statuses)" + }, + %{ + key: :local_bubble, + type: {:list, :string}, + description: + "List of instances that make up your local bubble (closely-related instances). Used to populate the 'bubble' timeline (domain only)." } ] }, @@ -984,35 +1000,6 @@ config :pleroma, :config_description, [ } ] }, - %{ - key: :chat_message, - type: :keyword, - descpiption: "Chat message settings", - children: [ - %{ - key: :enabled, - type: :boolean, - description: "Enables sending a chat message to newly registered users" - }, - %{ - key: :message, - type: :string, - description: - "A message that will be sent to newly registered users as a chat message", - suggestions: [ - "Hello, welcome on board!" - ] - }, - %{ - key: :sender_nickname, - type: :string, - description: "The nickname of the local user that sends a welcome chat message", - suggestions: [ - "lain" - ] - } - ] - }, %{ key: :email, type: :keyword, @@ -1192,7 +1179,6 @@ config :pleroma, :config_description, [ hideFilteredStatuses: false, hideMutedPosts: false, hidePostStats: false, - hideSitename: false, hideUserStats: false, loginMethod: "password", logo: "/static/logo.svg", @@ -1240,6 +1226,13 @@ config :pleroma, :config_description, [ type: :boolean, description: "Enables green text on lines prefixed with the > character" }, + %{ + key: :conversationDisplay, + label: "Conversation display style", + type: :string, + description: "How to display conversations (linear or tree)", + suggestions: ["linear", "tree"] + }, %{ key: :hideFilteredStatuses, label: "Hide Filtered Statuses", @@ -1258,12 +1251,6 @@ config :pleroma, :config_description, [ type: :boolean, description: "Hide notices statistics (repeats, favorites, ...)" }, - %{ - key: :hideSitename, - label: "Hide Sitename", - type: :boolean, - description: "Hides instance name from PleromaFE banner" - }, %{ key: :hideUserStats, label: "Hide user stats", @@ -1294,14 +1281,6 @@ config :pleroma, :config_description, [ "By default it assumes logo used will be monochrome with alpha channel to be compatible with both light and dark themes. " <> "If you want a colorful logo you must disable logoMask." }, - %{ - key: :minimalScopesMode, - label: "Minimal scopes mode", - type: :boolean, - description: - "Limit scope selection to Direct, User default, and Scope of post replying to. " <> - "Also prevents replying to a DM with a public post from PleromaFE." - }, %{ key: :nsfwCensorImage, label: "NSFW Censor Image", @@ -1373,6 +1352,48 @@ config :pleroma, :config_description, [ type: :string, description: "Which theme to use. Available themes are defined in styles.json", suggestions: ["pleroma-dark"] + }, + %{ + key: :showPanelNavShortcuts, + label: "Show timeline panel nav shortcuts", + type: :boolean, + description: "Whether to put timeline nav tabs on the top of the panel" + }, + %{ + key: :showNavShortcuts, + label: "Show navbar shortcuts", + type: :boolean, + description: "Whether to put extra navigation options on the navbar" + }, + %{ + key: :showWiderShortcuts, + label: "Increase navbar shortcut spacing", + type: :boolean, + description: "Whether to add extra space between navbar icons" + }, + %{ + key: :hideSiteFavicon, + label: "Hide site favicon", + type: :boolean, + description: "Whether to hide the instance favicon from the navbar" + }, + %{ + key: :hideSiteName, + label: "Hide site name", + type: :boolean, + description: "Whether to hide the site name from the navbar" + }, + %{ + key: :renderMisskeyMarkdown, + label: "Render misskey markdown", + type: :boolean, + description: "Whether to render Misskey-flavoured markdown" + }, + %{ + key: :stopGifs, + label: "Stop Gifs", + type: :boolean, + description: "Whether to pause animated images until they're hovered on" } ] }, @@ -1465,13 +1486,14 @@ config :pleroma, :config_description, [ %{ key: :theme_color, type: :string, - description: "Describe the theme color of the app", + description: "Describe the theme color of the app - this is only used for mastodon-fe", suggestions: ["#282c37", "mediumpurple"] }, %{ key: :background_color, type: :string, - description: "Describe the background color of the app", + description: + "Describe the background color of the app - this is only used for mastodon-fe", suggestions: ["#191b22", "aliceblue"] } ] @@ -1678,6 +1700,11 @@ config :pleroma, :config_description, [ type: :boolean, description: "Sign object fetches with HTTP signatures" }, + %{ + key: :authorized_fetch_mode, + type: :boolean, + description: "Require HTTP signatures on AP fetches" + }, %{ key: :note_replies_output_limit, type: :integer, @@ -1722,14 +1749,7 @@ config :pleroma, :config_description, [ label: "STS max age", type: :integer, description: "The maximum age for the Strict-Transport-Security header if sent", - suggestions: [31_536_000] - }, - %{ - key: :ct_max_age, - label: "CT max age", - type: :integer, - description: "The maximum age for the Expect-CT header if sent", - suggestions: [2_592_000] + suggestions: [63_072_000] }, %{ key: :referrer_policy, @@ -1951,6 +1971,32 @@ config :pleroma, :config_description, [ federator_incoming: 5, federator_outgoing: 5 ] + }, + %{ + key: :timeout, + type: {:keyword, :integer}, + description: "Timeout for jobs, per `Oban` queue, in ms", + suggestions: [ + activity_expiration: :timer.seconds(5), + token_expiration: :timer.seconds(5), + filter_expiration: :timer.seconds(5), + backup: :timer.seconds(900), + federator_incoming: :timer.seconds(10), + federator_outgoing: :timer.seconds(10), + ingestion_queue: :timer.seconds(5), + web_push: :timer.seconds(5), + mailer: :timer.seconds(5), + transmogrifier: :timer.seconds(5), + scheduled_activities: :timer.seconds(5), + poll_notifications: :timer.seconds(5), + background: :timer.seconds(5), + remote_fetcher: :timer.seconds(10), + attachments_cleanup: :timer.seconds(900), + new_users_digest: :timer.seconds(10), + mute_expire: :timer.seconds(5), + search_indexing: :timer.seconds(5), + nodeinfo_fetcher: :timer.seconds(10) + ] } ] }, @@ -1979,6 +2025,21 @@ config :pleroma, :config_description, [ } ] }, + %{ + group: :pleroma, + key: Pleroma.Web.Metadata.Providers.Theme, + type: :group, + description: "Specific provider to hand out themes to instances that scrape index.html", + children: [ + %{ + key: :theme_color, + type: :string, + description: + "The 'accent color' of the instance, used in places like misskey's instance ticker", + suggestions: ["#593196"] + } + ] + }, %{ group: :pleroma, key: :rich_media, @@ -2592,38 +2653,33 @@ config :pleroma, :config_description, [ }, %{ group: :pleroma, - key: :shout, + key: :http, + label: "HTTP", type: :group, - description: "Pleroma shout settings", + description: "HTTP settings", children: [ %{ - key: :enabled, - type: :boolean, - description: "Enables the backend Shoutbox chat feature." + key: :pool_timeout, + label: "HTTP Pool Request Timeout", + type: :integer, + description: "Timeout for initiating HTTP requests (in ms, default 5000)", + suggestions: [5000] }, %{ - key: :limit, + key: :receive_timeout, + label: "HTTP Receive Timeout", type: :integer, - description: "Shout message character limit.", - suggestions: [ - 5_000 - ] - } - ] - }, - %{ - group: :pleroma, - key: :http, - label: "HTTP", - type: :group, - description: "HTTP settings", - children: [ + description: + "Timeout for waiting on remote servers to respond to HTTP requests (in ms, default 15000)", + suggestions: [15000] + }, %{ key: :proxy_url, label: "Proxy URL", - type: [:string, :tuple], - description: "Proxy URL", - suggestions: ["localhost:9020", {:socks5, :localhost, 3090}] + type: :string, + description: + "Proxy URL - of the format http://host:port. Advise setting in .exs instead of admin-fe due to this being set at boot-time.", + suggestions: ["http://localhost:3128"] }, %{ key: :user_agent, @@ -2942,8 +2998,7 @@ config :pleroma, :config_description, [ key: :restrict_unauthenticated, label: "Restrict Unauthenticated", type: :group, - description: - "Disallow viewing timelines, user profiles and statuses for unauthenticated users.", + description: "Disallow unauthenticated viewing of timelines, user profiles and statuses.", children: [ %{ key: :timelines, @@ -2953,12 +3008,12 @@ config :pleroma, :config_description, [ %{ key: :local, type: :boolean, - description: "Disallow view public timeline." + description: "Disallow viewing the public timeline." }, %{ key: :federated, type: :boolean, - description: "Disallow view federated timeline." + description: "Disallow viewing the whole known network timeline." } ] }, @@ -2970,29 +3025,29 @@ config :pleroma, :config_description, [ %{ key: :local, type: :boolean, - description: "Disallow view local user profiles." + description: "Disallow viewing local user profiles." }, %{ key: :remote, type: :boolean, - description: "Disallow view remote user profiles." + description: "Disallow viewing remote user profiles." } ] }, %{ key: :activities, type: :map, - description: "Settings for statuses.", + description: "Settings for posts.", children: [ %{ key: :local, type: :boolean, - description: "Disallow view local statuses." + description: "Disallow viewing local posts." }, %{ key: :remote, type: :boolean, - description: "Disallow view remote statuses." + description: "Disallow viewing remote posts." } ] } @@ -3024,6 +3079,19 @@ config :pleroma, :config_description, [ } ] }, + %{ + group: :pleroma, + key: :instances_nodeinfo, + type: :group, + description: "Control favicons for instances", + children: [ + %{ + key: :enabled, + type: :boolean, + description: "Allow/disallow getting instance nodeinfo" + } + ] + }, %{ group: :ex_aws, key: :s3, @@ -3074,6 +3142,27 @@ config :pleroma, :config_description, [ description: "Admin frontend", children: installed_frontend_options }, + %{ + key: :mastodon, + type: :map, + description: "Mastodon frontend", + children: installed_frontend_options + }, + %{ + key: :swagger, + type: :map, + description: "Swagger API reference frontend", + children: + installed_frontend_options ++ + [ + %{ + key: "enabled", + label: "Enabled", + type: :boolean, + description: "Whether to have this enabled at all" + } + ] + }, %{ key: :available, type: :map, @@ -3136,43 +3225,6 @@ config :pleroma, :config_description, [ } ] }, - %{ - group: :prometheus, - key: Pleroma.Web.Endpoint.MetricsExporter, - type: :group, - description: "Prometheus app metrics endpoint configuration", - children: [ - %{ - key: :enabled, - type: :boolean, - description: "[Pleroma extension] Enables app metrics endpoint." - }, - %{ - key: :ip_whitelist, - label: "IP Whitelist", - type: [{:list, :string}, {:list, :charlist}, {:list, :tuple}], - description: "Restrict access of app metrics endpoint to the specified IP addresses." - }, - %{ - key: :auth, - type: [:boolean, :tuple], - description: "Enables HTTP Basic Auth for app metrics endpoint.", - suggestion: [false, {:basic, "myusername", "mypassword"}] - }, - %{ - key: :path, - type: :string, - description: "App metrics endpoint URI path.", - suggestions: ["/api/pleroma/app_metrics"] - }, - %{ - key: :format, - type: :atom, - description: "App metrics endpoint output format.", - suggestions: [:text, :protobuf] - } - ] - }, %{ group: :pleroma, key: ConcurrentLimiter, @@ -3225,13 +3277,14 @@ config :pleroma, :config_description, [ group: :pleroma, key: Pleroma.Search, type: :group, + label: "Search", description: "General search settings.", children: [ %{ key: :module, - type: :keyword, + type: :module, description: "Selected search module.", - suggestion: [Pleroma.Search.DatabaseSearch, Pleroma.Search.Meilisearch] + suggestions: {:list_behaviour_implementations, Pleroma.Search.SearchBackend} } ] }, @@ -3256,7 +3309,7 @@ config :pleroma, :config_description, [ }, %{ key: :initial_indexing_chunk_size, - type: :int, + type: :integer, description: "Amount of posts in a batch when running the initial indexing operation. Should probably not be more than 100000" <> " since there's a limit on maximum insert size", @@ -3267,6 +3320,7 @@ config :pleroma, :config_description, [ %{ group: :pleroma, key: Pleroma.Search.Elasticsearch.Cluster, + label: "Elasticsearch", type: :group, description: "Elasticsearch settings.", children: [ @@ -3333,13 +3387,13 @@ config :pleroma, :config_description, [ }, %{ key: :bulk_page_size, - type: :int, + type: :integer, description: "Size for bulk put requests, mostly used on building the index", suggestion: [5000] }, %{ key: :bulk_wait_interval, - type: :int, + type: :integer, description: "Time to wait between bulk put requests (in ms)", suggestion: [15_000] } @@ -3348,5 +3402,66 @@ config :pleroma, :config_description, [ ] } ] + }, + %{ + group: :pleroma, + key: :translator, + type: :group, + description: "Translation Settings", + children: [ + %{ + key: :enabled, + type: :boolean, + description: "Is translation enabled?", + suggestion: [true, false] + }, + %{ + key: :module, + type: :module, + description: "Translation module.", + suggestions: {:list_behaviour_implementations, Pleroma.Akkoma.Translator} + } + ] + }, + %{ + group: :pleroma, + key: :deepl, + label: "DeepL", + type: :group, + description: "DeepL Settings.", + children: [ + %{ + key: :tier, + type: {:dropdown, :atom}, + description: "API Tier", + suggestions: [:free, :pro] + }, + %{ + key: :api_key, + type: :string, + description: "API key for DeepL", + suggestions: [nil] + } + ] + }, + %{ + group: :pleroma, + key: :libre_translate, + type: :group, + description: "LibreTranslate Settings.", + children: [ + %{ + key: :url, + type: :string, + description: "URL for libretranslate", + suggestion: [nil] + }, + %{ + key: :api_key, + type: :string, + description: "API key for libretranslate", + suggestion: [nil] + } + ] } ]