1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/gotosocial_ynh.git synced 2024-09-03 19:16:06 +02:00

Merge pull request #127 from YunoHost-Apps/testing

This commit is contained in:
OniriCorpe 2024-03-07 01:40:08 +01:00 committed by GitHub
commit 77df1b84a6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 511 additions and 430 deletions

View file

@ -26,7 +26,7 @@ The documentation for this YunoHost package [can be read here](./doc/DOCS.md) an
Please note that this package uses the ["i'm so tired" software license 1.0](https://github.com/YunoHost-Apps/gotosocial_ynh/blob/master/LICENSE), please read it and accept it before proceeding with installation. Please note that this package uses the ["i'm so tired" software license 1.0](https://github.com/YunoHost-Apps/gotosocial_ynh/blob/master/LICENSE), please read it and accept it before proceeding with installation.
**Shipped version:** 0.13.3~ynh1 **Shipped version:** 0.14.0~ynh1
## Screenshots ## Screenshots
@ -36,6 +36,8 @@ Please note that this package uses the ["i'm so tired" software license 1.0](htt
- **Alpha software**: Early development stage. May contain changing or unstable features, bugs, and security vulnerability. - **Alpha software**: Early development stage. May contain changing or unstable features, bugs, and security vulnerability.
- **Not totally free package**: The YunoHost package of this app is under an overall free licence, but with clauses that restrict its use.
## Documentation and resources ## Documentation and resources
* Official app website: <https://gotosocial.org/> * Official app website: <https://gotosocial.org/>

View file

@ -26,7 +26,7 @@ La documentation de ce paquet YunoHost [est lisible ici](./doc/DOCS_fr.md) et l'
Veuillez noter que ce paquet utilise la ["i'm so tired" software license 1.0](https://github.com/YunoHost-Apps/gotosocial_ynh/blob/master/LICENSE), veuillez la lire et l'accepter avant de procéder à l'installation. Veuillez noter que ce paquet utilise la ["i'm so tired" software license 1.0](https://github.com/YunoHost-Apps/gotosocial_ynh/blob/master/LICENSE), veuillez la lire et l'accepter avant de procéder à l'installation.
**Version incluse :** 0.13.3~ynh1 **Version incluse :** 0.14.0~ynh1
## Captures décran ## Captures décran
@ -36,6 +36,8 @@ Veuillez noter que ce paquet utilise la ["i'm so tired" software license 1.0](ht
- **Alpha software**: Early development stage. May contain changing or unstable features, bugs, and security vulnerability. - **Alpha software**: Early development stage. May contain changing or unstable features, bugs, and security vulnerability.
- **Not totally free package**: The YunoHost package of this app is under an overall free licence, but with clauses that restrict its use.
## Documentations et ressources ## Documentations et ressources
* Site officiel de lapp : <https://gotosocial.org/> * Site officiel de lapp : <https://gotosocial.org/>

View file

@ -5,22 +5,24 @@
# Most of the relevant settings are available in the config panel, if you're # Most of the relevant settings are available in the config panel, if you're
# missing one, open an issue: https://github.com/YunoHost-Apps/gotosocial_ynh/issues # missing one, open an issue: https://github.com/YunoHost-Apps/gotosocial_ynh/issues
---
# GoToSocial # GoToSocial
# Copyright (C) 2021-2023 GoToSocial Authors admin@gotosocial.org # Copyright (C) GoToSocial Authors admin@gotosocial.org
# SPDX-License-Identifier: AGPL-3.0-or-later
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU Affero General Public License as published by # This program is free software: you can redistribute it and/or modify
# the Free Software Foundation, either version 3 of the License, or # it under the terms of the GNU Affero General Public License as published by
# (at your option) any later version. # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of # This program is distributed in the hope that it will be useful,
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # but WITHOUT ANY WARRANTY; without even the implied warranty of
# GNU Affero General Public License for more details. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
# You should have received a copy of the GNU Affero General Public License #
# along with this program. If not, see <http://www.gnu.org/licenses/>. # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
########################### ###########################
##### GENERAL CONFIG ###### ##### GENERAL CONFIG ######
@ -50,7 +52,7 @@ log-client-ip: true
# The format must be compatible with Go's time.Layout, as # The format must be compatible with Go's time.Layout, as
# documented on https://pkg.go.dev/time#pkg-constants. # documented on https://pkg.go.dev/time#pkg-constants.
# #
# Examples: [true, false] # Examples: ["2006-01-02T15:04:05.000Z07:00", ""]
# Default: "02/01/2006 15:04:05.000" # Default: "02/01/2006 15:04:05.000"
log-timestamp-format: "02/01/2006 15:04:05.000" log-timestamp-format: "02/01/2006 15:04:05.000"
@ -317,6 +319,43 @@ instance-languages: []
# Default: "blocklist" # Default: "blocklist"
instance-federation-mode: "__INSTANCE_FEDERATION_MODE__" instance-federation-mode: "__INSTANCE_FEDERATION_MODE__"
# Bool. Enable spam filtering heuristics for messages entering your instance
# via the federation API. Regardless of what you set here, basic checks
# for message relevancy will still be performed, but you can try enabling
# this setting if you are being spammed with unwanted messages from other
# instances, and want to more strictly filter out spam messages.
#
# THIS IS CURRENTLY AN EXPERIMENTAL SETTING, AND MAY FILTER OUT LEGITIMATE
# MESSAGES, OR FAIL TO FILTER OUT SPAMMY MESSAGES. It is recommended to
# only enable this setting when the fediverse is in the midst of a spam
# wave, and you need to batten down the hatches to keep your instance usable.
#
# The decision of whether a message counts as spam or not is made based on
# the following heuristics, in order, where receiver = the account on your
# instance that received a message in their inbox, and requester = the
# account on a remote instance that sent the message.
#
# First, basic relevancy checks
#
# 1. Receiver follows requester. Return OK.
# 2. Statusable doesn't mention receiver. Return NotRelevant.
#
# If instance-federation-spam-filter = false, then return OK now.
# Otherwise check:
#
# 3. Receiver is locked and is followed by requester. Return OK.
# 4. Five or more people are mentioned. Return Spam.
# 5. Receiver follow (requests) a mentioned account. Return OK.
# 6. Statusable has a media attachment. Return Spam.
# 7. Statusable contains non-mention, non-hashtag links. Return Spam.
#
# Messages identified as spam will be dropped from your instance, and not
# inserted into the database, or into home timelines or notifications.
#
# Options: [true, false]
# Default: false
instance-federation-spam-filter: false
# Bool. Allow unauthenticated users to make queries to /api/v1/instance/peers?filter=open in order # Bool. Allow unauthenticated users to make queries to /api/v1/instance/peers?filter=open in order
# to see a list of instances that this instance 'peers' with. Even if set to 'false', then authenticated # to see a list of instances that this instance 'peers' with. Even if set to 'false', then authenticated
# users (members of the instance) will still be able to query the endpoint. # users (members of the instance) will still be able to query the endpoint.
@ -370,6 +409,7 @@ instance-deliver-to-shared-inboxes: __INSTANCE_DELIVER_TO_SHARED_INBOXES__
# Default: false # Default: false
instance-inject-mastodon-version: __INSTANCE_INJECT_MASTODON_VERSION__ instance-inject-mastodon-version: __INSTANCE_INJECT_MASTODON_VERSION__
########################### ###########################
##### ACCOUNTS CONFIG ##### ##### ACCOUNTS CONFIG #####
########################### ###########################
@ -420,14 +460,22 @@ accounts-custom-css-length: __ACCOUNTS_CUSTOM_CSS_LENGTH__
# Config pertaining to media uploads (videos, image, image descriptions, emoji). # Config pertaining to media uploads (videos, image, image descriptions, emoji).
# Int. Maximum allowed image upload size in bytes. # Size. Maximum allowed image upload size in bytes.
# Examples: [2097152, 10485760] #
# Default: 10485760 -- aka 10MB # Raising this limit may cause other servers to not fetch media
# attached to a post.
#
# Examples: [2097152, 10485760, 10MB, 10MiB]
# Default: 10MiB (10485760 bytes)
media-image-max-size: __MEDIA_IMAGE_MAX_SIZE__ media-image-max-size: __MEDIA_IMAGE_MAX_SIZE__
# Int. Maximum allowed video upload size in bytes. # Size. Maximum allowed video upload size in bytes.
# Examples: [2097152, 10485760] #
# Default: 41943040 -- aka 40MB # Raising this limit may cause other servers to not fetch media
# attached to a post.
#
# Examples: [2097152, 10485760, 40MB, 40MiB]
# Default: 40MiB (41943040 bytes)
media-video-max-size: __MEDIA_VIDEO_MAX_SIZE__ media-video-max-size: __MEDIA_VIDEO_MAX_SIZE__
# Int. Minimum amount of characters required as an image or video description. # Int. Minimum amount of characters required as an image or video description.
@ -437,23 +485,28 @@ media-description-min-chars: __MEDIA_DESCRIPTION_MIN_CHARS__
# Int. Maximum amount of characters permitted in an image or video description. # Int. Maximum amount of characters permitted in an image or video description.
# Examples: [500, 1000, 1500] # Examples: [500, 1000, 1500]
# Default: 500 # Examples: [1000, 1500, 3000]
# Default: 1500
media-description-max-chars: __MEDIA_DESCRIPTION_MAX_CHARS__ media-description-max-chars: __MEDIA_DESCRIPTION_MAX_CHARS__
# Int. Max size in bytes of emojis uploaded to this instance via the admin API. # Size. Max size in bytes of emojis uploaded to this instance via the admin API.
#
# The default is the same as the Mastodon size limit for emojis (50kb), which allows # The default is the same as the Mastodon size limit for emojis (50kb), which allows
# for good interoperability. Raising this limit may cause issues with federation # for good interoperability. Raising this limit may cause issues with federation
# of your emojis to other instances, so beware. # of your emojis to other instances, so beware.
# Examples: [51200, 102400] #
# Default: 51200 # Examples: [51200, 102400, 50KB, 50KiB]
# Default: 50KiB (51200 bytes)
media-emoji-local-max-size: __MEDIA_EMOJI_LOCAL_MAX_SIZE__ media-emoji-local-max-size: __MEDIA_EMOJI_LOCAL_MAX_SIZE__
# Int. Max size in bytes of emojis to download from other instances. # Size. Max size in bytes of emojis to download from other instances.
#
# By default this is 100kb, or twice the size of the default for media-emoji-local-max-size. # By default this is 100kb, or twice the size of the default for media-emoji-local-max-size.
# This strikes a good balance between decent interoperability with instances that have # This strikes a good balance between decent interoperability with instances that have
# higher emoji size limits, and not taking up too much space in storage. # higher emoji size limits, and not taking up too much space in storage.
# Examples: [51200, 102400] #
# Default: 102400 # Examples: [51200, 102400, 100KB, 100KiB]
# Default: 100KiB (102400 bytes)
media-emoji-remote-max-size: __MEDIA_EMOJI_REMOTE_MAX_SIZE__ media-emoji-remote-max-size: __MEDIA_EMOJI_REMOTE_MAX_SIZE__
# The below media cleanup settings allow admins to customize when and # The below media cleanup settings allow admins to customize when and
@ -558,18 +611,15 @@ storage-s3-bucket: "__STORAGE_S3_BUCKET__"
# Config pertaining to the creation of statuses/posts, and permitted limits. # Config pertaining to the creation of statuses/posts, and permitted limits.
# Int. Maximum amount of characters permitted for a new status. # Int. Maximum amount of characters permitted for a new status,
# including the content warning (if set).
#
# Note that going way higher than the default might break federation. # Note that going way higher than the default might break federation.
#
# Examples: [140, 500, 5000] # Examples: [140, 500, 5000]
# Default: 5000 # Default: 5000
statuses-max-chars: __STATUSES_MAX_CHARS__ statuses-max-chars: __STATUSES_MAX_CHARS__
# Int. Maximum amount of characters allowed in the CW/subject header of a status.
# Note that going way higher than the default might break federation.
# Examples: [100, 200]
# Default: 100
statuses-cw-max-chars: __STATUSES_CW_MAX_CHARS__
# Int. Maximum amount of options to permit when creating a new poll. # Int. Maximum amount of options to permit when creating a new poll.
# Note that going way higher than the default might break federation. # Note that going way higher than the default might break federation.
# Examples: [4, 6, 10] # Examples: [4, 6, 10]
@ -702,6 +752,12 @@ oidc-scopes:
# Default: false # Default: false
oidc-link-existing: __OIDC_LINK_EXISTING__ oidc-link-existing: __OIDC_LINK_EXISTING__
# Array of string. If the returned ID token contains a 'groups' claim that matches one of the
# groups in oidc-allowed-groups, then this user will be granted access on the GtS instance. If the array is empty,
# then all groups will be granted permission.
# Default: []
oidc-allowed-groups: []
# Array of string. If the returned ID token contains a 'groups' claim that matches one of the # Array of string. If the returned ID token contains a 'groups' claim that matches one of the
# groups in oidc-admin-groups, then this user will be granted admin rights on the GtS instance # groups in oidc-admin-groups, then this user will be granted admin rights on the GtS instance
# Default: [] # Default: []
@ -1042,3 +1098,20 @@ advanced-sender-multiplier: 2
# Example: ["s3.example.org", "some-bucket-name.s3.example.org"] # Example: ["s3.example.org", "some-bucket-name.s3.example.org"]
# Default: [] # Default: []
advanced-csp-extra-uris: [] advanced-csp-extra-uris: []
# String. HTTP request header filtering mode to use for this instance.
#
# "block" -- only requests that are explicitly blocked by header filters
# will be denied (unless they are also explicitly allowed).
#
# "allow" -- only requests that are explicitly allowed by header filters
# will be accepted (unless they are also explicitly blocked).
#
# "" -- request header filtering disabled.
#
# For more details on block and allow modes, check the documentation at:
# https://docs.gotosocial.org/en/latest/admin/request_filtering_modes
#
# Options: ["block", "allow", ""]
# Default: ""
advanced-header-filter-mode: ""

View file

@ -2,7 +2,7 @@ version = "1.0"
[main] [main]
services = ["__APP__"] services = [ "__APP__" ]
name.en = "Config panel" name.en = "Config panel"
name.fr = "Panneau de configuration" name.fr = "Panneau de configuration"
@ -13,212 +13,211 @@ help = "Here you can easily configure some things about your GoToSocial instance
#### ACCOUNTS CONFIG #### ACCOUNTS CONFIG
#################### ####################
[main.accounts] [main.accounts]
name = "Accounts config" name = "Accounts config"
help = "Config pertaining to creation and maintenance of accounts on the server, as well as defaults for new accounts." help = "Config pertaining to creation and maintenance of accounts on the server, as well as defaults for new accounts."
[main.accounts.accounts_registration_open] [main.accounts.accounts_registration_open]
ask.en = "Open registrations?" ask.en = "Open registrations?"
ask.fr = "Inscriptions ouvertes ?" ask.fr = "Inscriptions ouvertes ?"
bind = "accounts-registration-open:__INSTALL_DIR__/config.yaml" bind = "accounts-registration-open:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "false" default = "false"
help.en = "Do we want people to be able to just submit sign up requests, or do we want invite only?" help.en = "Do we want people to be able to just submit sign up requests, or do we want invite only?"
help.fr = "Voulez-vous que les gens puissent simplement envoyer des demandes d'inscription, ou voulez-vous qu'iels doivent être invité-e-s ?" help.fr = "Voulez-vous que les gens puissent simplement envoyer des demandes d'inscription, ou voulez-vous qu'iels doivent être invité-e-s ?"
type = "select" type = "select"
[main.accounts.accounts_approval_required] [main.accounts.accounts_approval_required]
ask.en = "Approval required?" ask.en = "Approval required?"
ask.fr = "Validation requise ?" ask.fr = "Validation requise ?"
bind = "accounts-approval-required:__INSTALL_DIR__/config.yaml" bind = "accounts-approval-required:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "true" default = "true"
help.en = "Do sign up requests require approval from an admin/moderator before an account can sign in/use the server?" help.en = "Do sign up requests require approval from an admin/moderator before an account can sign in/use the server?"
help.fr = "Les demandes d'inscription doivent-elles être approuvées par un-e administrateur-ice/modérateur-ice avant qu'un compte puisse se connecter/utiliser le serveur ?" help.fr = "Les demandes d'inscription doivent-elles être approuvées par un-e administrateur-ice/modérateur-ice avant qu'un compte puisse se connecter/utiliser le serveur ?"
type = "select" type = "select"
[main.accounts.accounts_reason_required] [main.accounts.accounts_reason_required]
ask.en = "Reason required?" ask.en = "Reason required?"
ask.fr = "Motif requis ?" ask.fr = "Motif requis ?"
bind = "accounts-reason-required:__INSTALL_DIR__/config.yaml" bind = "accounts-reason-required:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "true" default = "true"
help.en = "Are sign up requests required to submit a reason for the request (eg., an explanation of why they want to join the instance)?" help.en = "Are sign up requests required to submit a reason for the request (eg., an explanation of why they want to join the instance)?"
help.fr = "Les demandes d'inscription doivent-elles être motivées (par exemple, par une explication de la raison pour laquelle la personne souhaite rejoindre l'instance) ?" help.fr = "Les demandes d'inscription doivent-elles être motivées (par exemple, par une explication de la raison pour laquelle la personne souhaite rejoindre l'instance) ?"
type = "select" type = "select"
[main.accounts.accounts_allow_custom_css] [main.accounts.accounts_allow_custom_css]
ask.en = "Allow user custom CSS?" ask.en = "Allow user custom CSS?"
ask.fr = "Autoriser le CSS personnalisé des utilisateurices ?" ask.fr = "Autoriser le CSS personnalisé des utilisateurices ?"
bind = "accounts-allow-custom-css:__INSTALL_DIR__/config.yaml" bind = "accounts-allow-custom-css:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "false" default = "false"
help.en = """Allow accounts on this instance to set custom CSS for their profile pages and statuses.\ help.en = """Allow accounts on this instance to set custom CSS for their profile pages and statuses.\
Enabling this setting will allow accounts to upload custom CSS via the /user settings page, which will then be rendered on the web view of the account's profile and statuses.\ Enabling this setting will allow accounts to upload custom CSS via the /user settings page, which will then be rendered on the web view of the account's profile and statuses.\
For instances with public sign ups, it is **HIGHLY RECOMMENDED** to leave this setting on 'false', since setting it to true allows malicious accounts to make their profile pages misleading, unusable or even dangerous to visitors. In other words, you should only enable this setting if you trust the users on your instance not to produce harmful CSS.\ For instances with public sign ups, it is **HIGHLY RECOMMENDED** to leave this setting on 'false', since setting it to true allows malicious accounts to make their profile pages misleading, unusable or even dangerous to visitors. In other words, you should only enable this setting if you trust the users on your instance not to produce harmful CSS.\
Regardless of what this value is set to, any uploaded CSS will not be federated to other instances, it will only be shown on profiles and statuses on *this* instance.""" Regardless of what this value is set to, any uploaded CSS will not be federated to other instances, it will only be shown on profiles and statuses on *this* instance."""
help.fr = """Autoriser les comptes de cette instance à définir un CSS personnalisé pour leurs pages de profil et leurs statuts.\ help.fr = """Autoriser les comptes de cette instance à définir un CSS personnalisé pour leurs pages de profil et leurs statuts.\
En activant ce paramètre, les comptes pourront télécharger des feuilles de style CSS personnalisées via la page de configuration de l'utilisateur-ice /user, qui seront ensuite affichées sur la page Web du profil et des statuts du compte.\ En activant ce paramètre, les comptes pourront télécharger des feuilles de style CSS personnalisées via la page de configuration de l'utilisateur-ice /user, qui seront ensuite affichées sur la page Web du profil et des statuts du compte.\
Pour les instances avec des inscriptions publiques, il est **HAUTEMENT RECOMMANDÉ** de laisser ce paramètre sur "false", car le mettre sur "true" permet aux comptes malveillants de rendre leurs pages de profil trompeuses, inutilisables ou même dangereuses pour les visiteurs. En d'autres termes, vous ne devez activer ce paramètre que si vous avez confiance dans le fait que les utilisateurs de votre instance ne produisent pas de CSS dangereux.\ Pour les instances avec des inscriptions publiques, il est **HAUTEMENT RECOMMANDÉ** de laisser ce paramètre sur "false", car le mettre sur "true" permet aux comptes malveillants de rendre leurs pages de profil trompeuses, inutilisables ou même dangereuses pour les visiteurs. En d'autres termes, vous ne devez activer ce paramètre que si vous avez confiance dans le fait que les utilisateurs de votre instance ne produisent pas de CSS dangereux.\
Quelle que soit la valeur de ce paramètre, tout CSS téléchargé ne sera pas fédéré à d'autres instances, il ne sera affiché que sur les profils et les statuts de *cette* instance.""" Quelle que soit la valeur de ce paramètre, tout CSS téléchargé ne sera pas fédéré à d'autres instances, il ne sera affiché que sur les profils et les statuts de *cette* instance."""
type = "select" type = "select"
[main.accounts.accounts_custom_css_length] [main.accounts.accounts_custom_css_length]
ask.en = "Custom CSS max length?" ask.en = "Custom CSS max length?"
ask.fr = "Longueur max du CSS personnalisé ?" ask.fr = "Longueur max du CSS personnalisé ?"
bind = "accounts-custom-css-length:__INSTALL_DIR__/config.yaml" bind = "accounts-custom-css-length:__INSTALL_DIR__/config.yaml"
default = "10000" default = "10000"
help.en = "If accounts-allow-custom-css is 'true', this is the permitted length in characters for CSS uploaded by accounts on this instance. No effect if accounts-allow-custom-css is 'false'. Default: 10000" help.en = "If accounts-allow-custom-css is 'true', this is the permitted length in characters for CSS uploaded by accounts on this instance. No effect if accounts-allow-custom-css is 'false'. Default: 10000"
help.fr = "Si accounts-allow-custom-css est 'true', il s'agit de la longueur autorisée en caractères pour les feuilles de style CSS qui sont fournies par les comptes sur cette instance. Aucun effet si accounts-allow-custom-css est 'false'. Valeur par défaut : 10000" help.fr = "Si accounts-allow-custom-css est 'true', il s'agit de la longueur autorisée en caractères pour les feuilles de style CSS qui sont fournies par les comptes sur cette instance. Aucun effet si accounts-allow-custom-css est 'false'. Valeur par défaut : 10000"
type = "number" type = "number"
################# #################
#### MEDIA CONFIG #### MEDIA CONFIG
################# #################
[main.media] [main.media]
name = "Media config" name = "Media config"
help = "Config pertaining to user media uploads (videos, image, image descriptions)." help = "Config pertaining to user media uploads (videos, image, image descriptions)."
[main.media.media_image_max_size] [main.media.media_image_max_size]
ask.en = "Maximum allowed image upload size in bytes." ask.en = "Maximum allowed image upload size in bytes."
ask.fr = "Taille maximale autorisée pour le téléchargement d'images, en octets." ask.fr = "Taille maximale autorisée pour le téléchargement d'images, en octets."
bind = "media-image-max-size:__INSTALL_DIR__/config.yaml" bind = "media-image-max-size:__INSTALL_DIR__/config.yaml"
default = "2097152" default = "10MiB"
help.en = "Default: 2097152 -- aka 2MB" help.en = "Default: 10MiB (10485760 bytes)"
help.fr = "Valeur par défaut : 2097152 (soit 2 Mo)" help.fr = "Valeur par défaut : 10MiB (10485760 octets)"
type = "number" type = "string"
pattern.regexp = "^[0-9]*(KB|KiB|MB|MiB)?$"
pattern.error = "Should be a number with or without the following unit marker: KB, KiB, MB, MiB."
[main.media.media_video_max_size] [main.media.media_video_max_size]
ask.en = "Maximum allowed video upload size in bytes." ask.en = "Maximum allowed video upload size in bytes."
ask.fr = "Taille maximale autorisée pour le téléchargement de vidéos, en octets." ask.fr = "Taille maximale autorisée pour le téléchargement de vidéos, en octets."
bind = "media-video-max-size:__INSTALL_DIR__/config.yaml" bind = "media-video-max-size:__INSTALL_DIR__/config.yaml"
default = "10485760" default = "40MiB"
help.en = "Default: 10485760 -- aka 10MB" help.en = "Default: 40MiB (41943040 bytes)"
help.fr = "Valeur par défaut : 10485760 (soit 10 Mo)" help.fr = "Valeur par défaut : 40MiB (41943040 octets)"
type = "number" type = "string"
pattern.regexp = "^[0-9]*(KB|KiB|MB|MiB)?$"
pattern.error = "Should be a number with or without the following unit marker: KB, KiB, MB, MiB."
[main.media.media_description_min_chars] [main.media.media_description_min_chars]
ask.en = "Minimum amount of characters required as an image or video description." ask.en = "Minimum amount of characters required as an image or video description."
ask.fr = "Nombre minimum de caractères requis pour la description d'une image ou d'une vidéo." ask.fr = "Nombre minimum de caractères requis pour la description d'une image ou d'une vidéo."
bind = "media-description-min-chars:__INSTALL_DIR__/config.yaml" bind = "media-description-min-chars:__INSTALL_DIR__/config.yaml"
default = "0" default = "0"
help.en = "Default: 0 (not required)" help.en = "Default: 0 (not required)"
help.fr = "Valeur par défaut : 0 (non obligatoire)" help.fr = "Valeur par défaut : 0 (non obligatoire)"
type = "number" type = "number"
[main.media.media_description_max_chars] [main.media.media_description_max_chars]
ask.en = "Maximum amount of characters permitted in an image or video description." ask.en = "Maximum amount of characters permitted in an image or video description."
ask.fr = "Nombre maximum de caractères requis pour la description d'une image ou d'une vidéo." ask.fr = "Nombre maximum de caractères requis pour la description d'une image ou d'une vidéo."
bind = "media-description-max-chars:__INSTALL_DIR__/config.yaml" bind = "media-description-max-chars:__INSTALL_DIR__/config.yaml"
default = "500" default = "1500"
help.en = "Default: 500" help.en = "Default: 1500"
help.fr = "Valeur par défaut : 500" help.fr = "Valeur par défaut : 1500"
type = "number" type = "number"
[main.media.media_remote_cache_days] [main.media.media_remote_cache_days]
ask.en = "Number of days to cache media from remote instances before they are removed from the cache." ask.en = "Number of days to cache media from remote instances before they are removed from the cache."
ask.fr = "Nombre de jours de mise en cache des médias des instances distantes avant qu'ils ne soient retirés du cache." ask.fr = "Nombre de jours de mise en cache des médias des instances distantes avant qu'ils ne soient retirés du cache."
bind = "media-remote-cache-days:__INSTALL_DIR__/config.yaml" bind = "media-remote-cache-days:__INSTALL_DIR__/config.yaml"
default = "30" default = "30"
help.en = """Default: 30\ help.en = """Default: 30\
A job will run every day at midnight to clean up any remote media older than the given amount of days. \ A job will run every day at midnight to clean up any remote media older than the given amount of days. \
When remote media is removed from the cache, it is deleted from storage but the database entries for the media are kept so that it can be fetched again if requested by a user.\ When remote media is removed from the cache, it is deleted from storage but the database entries for the media are kept so that it can be fetched again if requested by a user.\
If this is set to 0, then media from remote instances will be cached indefinitely.\ If this is set to 0, then media from remote instances will be cached indefinitely.\
""" """
help.fr = """Valeur par défaut : 30\ help.fr = """Valeur par défaut : 30\
Une tâche est exécutée tous les soirs à minuit pour nettoyer les médias distants datant de plus d'un certain nombre de jours.\ Une tâche est exécutée tous les soirs à minuit pour nettoyer les médias distants datant de plus d'un certain nombre de jours.\
Lorsque le média distant est supprimé du cache, il est supprimé du stockage mais les entrées de la base de données pour le média sont conservées afin qu'il puisse être récupéré si un utilisateur le demande.\ Lorsque le média distant est supprimé du cache, il est supprimé du stockage mais les entrées de la base de données pour le média sont conservées afin qu'il puisse être récupéré si un utilisateur le demande.\
Si la valeur 0 est attribuée à ce paramètre, les médias des instances distantes sont mis en cache indéfiniment.\ Si la valeur 0 est attribuée à ce paramètre, les médias des instances distantes sont mis en cache indéfiniment.\
""" """
type = "number" type = "number"
[main.media.media_emoji_local_max_size] [main.media.media_emoji_local_max_size]
ask.en = "Max size in bytes of emojis uploaded to this instance via the admin API." ask.en = "Max size in bytes of emojis uploaded to this instance via the admin API."
ask.fr = "Taille maximale en octets des emojis téléchargés vers cette instance via l'API d'administration." ask.fr = "Taille maximale en octets des emojis téléchargés vers cette instance via l'API d'administration."
bind = "media-emoji-local-max-size:__INSTALL_DIR__/config.yaml" bind = "media-emoji-local-max-size:__INSTALL_DIR__/config.yaml"
default = "51200" default = "50KiB"
help.en = """Default: 51200\ help.en = """Default: 50KiB (51200 bytes)\
The default is the same as the Mastodon size limit for emojis (50kb), which allows for good interoperability.\ The default is the same as the Mastodon size limit for emojis (50kb), which allows for good interoperability.\
Raising this limit may cause issues with federation of your emojis to other instances, so beware.""" Raising this limit may cause issues with federation of your emojis to other instances, so beware."""
help.fr = """Valeur par défaut : 51200\ help.fr = """Valeur par défaut : 50KiB (51200 octets)\
La valeur par défaut est la même que la limite de taille des emojis de Mastodon (50 ko), ce qui permet une bonne interopérabilité.\ La valeur par défaut est la même que la limite de taille des emojis de Mastodon (50 ko), ce qui permet une bonne interopérabilité.\
Si vous augmentez cette limite, vous risquez d'avoir des problèmes avec la fédération de vos emojis à d'autres instances, alors faites preuve de prudence.""" Si vous augmentez cette limite, vous risquez d'avoir des problèmes avec la fédération de vos emojis à d'autres instances, alors faites preuve de prudence."""
type = "number" type = "string"
pattern.regexp = "^[0-9]*(KB|KiB|MB|MiB)?$"
pattern.error = "Should be a number with or without the following unit marker: KB, KiB, MB, MiB."
[main.media.media_emoji_remote_max_size] [main.media.media_emoji_remote_max_size]
ask.en = "Max size in bytes of emojis to download from other instances." ask.en = "Max size in bytes of emojis to download from other instances."
ask.fr = "Taille maximale en octets des emojis téléchargeables à partir d'autres instances." ask.fr = "Taille maximale en octets des emojis téléchargeables à partir d'autres instances."
bind = "media-emoji-remote-max-size:__INSTALL_DIR__/config.yaml" bind = "media-emoji-remote-max-size:__INSTALL_DIR__/config.yaml"
default = "102400" default = "100KiB"
help.en = """Default: 102400\ help.en = """Default: 100KiB\
By default this is 100kb, or twice the size of the default for media-emoji-local-max-size.\ By default this is 100kb, or twice the size of the default for media-emoji-local-max-size.\
This strikes a good balance between decent interoperability with instances that have higher emoji size limits, and not taking up too much space in storage.""" This strikes a good balance between decent interoperability with instances that have higher emoji size limits, and not taking up too much space in storage."""
help.fr = """Valeur par défaut : 102400\ help.fr = """Valeur par défaut : 100KiB\
Par défaut, cette taille est de 100 Ko, soit le double de la taille par défaut de media-emoji-local-max-size (le paramètre précédent).\ Par défaut, cette taille est de 100 Ko, soit le double de la taille par défaut de media-emoji-local-max-size (le paramètre précédent).\
Cette valeur représente un bon équilibre entre une interopérabilité décente avec les instances qui ont des limites de taille d'emoji plus élevées et le fait de ne pas prendre trop d'espace de stockage.""" Cette valeur représente un bon équilibre entre une interopérabilité décente avec les instances qui ont des limites de taille d'emoji plus élevées et le fait de ne pas prendre trop d'espace de stockage."""
type = "number" type = "string"
pattern.regexp = "^[0-9]*(KB|KiB|MB|MiB)?$"
pattern.error = "Should be a number with or without the following unit marker: KB, KiB, MB, MiB."
################### ###################
### STATUSES CONFIG ### STATUSES CONFIG
################### ###################
[main.statuses] [main.statuses]
name = "Status config" name = "Status config"
help = "Config pertaining to the creation of statuses/posts, and permitted limits." help = "Config pertaining to the creation of statuses/posts, and permitted limits."
[main.statuses.statuses_max_chars] [main.statuses.statuses_max_chars]
ask.en = "Maximum amount of characters permitted for a new status." ask.en = "Maximum amount of characters permitted for a new status."
ask.fr = "Nombre maximal de caractères autorisés pour un nouveau statut." ask.fr = "Nombre maximal de caractères autorisés pour un nouveau statut."
bind = "statuses-max-chars:__INSTALL_DIR__/config.yaml" bind = "statuses-max-chars:__INSTALL_DIR__/config.yaml"
default = "5000" default = "5000"
help.en = "Default: 5000. Note that going way higher than the default might break federation." help.en = "Default: 5000. Note that going way higher than the default might break federation."
help.fr = "Valeur par défaut : 5000. Notez que si vous dépassez la valeur par défaut, vous risquez de compromettre la fédération." help.fr = "Valeur par défaut : 5000. Notez que si vous dépassez la valeur par défaut, vous risquez de compromettre la fédération."
type = "number" type = "number"
[main.statuses.statuses_cw_max_chars] [main.statuses.statuses_poll_max_options]
ask.en = "Maximum amount of characters allowed in the CW/subject header of a status." ask.en = "Maximum amount of options to permit when creating a new poll."
ask.fr = "Nombre maximum de caractères autorisés dans l'en-tête CW/sujet d'un statut." ask.fr = "Nombre maximum d'options autorisées lors de la création d'un nouveau sondage."
bind = "statuses-cw-max-chars:__INSTALL_DIR__/config.yaml" bind = "statuses-poll-max-options:__INSTALL_DIR__/config.yaml"
default = "100" default = "6"
help.en = "Default: 100. Note that going way higher than the default might break federation." help.en = "Default: 6. Note that going way higher than the default might break federation."
help.fr = "Valeur par défaut : 100. Notez que si vous dépassez la valeur par défaut, vous risquez de compromettre la fédération." help.fr = "Valeur par défaut : 6. Notez que si vous dépassez la valeur par défaut, vous risquez de compromettre la fédération."
type = "number" type = "number"
[main.statuses.statuses_poll_max_options] [main.statuses.statuses_poll_option_max_chars]
ask.en = "Maximum amount of options to permit when creating a new poll." ask.en = "Maximum amount of characters to permit per poll option when creating a new poll."
ask.fr = "Nombre maximum d'options autorisées lors de la création d'un nouveau sondage." ask.fr = "Nombre maximal de caractères autorisés par option de sondage lors de la création d'un nouveau sondage."
bind = "statuses-poll-max-options:__INSTALL_DIR__/config.yaml" bind = "statuses-poll-option-max-chars:__INSTALL_DIR__/config.yaml"
default = "6" default = "50"
help.en = "Default: 6. Note that going way higher than the default might break federation." help.en = "Default: 50. Note that going way higher than the default might break federation."
help.fr = "Valeur par défaut : 6. Notez que si vous dépassez la valeur par défaut, vous risquez de compromettre la fédération." help.fr = "Valeur par défaut : 50. Notez que si vous dépassez la valeur par défaut, vous risquez de compromettre la fédération."
type = "number" type = "number"
[main.statuses.statuses_poll_option_max_chars] [main.statuses.statuses_media_max_files]
ask.en = "Maximum amount of characters to permit per poll option when creating a new poll." ask.en = "Maximum amount of media files that can be attached to a new status."
ask.fr = "Nombre maximal de caractères autorisés par option de sondage lors de la création d'un nouveau sondage." ask.fr = "Quantité maximale de fichiers multimédias qui peuvent être joints à un nouveau statut."
bind = "statuses-poll-option-max-chars:__INSTALL_DIR__/config.yaml" bind = "statuses-media-max-files:__INSTALL_DIR__/config.yaml"
default = "50" default = "6"
help.en = "Default: 50. Note that going way higher than the default might break federation." help.en = "Default: 6. Note that going way higher than the default might break federation."
help.fr = "Valeur par défaut : 50. Notez que si vous dépassez la valeur par défaut, vous risquez de compromettre la fédération." help.fr = "Valeur par défaut : 6. Notez que si vous dépassez la valeur par défaut, vous risquez de compromettre la fédération."
type = "number" type = "number"
[main.statuses.statuses_media_max_files] ####################
ask.en = "Maximum amount of media files that can be attached to a new status." #### INSTANCE CONFIG
ask.fr = "Quantité maximale de fichiers multimédias qui peuvent être joints à un nouveau statut." ####################
bind = "statuses-media-max-files:__INSTALL_DIR__/config.yaml"
default = "6"
help.en = "Default: 6. Note that going way higher than the default might break federation."
help.fr = "Valeur par défaut : 6. Notez que si vous dépassez la valeur par défaut, vous risquez de compromettre la fédération."
type = "number"
####################
#### INSTANCE CONFIG
####################
[main.instance] [main.instance]
@ -226,99 +225,99 @@ name = "Instance config"
help = "Config pertaining to instance federation settings, pages to hide/expose, etc." help = "Config pertaining to instance federation settings, pages to hide/expose, etc."
[main.instance.instance_federation_mode] [main.instance.instance_federation_mode]
ask.en = "Federation mode to use for this instance" ask.en = "Federation mode to use for this instance"
ask.fr = "Le mode de fédération à utiliser pour cette instance" ask.fr = "Le mode de fédération à utiliser pour cette instance"
bind = "instance-federation-mode:__INSTALL_DIR__/config.yaml" bind = "instance-federation-mode:__INSTALL_DIR__/config.yaml"
choices = ["blocklist", "allowlist"] choices = [ "blocklist", "allowlist" ]
default = "blocklist" default = "blocklist"
help.en = """blocklist: open federation by default. Only instances that are explicitly blocked will be denied (unless they are also explicitly allowed).\ help.en = """blocklist: open federation by default. Only instances that are explicitly blocked will be denied (unless they are also explicitly allowed).\
allowlist: closed federation by default. Only instances that are explicitly allowed will be able to interact with this instance.""" allowlist: closed federation by default. Only instances that are explicitly allowed will be able to interact with this instance."""
help.fr = """blocklist : fédération ouverte par défaut. Seules les instances explicitement bloquées seront exclues (à moins qu'elles ne soient également explicitement autorisées).\ help.fr = """blocklist : fédération ouverte par défaut. Seules les instances explicitement bloquées seront exclues (à moins qu'elles ne soient également explicitement autorisées).\
allowlist : fédération fermée par défaut. Seules les instances explicitement autorisées pourront interagir avec cette instance.""" allowlist : fédération fermée par défaut. Seules les instances explicitement autorisées pourront interagir avec cette instance."""
type = "select" type = "select"
[main.instance.landing_page_user] [main.instance.landing_page_user]
ask.en = "Landing page user" ask.en = "Landing page user"
ask.fr = "Utilisateurice en tant que page d'accueil" ask.fr = "Utilisateurice en tant que page d'accueil"
bind = "landing-page-user:__INSTALL_DIR__/config.yaml" bind = "landing-page-user:__INSTALL_DIR__/config.yaml"
help.en = "The user that will be shown instead of the landing page. if no user is set, the landing page will be shown." help.en = "The user that will be shown instead of the landing page. if no user is set, the landing page will be shown."
help.fr = "L'utilisateurice qui sera affiché-e à la place de la page d'accueil. Si le champ est laissé vide, la page d'accueil normale sera affichée." help.fr = "L'utilisateurice qui sera affiché-e à la place de la page d'accueil. Si le champ est laissé vide, la page d'accueil normale sera affichée."
type = "string" type = "string"
[main.instance.instance_expose_peers] [main.instance.instance_expose_peers]
ask.en = "API: Expose peers?" ask.en = "API: Expose peers?"
ask.fr = "API : Exposer les pairs ?" ask.fr = "API : Exposer les pairs ?"
bind = "instance-expose-peers:__INSTALL_DIR__/config.yaml" bind = "instance-expose-peers:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "false" default = "false"
help.en = "Allow unauthenticated users to make queries to /api/v1/instance/peers?filter=open in order to see a list of instances that this instance 'peers' with. Even if set to 'false', then authenticated users (members of the instance) will still be able to query the endpoint." help.en = "Allow unauthenticated users to make queries to /api/v1/instance/peers?filter=open in order to see a list of instances that this instance 'peers' with. Even if set to 'false', then authenticated users (members of the instance) will still be able to query the endpoint."
help.fr = "Permet aux utilisateurs non authentifiés d'effectuer des requêtes API sur /api/v1/instance/peers?filter=open afin d'afficher la liste des instances avec lesquelles votre instance est en relation. Même s'il est défini à 'false', les utilisateurs authentifiés (membres de l'instance) seront toujours en mesure d'interroger l'API." help.fr = "Permet aux utilisateurs non authentifiés d'effectuer des requêtes API sur /api/v1/instance/peers?filter=open afin d'afficher la liste des instances avec lesquelles votre instance est en relation. Même s'il est défini à 'false', les utilisateurs authentifiés (membres de l'instance) seront toujours en mesure d'interroger l'API."
type = "select" type = "select"
[main.instance.instance_expose_suspended] [main.instance.instance_expose_suspended]
ask.en = "API: Expose suspended?" ask.en = "API: Expose suspended?"
ask.fr = "API : Exposer les instances bloquées ?" ask.fr = "API : Exposer les instances bloquées ?"
bind = "instance-expose-suspended:__INSTALL_DIR__/config.yaml" bind = "instance-expose-suspended:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "false" default = "false"
help.en = "Allow unauthenticated users to make queries to /api/v1/instance/peers?filter=suspended in order to see a list of instances that this instance blocks/suspends. This will also allow unauthenticated users to see the list through the web UI. Even if set to 'false', then authenticated users (members of the instance) will still be able to query the endpoint." help.en = "Allow unauthenticated users to make queries to /api/v1/instance/peers?filter=suspended in order to see a list of instances that this instance blocks/suspends. This will also allow unauthenticated users to see the list through the web UI. Even if set to 'false', then authenticated users (members of the instance) will still be able to query the endpoint."
help.fr = "Permet aux utilisateurs non authentifiés d'effectuer des requêtes API sur /api/v1/instance/peers?filter=suspended afin de voir la liste des instances bloquées ou suspendues par votre instance. Cela permettra également aux utilisateurs non authentifiés de consulter la liste via l'interface Web. Même s'il est défini à 'false', les utilisateurs authentifiés (membres de l'instance) seront toujours en mesure d'interroger l'API." help.fr = "Permet aux utilisateurs non authentifiés d'effectuer des requêtes API sur /api/v1/instance/peers?filter=suspended afin de voir la liste des instances bloquées ou suspendues par votre instance. Cela permettra également aux utilisateurs non authentifiés de consulter la liste via l'interface Web. Même s'il est défini à 'false', les utilisateurs authentifiés (membres de l'instance) seront toujours en mesure d'interroger l'API."
type = "select" type = "select"
[main.instance.instance_expose_suspended_web] [main.instance.instance_expose_suspended_web]
ask.en = "API: Expose suspended on Web (/about/suspended)?" ask.en = "API: Expose suspended on Web (/about/suspended)?"
ask.fr = "API : Exposer les instances bloquées sur le Web (/about/suspended) ?" ask.fr = "API : Exposer les instances bloquées sur le Web (/about/suspended) ?"
bind = "instance-expose-suspended-web:__INSTALL_DIR__/config.yaml" bind = "instance-expose-suspended-web:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "false" default = "false"
help.en = "Allow unauthenticated users to view /about/suspended, showing the HTML rendered list of instances that this instance blocks/suspends." help.en = "Allow unauthenticated users to view /about/suspended, showing the HTML rendered list of instances that this instance blocks/suspends."
help.fr = "Permet aux utilisateurs non authentifiés d'afficher /about/suspended, montrant la liste rendue en HTML des instances que cette instance bloque ou suspend." help.fr = "Permet aux utilisateurs non authentifiés d'afficher /about/suspended, montrant la liste rendue en HTML des instances que cette instance bloque ou suspend."
type = "select" type = "select"
[main.instance.instance_expose_public_timeline] [main.instance.instance_expose_public_timeline]
ask.en = "API: Expose public timeline?" ask.en = "API: Expose public timeline?"
ask.fr = "API : Exposer la timeline publique ?" ask.fr = "API : Exposer la timeline publique ?"
bind = "instance-expose-public-timeline:__INSTALL_DIR__/config.yaml" bind = "instance-expose-public-timeline:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "false" default = "false"
help.en = "Allow unauthenticated users to make queries to /api/v1/timelines/public in order to see a list of public posts on this server. Even if set to 'false', then authenticated users (members of the instance) will still be able to query the endpoint." help.en = "Allow unauthenticated users to make queries to /api/v1/timelines/public in order to see a list of public posts on this server. Even if set to 'false', then authenticated users (members of the instance) will still be able to query the endpoint."
help.fr = "Permet aux utilisateurs non authentifiés d'effectuer des requêtes sur /api/v1/timelines/public afin de voir la liste des messages publics sur ce serveur. Même s'il est défini à 'false', les utilisateurs authentifiés (membres de l'instance) seront toujours en mesure d'interroger l'API." help.fr = "Permet aux utilisateurs non authentifiés d'effectuer des requêtes sur /api/v1/timelines/public afin de voir la liste des messages publics sur ce serveur. Même s'il est défini à 'false', les utilisateurs authentifiés (membres de l'instance) seront toujours en mesure d'interroger l'API."
type = "select" type = "select"
[main.instance.instance_deliver_to_shared_inboxes] [main.instance.instance_deliver_to_shared_inboxes]
ask.en = "Deliver to shared inboxes?" ask.en = "Deliver to shared inboxes?"
ask.fr = "Envoi en boites partagées ?" ask.fr = "Envoi en boites partagées ?"
bind = "instance-deliver-to-shared-inboxes:__INSTALL_DIR__/config.yaml" bind = "instance-deliver-to-shared-inboxes:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "true" default = "true"
help.en = """This flag tweaks whether GoToSocial will deliver ActivityPub messages to the shared inbox of a recipient, if one is available, instead of delivering each message to each actor who should receive a message individually.\ help.en = """This flag tweaks whether GoToSocial will deliver ActivityPub messages to the shared inbox of a recipient, if one is available, instead of delivering each message to each actor who should receive a message individually.\
Shared inbox delivery can significantly reduce network load when delivering to multiple recipients share an inbox (eg., on large Mastodon instances).\ Shared inbox delivery can significantly reduce network load when delivering to multiple recipients share an inbox (eg., on large Mastodon instances).\
See: https://www.w3.org/TR/activitypub/#shared-inbox-delivery""" See: https://www.w3.org/TR/activitypub/#shared-inbox-delivery"""
help.fr = """Ce paramètre détermine si GoToSocial livrera les messages ActivityPub à la boîte de réception partagée d'un destinataire, si une boîte de réception est disponible, au lieu de livrer chaque message à chaque acteur qui devrait recevoir un message individuellement.\ help.fr = """Ce paramètre détermine si GoToSocial livrera les messages ActivityPub à la boîte de réception partagée d'un destinataire, si une boîte de réception est disponible, au lieu de livrer chaque message à chaque acteur qui devrait recevoir un message individuellement.\
La livraison dans la boîte de réception partagée peut réduire de manière significative la charge du réseau lorsque la livraison à plusieurs destinataires partagent une boîte de réception (par exemple, sur les grandes instances Mastodon).\ La livraison dans la boîte de réception partagée peut réduire de manière significative la charge du réseau lorsque la livraison à plusieurs destinataires partagent une boîte de réception (par exemple, sur les grandes instances Mastodon).\
Voir : https://www.w3.org/TR/activitypub/#shared-inbox-delivery""" Voir : https://www.w3.org/TR/activitypub/#shared-inbox-delivery"""
type = "select" type = "select"
[main.instance.instance_inject_mastodon_version] [main.instance.instance_inject_mastodon_version]
ask.en = "Inject Mastodon version?" ask.en = "Inject Mastodon version?"
ask.fr = "Injecter une version Mastodon ?" ask.fr = "Injecter une version Mastodon ?"
bind = "instance-inject-mastodon-version:__INSTALL_DIR__/config.yaml" bind = "instance-inject-mastodon-version:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "false" default = "false"
help.en = """This flag will inject a Mastodon version into the version field that is included in /api/v1/instance.\ help.en = """This flag will inject a Mastodon version into the version field that is included in /api/v1/instance.\
This version is often used by Mastodon clients to do API feature detection.\ This version is often used by Mastodon clients to do API feature detection.\
By injecting a Mastodon compatible version, it is possible to cajole those clients to behave correctly with GoToSocial.\ By injecting a Mastodon compatible version, it is possible to cajole those clients to behave correctly with GoToSocial.\
Default: false""" Default: false"""
help.fr = """Ce paramètre injecte une version de Mastodon dans le champ version qui est inclus dans /api/v1/instance.\ help.fr = """Ce paramètre injecte une version de Mastodon dans le champ version qui est inclus dans /api/v1/instance.\
Cette version est souvent utilisée par les clients Mastodon pour détecter les caractéristiques de l'API.\ Cette version est souvent utilisée par les clients Mastodon pour détecter les caractéristiques de l'API.\
En injectant une version compatible avec Mastodon, il est possible d'inciter ces clients à se comporter correctement avec GoToSocial. En injectant une version compatible avec Mastodon, il est possible d'inciter ces clients à se comporter correctement avec GoToSocial.
Par défautl : false""" Par défautl : false"""
type = "select" type = "select"
################ ################
#### SMTP CONFIG #### SMTP CONFIG
################ ################
[main.smtp] [main.smtp]
@ -326,66 +325,66 @@ name = "SMTP config"
help = "Config for sending emails via an smtp server." help = "Config for sending emails via an smtp server."
[main.smtp.smtp_host] [main.smtp.smtp_host]
ask.en = "SMTP Server Hostname" ask.en = "SMTP Server Hostname"
ask.fr = "Nom d'hôte du serveur SMTP" ask.fr = "Nom d'hôte du serveur SMTP"
bind = "smtp-host:__INSTALL_DIR__/config.yaml" bind = "smtp-host:__INSTALL_DIR__/config.yaml"
default = "localhost" default = "localhost"
help.en = "The hostname of the SMTP server you want to use. Examples: mail.example.org, localhost" help.en = "The hostname of the SMTP server you want to use. Examples: mail.example.org, localhost"
help.fr = "Le nom d'hôte du serveur SMTP que vous souhaitez utiliser. Exemples: mail.example.org, localhost" help.fr = "Le nom d'hôte du serveur SMTP que vous souhaitez utiliser. Exemples: mail.example.org, localhost"
type = "string" type = "string"
[main.smtp.smtp_port] [main.smtp.smtp_port]
ask.en = "SMTP Port" ask.en = "SMTP Port"
ask.fr = "Port SMTP" ask.fr = "Port SMTP"
bind = "smtp-port:__INSTALL_DIR__/config.yaml" bind = "smtp-port:__INSTALL_DIR__/config.yaml"
default = "25" default = "25"
help.en = "Port to use to connect to the SMTP server" help.en = "Port to use to connect to the SMTP server"
help.fr = "Port à utiliser pour se connecter au serveur SMTP" help.fr = "Port à utiliser pour se connecter au serveur SMTP"
type = "number" type = "number"
[main.smtp.smtp_username] [main.smtp.smtp_username]
ask.en = "SMTP Username" ask.en = "SMTP Username"
ask.fr = "Nom d'utilisateur SMTP" ask.fr = "Nom d'utilisateur SMTP"
bind = "smtp-username:__INSTALL_DIR__/config.yaml" bind = "smtp-username:__INSTALL_DIR__/config.yaml"
default = "" default = ""
help.en = "Username to use when authenticating with the SMTP server" help.en = "Username to use when authenticating with the SMTP server"
help.fr = "Nom d'utilisateur à utiliser lors de l'authentification avec le serveur SMTP" help.fr = "Nom d'utilisateur à utiliser lors de l'authentification avec le serveur SMTP"
type = "string" type = "string"
[main.smtp.smtp_password] [main.smtp.smtp_password]
ask.en = "SMTP Password" ask.en = "SMTP Password"
ask.fr = "Mot de passe SMTP" ask.fr = "Mot de passe SMTP"
bind = "smtp-password:__INSTALL_DIR__/config.yaml" bind = "smtp-password:__INSTALL_DIR__/config.yaml"
default = "" default = ""
help.en = "Password to use when authenticating with the SMTP server" help.en = "Password to use when authenticating with the SMTP server"
help.fr = "Mot de passe à utiliser lors de l'authentification avec le serveur SMTP" help.fr = "Mot de passe à utiliser lors de l'authentification avec le serveur SMTP"
type = "password" type = "password"
[main.smtp.smtp_from] [main.smtp.smtp_from]
ask.en = "SMTP From Address" ask.en = "SMTP From Address"
ask.fr = "Adresse d'expédition SMTP" ask.fr = "Adresse d'expédition SMTP"
bind = "smtp-from:__INSTALL_DIR__/config.yaml" bind = "smtp-from:__INSTALL_DIR__/config.yaml"
default = "GoToSocial@__DOMAIN__" default = "GoToSocial@__DOMAIN__"
help.en = "From address for sent emails" help.en = "From address for sent emails"
help.fr = "L'adresse utilisée pour les e-mails envoyés" help.fr = "L'adresse utilisée pour les e-mails envoyés"
type = "email" type = "email"
[main.smtp.smtp_disclose_recipients] [main.smtp.smtp_disclose_recipients]
ask.en = "SMTP Disclose Recipients" ask.en = "SMTP Disclose Recipients"
ask.fr = "SMTP Divulguer les destinataires" ask.fr = "SMTP Divulguer les destinataires"
bind = "smtp-disclose-recipients:__INSTALL_DIR__/config.yaml" bind = "smtp-disclose-recipients:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "false" default = "false"
help.en = """true: Disclose all recipients in the To field\ help.en = """true: Disclose all recipients in the To field\
false: Email will be sent to Undisclosed Recipients""" false: Email will be sent to Undisclosed Recipients"""
help.fr = """true : divulguer tous les destinataires dans le champ À\ help.fr = """true : divulguer tous les destinataires dans le champ À\
false : l'e-mail sera envoyé sans divulguer les destinataires""" false : l'e-mail sera envoyé sans divulguer les destinataires"""
type = "select" type = "select"
#################### ####################
#### CACHE SETTINGS #### CACHE SETTINGS
#################### ####################
[main.cache] [main.cache]
@ -393,22 +392,22 @@ name = "Cache settings"
help = "Settings pertaining to... the cache" help = "Settings pertaining to... the cache"
[main.cache.cache_memory_target] [main.cache.cache_memory_target]
ask.en = "Value of the cache target" ask.en = "Value of the cache target"
ask.fr = "Valeur du niveau de cache" ask.fr = "Valeur du niveau de cache"
bind = "memory-target:__INSTALL_DIR__/config.yaml" bind = "memory-target:__INSTALL_DIR__/config.yaml"
default = "100MiB" default = "100MiB"
help.en = """Sets a target limit that the application will try to keep it's caches within.\ help.en = """Sets a target limit that the application will try to keep it's caches within.\
This is based on estimated sizes of in-memory objects, and so NOT AT ALL EXACT. This is based on estimated sizes of in-memory objects, and so NOT AT ALL EXACT.
Examples: 100MiB, 200MiB, 500MiB, 1GiB; Default: 100MiB""" Examples: 100MiB, 200MiB, 500MiB, 1GiB; Default: 100MiB"""
help.fr = """Définit une limite cible que l'application essaiera de ne pas dépasser pour ses caches.\ help.fr = """Définit une limite cible que l'application essaiera de ne pas dépasser pour ses caches.\
Cette limite est basée sur des estimations de la taille des objets en mémoire et N'EST DONC PAS DU TOUT EXACTE. Cette limite est basée sur des estimations de la taille des objets en mémoire et N'EST DONC PAS DU TOUT EXACTE.
Exemples : 100MiB, 200MiB, 500MiB, 1GiB; Par défaut : 100MiB""" Exemples : 100MiB, 200MiB, 500MiB, 1GiB; Par défaut : 100MiB"""
type = "string" type = "string"
#################### ####################
#### OIDC SETTINGS #### OIDC SETTINGS
#################### ####################
[main.oidc] [main.oidc]
@ -416,75 +415,75 @@ name = "OpenID Connect settings"
help = "Settings pertaining to... OpenID Connect" help = "Settings pertaining to... OpenID Connect"
[main.oidc.oidc_enabled] [main.oidc.oidc_enabled]
ask.en = "Activate OpenID Connect?" ask.en = "Activate OpenID Connect?"
ask.fr = "Activer OpenID Connect ?" ask.fr = "Activer OpenID Connect ?"
bind = "oidc-enabled:__INSTALL_DIR__/config.yaml" bind = "oidc-enabled:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "false" default = "false"
help.en = "Enable authentication with external OIDC provider." help.en = "Enable authentication with external OIDC provider."
help.fr = "Activer l'authentification avec un fournisseur OIDC externe" help.fr = "Activer l'authentification avec un fournisseur OIDC externe"
type = "select" type = "select"
[main.oidc.oidc_idp_name] [main.oidc.oidc_idp_name]
ask.en = "Name of the OIDC IDP (identity provider)" ask.en = "Name of the OIDC IDP (identity provider)"
ask.fr = "Nom de l'OIDC IDP (identity provider)" ask.fr = "Nom de l'OIDC IDP (identity provider)"
bind = "oidc-idp-name:__INSTALL_DIR__/config.yaml" bind = "oidc-idp-name:__INSTALL_DIR__/config.yaml"
default = "" default = ""
help.en = "This will be shown to users when they log in. Examples: \"Dex\" or \"YunoHost\"" help.en = "This will be shown to users when they log in. Examples: \"Dex\" or \"YunoHost\""
help.fr = "Sera affiché aux utilisateurices lros de leur connexion. Exemples: \"Dex\" ou \"YunoHost\"" help.fr = "Sera affiché aux utilisateurices lros de leur connexion. Exemples: \"Dex\" ou \"YunoHost\""
type = "string" type = "string"
[main.oidc.oidc_skip_verification] [main.oidc.oidc_skip_verification]
ask.en = "Skip the normal verification flow of tokens returned from the OIDC provider" ask.en = "Skip the normal verification flow of tokens returned from the OIDC provider"
ask.fr = "Passer la vérification du flux des jetons renvoyés par le fournisseur OIDC" ask.fr = "Passer la vérification du flux des jetons renvoyés par le fournisseur OIDC"
bind = "oidc-skip-verification:__INSTALL_DIR__/config.yaml" bind = "oidc-skip-verification:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "false" default = "false"
help.en = "ie. don't check the expiry or signature. This should only be used in debugging or testing, never ever in a production environment as it's extremely unsafe!" help.en = "ie. don't check the expiry or signature. This should only be used in debugging or testing, never ever in a production environment as it's extremely unsafe!"
help.fr = "C'est-à-dire, ne pas vérifier l'expiration ou la signature. Cette méthode ne doit être utilisée qu'en cas de débogage ou de test, jamais dans un environnement de production, car elle est extrêmement dangereuse !" help.fr = "C'est-à-dire, ne pas vérifier l'expiration ou la signature. Cette méthode ne doit être utilisée qu'en cas de débogage ou de test, jamais dans un environnement de production, car elle est extrêmement dangereuse !"
type = "select" type = "select"
[main.oidc.oidc_issuer] [main.oidc.oidc_issuer]
ask.en = "The OIDC issuer URI." ask.en = "The OIDC issuer URI."
ask.fr = "URI du fournisseur OIDC" ask.fr = "URI du fournisseur OIDC"
bind = "oidc-issuer:__INSTALL_DIR__/config.yaml" bind = "oidc-issuer:__INSTALL_DIR__/config.yaml"
default = "" default = ""
help.en = "This is where GtS will redirect users to for login. Typically this will look like a standard web URL. Examples: \"https://auth.example.org\", \"https://example.org/auth\"" help.en = "This is where GtS will redirect users to for login. Typically this will look like a standard web URL. Examples: \"https://auth.example.org\", \"https://example.org/auth\""
help.fr = "C'est l'endroit où GtS redirigera les utilisateurs pour qu'ils se connectent. En règle générale, il s'agit d'une URL web standard. Exemples : \"https://auth.example.org\", \"https://example.org/auth\"" help.fr = "C'est l'endroit où GtS redirigera les utilisateurs pour qu'ils se connectent. En règle générale, il s'agit d'une URL web standard. Exemples : \"https://auth.example.org\", \"https://example.org/auth\""
type = "string" type = "string"
[main.oidc.oidc_client_id] [main.oidc.oidc_client_id]
ask.en = "OIDC client ID" ask.en = "OIDC client ID"
ask.fr = "Client ID du fournisseur OIDC" ask.fr = "Client ID du fournisseur OIDC"
bind = "oidc-client-id:__INSTALL_DIR__/config.yaml" bind = "oidc-client-id:__INSTALL_DIR__/config.yaml"
default = "" default = ""
help.en = "The ID for this client as registered with the OIDC provider." help.en = "The ID for this client as registered with the OIDC provider."
help.fr = "L'identifiant pour ce client tel qu'enregistré auprès du fournisseur OIDC" help.fr = "L'identifiant pour ce client tel qu'enregistré auprès du fournisseur OIDC"
type = "string" type = "string"
[main.oidc.oidc_client_secret] [main.oidc.oidc_client_secret]
ask.en = "OIDC client secret (password)" ask.en = "OIDC client secret (password)"
ask.fr = "Client secret (mot de passe) du fournisseur OIDC" ask.fr = "Client secret (mot de passe) du fournisseur OIDC"
bind = "oidc-client-secret:__INSTALL_DIR__/config.yaml" bind = "oidc-client-secret:__INSTALL_DIR__/config.yaml"
default = "" default = ""
help.en = "The secret for this client as registered with the OIDC provider." help.en = "The secret for this client as registered with the OIDC provider."
help.fr = "Le secret pour ce client tel qu'enregistré auprès du fournisseur OIDC" help.fr = "Le secret pour ce client tel qu'enregistré auprès du fournisseur OIDC"
type = "string" type = "string"
[main.oidc.oidc_link_existing] [main.oidc.oidc_link_existing]
ask.en = "Link OIDC users to existings ones (email based)?" ask.en = "Link OIDC users to existings ones (email based)?"
ask.fr = "Lier les utilisateurices OIDC à ceux existants (basé sur leur email) ?" ask.fr = "Lier les utilisateurices OIDC à ceux existants (basé sur leur email) ?"
bind = "oidc-link-existing:__INSTALL_DIR__/config.yaml" bind = "oidc-link-existing:__INSTALL_DIR__/config.yaml"
choices = ["true", "false"] choices = [ "true", "false" ]
default = "false" default = "false"
help.en = "Link OIDC authenticated users to existing ones based on their email address. This is mostly intended for migration purposes if you were running previous versions of GTS which only correlated users with their email address. Should be set to false for most usecases." help.en = "Link OIDC authenticated users to existing ones based on their email address. This is mostly intended for migration purposes if you were running previous versions of GTS which only correlated users with their email address. Should be set to false for most usecases."
help.fr = "Lier les utilisateurs authentifiés par OIDC aux utilisateurs existants sur la base de leur adresse email. Ceci est principalement destiné à des fins de migration si vous utilisiez des versions antérieures de GTS qui ne corrélaient les utilisateurs qu'avec leur adresse email. Dans la plupart des cas, cette valeur doit être fixée à false." help.fr = "Lier les utilisateurs authentifiés par OIDC aux utilisateurs existants sur la base de leur adresse email. Ceci est principalement destiné à des fins de migration si vous utilisiez des versions antérieures de GTS qui ne corrélaient les utilisateurs qu'avec leur adresse email. Dans la plupart des cas, cette valeur doit être fixée à false."
type = "select" type = "select"
#################### ####################
#### ADVANCED SETTINGS #### ADVANCED SETTINGS
#################### ####################
[main.advanced] [main.advanced]
@ -492,30 +491,30 @@ name = "Advanced settings"
help = "Settings pertaining to http timeouts, security, cookies, and more. ⚠️ ONLY ADJUST THESE SETTINGS IF YOU KNOW WHAT YOU ARE DOING! ⚠️" help = "Settings pertaining to http timeouts, security, cookies, and more. ⚠️ ONLY ADJUST THESE SETTINGS IF YOU KNOW WHAT YOU ARE DOING! ⚠️"
[main.advanced.advanced_cookies_samesite] [main.advanced.advanced_cookies_samesite]
ask.en = "Value of the SameSite attribute of cookies set by GoToSocial." ask.en = "Value of the SameSite attribute of cookies set by GoToSocial."
ask.fr = "Valeur de l'attribut SameSite des cookies définis par GoToSocial." ask.fr = "Valeur de l'attribut SameSite des cookies définis par GoToSocial."
bind = "advanced-cookies-samesite:__INSTALL_DIR__/config.yaml" bind = "advanced-cookies-samesite:__INSTALL_DIR__/config.yaml"
choices = ["lax", "strict"] choices = [ "lax", "strict" ]
default = "lax" default = "lax"
help.en = """Defaults to 'lax' to ensure that the OIDC flow does not break, which is fine in most cases.\ help.en = """Defaults to 'lax' to ensure that the OIDC flow does not break, which is fine in most cases.\
If you want to harden your instance against CSRF attacks and don't mind if some login-related things might break, you can set this to 'strict' instead.\ If you want to harden your instance against CSRF attacks and don't mind if some login-related things might break, you can set this to 'strict' instead.\
For an overview of what this does, see:\ For an overview of what this does, see:\
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite""" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite"""
help.fr = "" help.fr = ""
type = "select" type = "select"
[main.advanced.advanced_rate_limit_requests] [main.advanced.advanced_rate_limit_requests]
ask.en = "Amount of requests to permit from a single IP address within a span of 5 minutes." ask.en = "Amount of requests to permit from a single IP address within a span of 5 minutes."
ask.fr = "Nombre de requêtes autorisées à partir d'une seule adresse IP dans un délai de 5 minutes." ask.fr = "Nombre de requêtes autorisées à partir d'une seule adresse IP dans un délai de 5 minutes."
bind = "advanced-rate-limit-requests:__INSTALL_DIR__/config.yaml" bind = "advanced-rate-limit-requests:__INSTALL_DIR__/config.yaml"
default = "300" default = "300"
help.en = """Default: 300\ help.en = """Default: 300\
If this amount is exceeded, a 429 HTTP error code will be returned.\ If this amount is exceeded, a 429 HTTP error code will be returned.\
See https://docs.gotosocial.org/en/latest/api/swagger/#rate-limit.\ See https://docs.gotosocial.org/en/latest/api/swagger/#rate-limit.\
If you find yourself adjusting this limit because it's regularly being exceeded, you should first verify that your settings for `trusted-proxies` are correct.\ If you find yourself adjusting this limit because it's regularly being exceeded, you should first verify that your settings for `trusted-proxies` are correct.\
In many cases, when the rate limit is exceeded it is because your instance sees all incoming requests as coming from the *same IP address* (you can verify this by looking at the client IPs in your instance logs).\ In many cases, when the rate limit is exceeded it is because your instance sees all incoming requests as coming from the *same IP address* (you can verify this by looking at the client IPs in your instance logs).\
If this is the case, try adding that IP address to your `trusted-proxies` *BEFORE* you go adjusting this rate limit setting!\ If this is the case, try adding that IP address to your `trusted-proxies` *BEFORE* you go adjusting this rate limit setting!\
If you set this to 0 or less, rate limiting will be disabled entirely.""" If you set this to 0 or less, rate limiting will be disabled entirely."""
help.fr = "Valeur par défaut : 1000" help.fr = "Valeur par défaut : 1000"
type = "number" type = "number"

View file

@ -7,7 +7,7 @@ name = "GoToSocial"
description.en = "Fast ActivityPub social network server written in Go" description.en = "Fast ActivityPub social network server written in Go"
description.fr = "Serveur de réseau social véloce basé sur ActivityPub écrit en Go" description.fr = "Serveur de réseau social véloce basé sur ActivityPub écrit en Go"
version = "0.13.3~ynh1" version = "0.14.0~ynh1"
maintainers = ["OniriCorpe"] maintainers = ["OniriCorpe"]
@ -78,16 +78,16 @@ default = true
[resources] [resources]
[resources.sources.main] [resources.sources.main]
in_subdir = false in_subdir = false
i386.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.13.3/gotosocial_0.13.3_linux_386.tar.gz" i386.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.14.0/gotosocial_0.14.0_linux_386.tar.gz"
i386.sha256 = "406150e2ed31f9a415810e14cdd1659954076370346a071c11ede2489cd97ec6" i386.sha256 = "b716a5b4dae751e45516f5de015ac5b476dd1a1ba0ab0ce37268b3af5b89ac63"
amd64.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.13.3/gotosocial_0.13.3_linux_amd64.tar.gz" amd64.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.14.0/gotosocial_0.14.0_linux_amd64.tar.gz"
amd64.sha256 = "ad45dd23c540a9c0417e62fcde06ea9fcc1a477c98a2948f0069bb7d8029f279" amd64.sha256 = "9ecdc804f80f4c64d5b024346d25f21b9039632b2a43fe542f99d330c440da19"
armv6.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.13.3/gotosocial_0.13.3_linux_armv6.tar.gz" armv6.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.14.0/gotosocial_0.14.0_linux_armv6.tar.gz"
armv6.sha256 = "62dd6fc0cff1202b4a1196d00796d6d5e4468bf30fa145f6067e5d991443305b" armv6.sha256 = "138e25d983af84f853b0c42dd8f1934c6cb838769e22b2c385115d0f87925285"
armv7.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.13.3/gotosocial_0.13.3_linux_armv7.tar.gz" armv7.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.14.0/gotosocial_0.14.0_linux_armv7.tar.gz"
armv7.sha256 = "8550d81f412e5a9750ca0eee286c753dcb413e6714041d5fb1990aecaa0713c8" armv7.sha256 = "11e95c9a8b6b24b33ed42e114f54e57f463924e9ca0f6a05297fe9baeea61746"
arm64.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.13.3/gotosocial_0.13.3_linux_arm64.tar.gz" arm64.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.14.0/gotosocial_0.14.0_linux_arm64.tar.gz"
arm64.sha256 = "32bee12de98daac56867541197b9f170103cda04a92ca55f42b946a7b354f144" arm64.sha256 = "aaac998a543484d030d4ea46dc104f9ff3efe11252ff0e7d50a48143368ef4cd"
autoupdate.asset.i386 = "gotosocial_.*linux_386.tar.gz$" autoupdate.asset.i386 = "gotosocial_.*linux_386.tar.gz$"
autoupdate.asset.amd64 = "gotosocial_.*linux_amd64.tar.gz$" autoupdate.asset.amd64 = "gotosocial_.*linux_amd64.tar.gz$"

View file

@ -38,13 +38,13 @@ instance_expose_public_timeline="false"
instance_deliver_to_shared_inboxes="true" instance_deliver_to_shared_inboxes="true"
instance_inject_mastodon_version="false" instance_inject_mastodon_version="false"
media_image_max_size="10485760" media_image_max_size="10MiB"
media_video_max_size="41943040" media_video_max_size="40MiB"
media_description_min_chars="0" media_description_min_chars="0"
media_description_max_chars="500" media_description_max_chars="1500"
media_remote_cache_days="7" media_remote_cache_days="7"
media_emoji_local_max_size="51200" media_emoji_local_max_size="50KiB"
media_emoji_remote_max_size="102400" media_emoji_remote_max_size="100KiB"
storage_backend="local" storage_backend="local"
storage_s3_endpoint="" storage_s3_endpoint=""
@ -54,7 +54,6 @@ storage_s3_secret_key=""
storage_s3_bucket="" storage_s3_bucket=""
statuses_max_chars="5000" statuses_max_chars="5000"
statuses_cw_max_chars="100"
statuses_poll_max_options="6" statuses_poll_max_options="6"
statuses_poll_option_max_chars="50" statuses_poll_option_max_chars="50"
statuses_media_max_files="6" statuses_media_max_files="6"
@ -127,7 +126,6 @@ ynh_app_setting_set --app="$app" --key=storage_s3_secret_key --value="$storage_s
ynh_app_setting_set --app="$app" --key=storage_s3_bucket --value="$storage_s3_bucket" ynh_app_setting_set --app="$app" --key=storage_s3_bucket --value="$storage_s3_bucket"
ynh_app_setting_set --app="$app" --key=statuses_max_chars --value="$statuses_max_chars" ynh_app_setting_set --app="$app" --key=statuses_max_chars --value="$statuses_max_chars"
ynh_app_setting_set --app="$app" --key=statuses_cw_max_chars --value="$statuses_cw_max_chars"
ynh_app_setting_set --app="$app" --key=statuses_poll_max_options --value="$statuses_poll_max_options" ynh_app_setting_set --app="$app" --key=statuses_poll_max_options --value="$statuses_poll_max_options"
ynh_app_setting_set --app="$app" --key=statuses_poll_option_max_chars --value="$statuses_poll_option_max_chars" ynh_app_setting_set --app="$app" --key=statuses_poll_option_max_chars --value="$statuses_poll_option_max_chars"
ynh_app_setting_set --app="$app" --key=statuses_media_max_files --value="$statuses_media_max_files" ynh_app_setting_set --app="$app" --key=statuses_media_max_files --value="$statuses_media_max_files"
@ -171,7 +169,7 @@ ynh_setup_source --dest_dir="$install_dir"
# files in some cases. # files in some cases.
# But FOR THE LOVE OF GOD, do not allow r/x for "others" on the entire folder _ # But FOR THE LOVE OF GOD, do not allow r/x for "others" on the entire folder _
# this will be treated as a security issue. # this will be treated as a security issue.
chmod 750 "$install_dir" chmod -R 750 "$install_dir"
chmod -R o-rwx "$install_dir" chmod -R o-rwx "$install_dir"
chown -R "$app:www-data" "$install_dir" chown -R "$app:www-data" "$install_dir"

View file

@ -273,6 +273,13 @@ if [ -z "${oidc_link_existing:-}" ]; then
ynh_app_setting_set --app="$app" --key=oidc_client_secret --value="$oidc_link_existing" ynh_app_setting_set --app="$app" --key=oidc_client_secret --value="$oidc_link_existing"
fi fi
# Upgrade from <0.14.0~ynh1:
if ynh_compare_current_package_version --comparison lt --version 0.14.0~ynh1 || [ -n "${statuses_cw_max_chars:-}" ]
then
# parameter removal
ynh_app_setting_delete --app="$app" --key=statuses_cw_max_chars
fi
#================================================= #=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE # DOWNLOAD, CHECK AND UNPACK SOURCE
#================================================= #=================================================