From 442e165aa3cc5312c1cba21e43646f20094f3995 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Tue, 4 Oct 2022 22:48:48 +0000 Subject: [PATCH 01/37] Auto-update README --- README.md | 2 +- README_fr.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1ad707a..4a4e2c4 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ With GoToSocial, you can keep in touch with your friends, post, read, and share Documentation is at [docs.gotosocial.org](https://docs.gotosocial.org). -**Shipped version:** 0.5.2~ynh1 *(:warning: This is the `testing` branch. The [`master` branch](https://github.com/YunoHost-Apps/gotosocial_ynh/tree/master) used in the catalog is currently on version 0.5.1\~ynh1.)* +**Shipped version:** 0.5.2~ynh1 ## Screenshots diff --git a/README_fr.md b/README_fr.md index e6bf192..915851d 100644 --- a/README_fr.md +++ b/README_fr.md @@ -24,7 +24,7 @@ Avec GoToSocial, vous pouvez rester en contact avec vos amis, publier, lire et p Vous pouvez consulter la documentation à l'adresse : [docs.gotosocial.org](https://docs.gotosocial.org). -**Version incluse :** 0.5.2~ynh1 *(:warning: Il s'agit de la branche `testing`. La [branche `master`](https://github.com/YunoHost-Apps/gotosocial_ynh/tree/master) utilisée dans le catalogue est actuellement en 0.5.1\~ynh1.)* +**Version incluse :** 0.5.2~ynh1 ## Captures d'écran From 6dc8b3ba955fa066d1e1e722f82585923ab9b586 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Wed, 9 Nov 2022 17:01:48 +0000 Subject: [PATCH 02/37] Auto-update README --- README.md | 3 +-- README_fr.md | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1ad707a..651c574 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,7 @@ With GoToSocial, you can keep in touch with your friends, post, read, and share Documentation is at [docs.gotosocial.org](https://docs.gotosocial.org). -**Shipped version:** 0.5.2~ynh1 *(:warning: This is the `testing` branch. The [`master` branch](https://github.com/YunoHost-Apps/gotosocial_ynh/tree/master) used in the catalog is currently on version 0.5.1\~ynh1.)* - +**Shipped version:** 0.5.2~ynh1 ## Screenshots diff --git a/README_fr.md b/README_fr.md index e6bf192..4dc8dc8 100644 --- a/README_fr.md +++ b/README_fr.md @@ -24,8 +24,7 @@ Avec GoToSocial, vous pouvez rester en contact avec vos amis, publier, lire et p Vous pouvez consulter la documentation à l'adresse : [docs.gotosocial.org](https://docs.gotosocial.org). -**Version incluse :** 0.5.2~ynh1 *(:warning: Il s'agit de la branche `testing`. La [branche `master`](https://github.com/YunoHost-Apps/gotosocial_ynh/tree/master) utilisée dans le catalogue est actuellement en 0.5.1\~ynh1.)* - +**Version incluse :** 0.5.2~ynh1 ## Captures d'écran From cff1aa4332ed30f9412954ba85fb4405a4e0f5e3 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Wed, 9 Nov 2022 18:05:57 +0100 Subject: [PATCH 03/37] correction of duplicated/wrong labels --- config_panel.toml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index cb96c7a..1a5a4a6 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -127,31 +127,27 @@ Si la valeur 0 est attribuée à ce paramètre, les médias des instances distan type = "number" [gotosocial.media.media_emoji_local_max_size] -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.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." bind = "media-emoji-local-max-size:__FINALPATH__/config.yaml" default = "51200" help.en = """Default: 51200\ -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 for good interoperability.\ Raising this limit may cause issues with federation of your emojis to other instances, so beware.""" help.fr = """Valeur par défaut : 51200\ -Taille maximale en octets des emojis téléchargés vers cette instance via l'API d'administration.\ 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.""" type = "number" [gotosocial.media.media_emoji_remote_max_size] -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.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." bind = "media-emoji-remote-max-size:__FINALPATH__/config.yaml" default = "102400" help.en = """Default: 102400\ -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.\ 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\ -Taille maximale en octets des emojis à télécharger depuis d'autres instances.\ 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.""" type = "number" From 86782e6f8440d287d78d2222c535c8cf4b31adf7 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Wed, 9 Nov 2022 18:27:57 +0000 Subject: [PATCH 04/37] Auto-update README --- README.md | 3 ++- README_fr.md | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 432e82d..651c574 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ With GoToSocial, you can keep in touch with your friends, post, read, and share Documentation is at [docs.gotosocial.org](https://docs.gotosocial.org). + **Shipped version:** 0.5.2~ynh1 ## Screenshots @@ -107,7 +108,7 @@ And to promote them as an administrator of your instance: ## :red_circle: Antifeatures -* **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. ## Documentation and resources diff --git a/README_fr.md b/README_fr.md index 7bb4c99..4dc8dc8 100644 --- a/README_fr.md +++ b/README_fr.md @@ -23,7 +23,8 @@ Avec GoToSocial, vous pouvez rester en contact avec vos amis, publier, lire et p Vous pouvez consulter la documentation à l'adresse : [docs.gotosocial.org](https://docs.gotosocial.org). -**Version incluse :** 0.5.2~ynh1 + +**Version incluse :** 0.5.2~ynh1 ## Captures d'écran @@ -107,7 +108,7 @@ Et pour promouvoir un compte en tant qu'administrateur de votre instance : ## :red_circle: Fonctions indésirables -* **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. ## Documentations et ressources From bb3e4a5c3ad370655791b81d061e92297091c84b Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Wed, 9 Nov 2022 20:59:25 +0100 Subject: [PATCH 05/37] fix version number --- manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 4087301..f75ab36 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "An ActivityPub social network server, written in Golang.", "fr": "Un serveur de réseau social basé sur ActivityPub écrit en Golang." }, - "version": "0.5.2~ynh1", + "version": "0.5.2~ynh2", "url": "https://github.com/superseriousbusiness/gotosocial", "upstream": { "license": "AGPL-3.0-only", @@ -114,4 +114,4 @@ } ] } -} +} \ No newline at end of file From 72a4cc196c7f1f5043d1b938872c8609327f462b Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Wed, 9 Nov 2022 19:59:30 +0000 Subject: [PATCH 06/37] Auto-update README --- README.md | 2 +- README_fr.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 651c574..f5512b6 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ With GoToSocial, you can keep in touch with your friends, post, read, and share Documentation is at [docs.gotosocial.org](https://docs.gotosocial.org). -**Shipped version:** 0.5.2~ynh1 +**Shipped version:** 0.5.2~ynh2 ## Screenshots diff --git a/README_fr.md b/README_fr.md index 4dc8dc8..b89f90a 100644 --- a/README_fr.md +++ b/README_fr.md @@ -24,7 +24,7 @@ Avec GoToSocial, vous pouvez rester en contact avec vos amis, publier, lire et p Vous pouvez consulter la documentation à l'adresse : [docs.gotosocial.org](https://docs.gotosocial.org). -**Version incluse :** 0.5.2~ynh1 +**Version incluse :** 0.5.2~ynh2 ## Captures d'écran From 525a7ad948d69382092a03a14d46fcec4c3787c1 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Tue, 6 Dec 2022 13:59:27 +0000 Subject: [PATCH 07/37] Upgrade to v0.6.0 --- conf/arm64.src | 6 +++--- conf/armv6.src | 6 +++--- conf/armv7.src | 6 +++--- conf/i386.src | 6 +++--- conf/x86-64.src | 6 +++--- manifest.json | 4 ++-- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/conf/arm64.src b/conf/arm64.src index 7189ce0..1d614fc 100644 --- a/conf/arm64.src +++ b/conf/arm64.src @@ -1,7 +1,7 @@ -SOURCE_URL=https://github.com/superseriousbusiness/gotosocial/releases/download/v0.5.2/gotosocial_0.5.2_linux_arm64.tar.gz -SOURCE_SUM=2397164501857c900a8b446763d1a87e01ada9502fc2878f1c828e33fb35f058 +SOURCE_URL=https://github.com/superseriousbusiness/gotosocial/releases/download/v0.6.0/gotosocial_0.6.0_linux_arm64.tar.gz +SOURCE_SUM=a97b3aad81f72b990e9982686e6906599522cc8ec442d1e2d02ebba03b125168 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_EXTRACT=true SOURCE_IN_SUBDIR=false -SOURCE_FILENAME=gotosocial_0.5.2_linux_arm64.tar.gz +SOURCE_FILENAME=gotosocial_0.6.0_linux_arm64.tar.gz diff --git a/conf/armv6.src b/conf/armv6.src index ff4e4d1..03fc737 100644 --- a/conf/armv6.src +++ b/conf/armv6.src @@ -1,7 +1,7 @@ -SOURCE_URL=https://github.com/superseriousbusiness/gotosocial/releases/download/v0.5.2/gotosocial_0.5.2_linux_armv6.tar.gz -SOURCE_SUM=b34a2eec1a043c36f53aac099fff71b6ae152050b43eeb8447907bda61e44159 +SOURCE_URL=https://github.com/superseriousbusiness/gotosocial/releases/download/v0.6.0/gotosocial_0.6.0_linux_armv6.tar.gz +SOURCE_SUM=10e3d227e738fd58ee6a1dca778667dbbc63933640a168b9cc5fc97203c7f26c SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_EXTRACT=true SOURCE_IN_SUBDIR=false -SOURCE_FILENAME=gotosocial_0.5.2_linux_armv6.tar.gz +SOURCE_FILENAME=gotosocial_0.6.0_linux_armv6.tar.gz diff --git a/conf/armv7.src b/conf/armv7.src index 3ebec5a..adf827d 100644 --- a/conf/armv7.src +++ b/conf/armv7.src @@ -1,7 +1,7 @@ -SOURCE_URL=https://github.com/superseriousbusiness/gotosocial/releases/download/v0.5.2/gotosocial_0.5.2_linux_armv7.tar.gz -SOURCE_SUM=aacb6095d28ad3fb3ec34083d8a875023591777e7239a95847b04ee8bcd83d8d +SOURCE_URL=https://github.com/superseriousbusiness/gotosocial/releases/download/v0.6.0/gotosocial_0.6.0_linux_armv7.tar.gz +SOURCE_SUM=e9f1cc03b18faeae2009781c6a2f6f9138c37aa85f4b2c5954c12a4798ed6208 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_EXTRACT=true SOURCE_IN_SUBDIR=false -SOURCE_FILENAME=gotosocial_0.5.2_linux_armv7.tar.gz +SOURCE_FILENAME=gotosocial_0.6.0_linux_armv7.tar.gz diff --git a/conf/i386.src b/conf/i386.src index 954905d..a6df2ed 100644 --- a/conf/i386.src +++ b/conf/i386.src @@ -1,7 +1,7 @@ -SOURCE_URL=https://github.com/superseriousbusiness/gotosocial/releases/download/v0.5.2/gotosocial_0.5.2_linux_386.tar.gz -SOURCE_SUM=2963a38f686011f451424152b12db7dc1f0833135b8fb007c44f9f9cb4e5f823 +SOURCE_URL=https://github.com/superseriousbusiness/gotosocial/releases/download/v0.6.0/gotosocial_0.6.0_linux_386.tar.gz +SOURCE_SUM=228cf5dac5f8fda9a9711963b6834ca782ed553207e78dc6f8132f30c4aa318f SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_EXTRACT=true SOURCE_IN_SUBDIR=false -SOURCE_FILENAME=gotosocial_0.5.2_linux_386.tar.gz +SOURCE_FILENAME=gotosocial_0.6.0_linux_386.tar.gz diff --git a/conf/x86-64.src b/conf/x86-64.src index e87a1f0..7f3b436 100644 --- a/conf/x86-64.src +++ b/conf/x86-64.src @@ -1,7 +1,7 @@ -SOURCE_URL=https://github.com/superseriousbusiness/gotosocial/releases/download/v0.5.2/gotosocial_0.5.2_linux_amd64.tar.gz -SOURCE_SUM=44f93be505646e1b144896032bed37984acf1dc3a0435b3bb7bbc8354a06369b +SOURCE_URL=https://github.com/superseriousbusiness/gotosocial/releases/download/v0.6.0/gotosocial_0.6.0_linux_amd64.tar.gz +SOURCE_SUM=4d7e2a569b625e5854ff00f5c0574870a3643d74821cfe7f923e0408ff3db2fc SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_EXTRACT=true SOURCE_IN_SUBDIR=false -SOURCE_FILENAME=gotosocial_0.5.2_linux_amd64.tar.gz +SOURCE_FILENAME=gotosocial_0.6.0_linux_amd64.tar.gz diff --git a/manifest.json b/manifest.json index f75ab36..bceac62 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "An ActivityPub social network server, written in Golang.", "fr": "Un serveur de réseau social basé sur ActivityPub écrit en Golang." }, - "version": "0.5.2~ynh2", + "version": "0.6.0~ynh1", "url": "https://github.com/superseriousbusiness/gotosocial", "upstream": { "license": "AGPL-3.0-only", @@ -114,4 +114,4 @@ } ] } -} \ No newline at end of file +} From 87eca60d7948fea0747c4961a7253271c7094b31 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Tue, 6 Dec 2022 13:59:36 +0000 Subject: [PATCH 08/37] Auto-update README --- README.md | 2 +- README_fr.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f5512b6..1a515b3 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ With GoToSocial, you can keep in touch with your friends, post, read, and share Documentation is at [docs.gotosocial.org](https://docs.gotosocial.org). -**Shipped version:** 0.5.2~ynh2 +**Shipped version:** 0.6.0~ynh1 ## Screenshots diff --git a/README_fr.md b/README_fr.md index b89f90a..b5198fb 100644 --- a/README_fr.md +++ b/README_fr.md @@ -24,7 +24,7 @@ Avec GoToSocial, vous pouvez rester en contact avec vos amis, publier, lire et p Vous pouvez consulter la documentation à l'adresse : [docs.gotosocial.org](https://docs.gotosocial.org). -**Version incluse :** 0.5.2~ynh2 +**Version incluse :** 0.6.0~ynh1 ## Captures d'écran From aa42547de3a22fa100a3fae795628d0cc83adb43 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Tue, 6 Dec 2022 18:23:53 +0100 Subject: [PATCH 09/37] display_text (deprecated) -> alert --- manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index bceac62..44a2264 100644 --- a/manifest.json +++ b/manifest.json @@ -33,7 +33,7 @@ "install": [ { "name": "alpha_software", - "type": "display_text", + "type": "alert", "ask": { "en": "Please note that GoToSocial is in early development stage. It may contain changing or unstable features, bugs, and security vulnerability.", "fr": "Veuillez noter que GoToSocial est au tout début de son développment. Il pourrait contenir des fonctionnalités changeantes ou instables, des bugs, et des failles de sécurité." @@ -114,4 +114,4 @@ } ] } -} +} \ No newline at end of file From dcc1e155ac9a2313b018188a551cd9f456e69b1f Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Tue, 6 Dec 2022 18:27:33 +0100 Subject: [PATCH 10/37] =?UTF-8?q?add=20a=20=E2=9A=A0=EF=B8=8F=20to=20the?= =?UTF-8?q?=20alert=20text?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 44a2264..d74b2e1 100644 --- a/manifest.json +++ b/manifest.json @@ -35,8 +35,8 @@ "name": "alpha_software", "type": "alert", "ask": { - "en": "Please note that GoToSocial is in early development stage. It may contain changing or unstable features, bugs, and security vulnerability.", - "fr": "Veuillez noter que GoToSocial est au tout début de son développment. Il pourrait contenir des fonctionnalités changeantes ou instables, des bugs, et des failles de sécurité." + "en": "⚠️ Please note that GoToSocial is in early development stage. It may contain changing or unstable features, bugs, and security vulnerability.", + "fr": "⚠️ Veuillez noter que GoToSocial est au début de son développment. Il pourrait contenir des fonctionnalités changeantes ou instables, des bugs, et des failles de sécurité." } }, { From 6e7dac6507d17db1e93febd96d891e5acb8371c2 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Tue, 6 Dec 2022 18:41:09 +0100 Subject: [PATCH 11/37] meh, I'll continue later --- conf/config.yaml | 59 ++++++++++++++++++++---- config_panel.toml | 113 ++++++++++++++++++++++++++++++++++++---------- 2 files changed, 139 insertions(+), 33 deletions(-) diff --git a/conf/config.yaml b/conf/config.yaml index 1dbde53..85d9383 100644 --- a/conf/config.yaml +++ b/conf/config.yaml @@ -35,6 +35,11 @@ log-db-queries: false # Default: "gotosocial" application-name: "__APP__" +# String. The user that will be shown instead of the landing page. if no user is set, the landing page will be shown. +# Examples: "admin" +# Default: "" +landing-page-user: "__LANDING_PAGE_USER__" + # String. Hostname that this server will be reachable at. Defaults to localhost for local testing, # but you should *definitely* change this when running for real, or your server won't work at all. # DO NOT change this after your server has already run once, or you will break things! @@ -45,12 +50,20 @@ host: "__DOMAIN__" # String. Domain to use when federating profiles. This is useful when you want your server to be at # eg., "gts.example.org", but you want the domain on accounts to be "example.org" because it looks better # or is just shorter/easier to remember. +# # To make this setting work properly, you need to redirect requests at "example.org/.well-known/webfinger" # to "gts.example.org/.well-known/webfinger" so that GtS can handle them properly. +# # You should also redirect requests at "example.org/.well-known/nodeinfo" in the same way. # An empty string (ie., not set) means that the same value as 'host' will be used. +# # DO NOT change this after your server has already run once, or you will break things! +# # Examples: ["example.org","server.com"] +# +# Please read the appropriate section of the installation guide before you go messing around with this setting: +# https://docs.gotosocial.org/installation_guide/advanced/#can-i-host-my-instance-at-fediexampleorg-but-have-just-exampleorg-in-my-username +# # Default: "" account-domain: "" @@ -84,9 +97,10 @@ port: __PORT__ # If you're running inside a Docker container behind Traefik or Nginx, for example, add the subnet of your docker network, # or the gateway of the docker network, and/or the address of the reverse proxy (if it's not running on the host network). # Example: ["127.0.0.1/32", "172.20.0.1"] -# Default: ["127.0.0.1/32"] (localhost) +# Default: ["127.0.0.1/32", "::1"] (localhost ipv4 + ipv6) trusted-proxies: - "127.0.0.1/32" + - "::1" ############################ ##### DATABASE CONFIG ###### @@ -186,6 +200,13 @@ instance-expose-peers: __INSTANCE_EXPOSE_PEERS__ # Default: false instance-expose-suspended: __INSTANCE_EXPOSE_SUSPENDED__ +# Bool. 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. +# Options: [true, false] +# Default: false +instance-expose-public-timeline: __INSTANCE_EXPOSE_PUBLIC TIMELINE__ + # Bool. 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. @@ -298,12 +319,12 @@ media-emoji-remote-max-size: __MEDIA_EMOJI_REMOTE_MAX_SIZE__ # String. Type of storage backend to use. # Examples: ["local", "s3"] # Default: "local" (storage on local disk) -# NOTE: s3 storage is not yet supported! -storage-backend: "local" +storage-backend: "__STORAGE_BACKEND__" # String. Directory to use as a base path for storing files. # Make sure whatever user/group gotosocial is running as has permission to access # this directory, and create new subdirectories and files within it. +# Only required when running with the local storage backend. # Examples: ["/home/gotosocial/storage", "/opt/gotosocial/datastorage"] # Default: "/gotosocial/storage" storage-local-base-path: "__DATADIR__" @@ -312,20 +333,25 @@ storage-local-base-path: "__DATADIR__" # Only required when running with the s3 storage backend. # Examples: ["minio:9000", "s3.nl-ams.scw.cloud", "s3.us-west-002.backblazeb2.com"] # Default: "" -storage-s3-endpoint: "" +storage-s3-endpoint: "__STORAGE_S3_ENDPOINT__" + +# Bool. If data stored in S3 should be proxied through GoToSocial instead of redirecting to a presigned URL. +# +# Default: false +storage-s3-proxy: __STORAGE_S3_PROXY__ # String. Access key part of the S3 credentials. # Consider setting this value using environment variables to avoid leaking it via the config file # Only required when running with the s3 storage backend. # Examples: ["AKIAJSIE27KKMHXI3BJQ","miniouser"] # Default: "" -storage-s3-access-key: "" +storage-s3-access-key: "__STORAGE_S3_ACCESS_KEY__" # String. Secret key part of the S3 credentials. # Consider setting this value using environment variables to avoid leaking it via the config file # Only required when running with the s3 storage backend. # Examples: ["5bEYu26084qjSFyclM/f2pz4gviSfoOg+mFwBH39","miniopassword"] # Default: "" -storage-s3-secret-key: "" +storage-s3-secret-key: "__STORAGE_S3_SECRET_KEY__" # String. Name of the storage bucket. # # If you have already encoded your bucket name in the storage-s3-endpoint, this @@ -336,7 +362,7 @@ storage-s3-secret-key: "" # Only required when running with the s3 storage backend. # Examples: ["gts","cool-instance"] # Default: "" -storage-s3-bucket: "" +storage-s3-bucket: "__STORAGE_S3_BUCKET__" ########################### ##### STATUSES CONFIG ##### @@ -550,4 +576,21 @@ syslog-address: "localhost:514" # # Options: ["lax", "strict"] # Default: "lax" -advanced-cookies-samesite: "lax" +advanced-cookies-samesite: "__ADVANCED_COOKIES_SAMESITE__" + +# Int. Amount of requests to permit from a single IP address within a span of 5 minutes. +# If this amount is exceeded, a 429 HTTP error code will be returned. +# 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` (above) 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). 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. +# +# Examples: [1000, 500, 0] +# Default: 1000 +advanced-rate-limit-requests: __ADVANCED_RATE_LIMIT_REQUESTS__ diff --git a/config_panel.toml b/config_panel.toml index 1a5a4a6..2444254 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -1,10 +1,11 @@ version = "1.0" -[gotosocial] +[main] services = ["__APP__"] -name = "GoToSocial configuration panel" +name.en = "Main configuration" +name.fr = "Configuration principale" help = "Here you can easily configure some things about your GoToSocial instance." @@ -12,13 +13,13 @@ help = "Here you can easily configure some things about your GoToSocial instance #### ACCOUNTS CONFIG #################### -[gotosocial.accounts] +[main.accounts] name = "Accounts config" help = "Config pertaining to creation and maintenance of accounts on the server, as well as defaults for new accounts." -[gotosocial.accounts.registration_open] +[main.accounts.registration_open] ask.en = "Open registrations?" ask.fr = "Inscriptions ouvertes ?" bind = "accounts-registration-open:__FINALPATH__/config.yaml" @@ -28,7 +29,7 @@ help.en = "Do we want people to be able to just submit sign up requests, or do w 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" -[gotosocial.accounts.approval_required] +[main.accounts.approval_required] ask.en = "Approval required?" ask.fr = "Validation requise ?" bind = "accounts-approval-required:__FINALPATH__/config.yaml" @@ -38,7 +39,7 @@ help.en = "Do sign up requests require approval from an admin/moderator before a 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" -[gotosocial.accounts.reason_required] +[main.accounts.reason_required] ask.en = "Reason required?" ask.fr = "Motif requis ?" bind = "accounts-reason-required:__FINALPATH__/config.yaml" @@ -48,7 +49,7 @@ help.en = "Are sign up requests required to submit a reason for the request (eg. 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" -[gotosocial.accounts.allow_custom_css] +[main.accounts.allow_custom_css] ask.en = "Allow custom CSS?" ask.fr = "Autoriser le CSS personnalisé ?" bind = "accounts-allow-custom-css:__FINALPATH__/config.yaml" @@ -68,12 +69,12 @@ type = "select" #### MEDIA CONFIG ################# -[gotosocial.media] +[main.media] name = "Media config" help = "Config pertaining to user media uploads (videos, image, image descriptions)." -[gotosocial.media.media_image_max_size] +[main.media.media_image_max_size] ask.en = "Maximum allowed image upload size in bytes." ask.fr = "Taille maximale autorisée pour le téléchargement d'images, en octets." bind = "media-image-max-size:__FINALPATH__/config.yaml" @@ -82,7 +83,7 @@ help.en = "Default: 2097152 -- aka 2MB" help.fr = "Valeur par défaut : 2097152 (soit 2 Mo)" type = "number" -[gotosocial.media.media_video_max_size] +[main.media.media_video_max_size] 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." bind = "media-video-max-size:__FINALPATH__/config.yaml" @@ -91,7 +92,7 @@ help.en = "Default: 10485760 -- aka 10MB" help.fr = "Valeur par défaut : 10485760 (soit 10 Mo)" type = "number" -[gotosocial.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.fr = "Nombre minimum de caractères requis pour la description d'une image ou d'une vidéo." bind = "media-description-min-chars:__FINALPATH__/config.yaml" @@ -100,7 +101,7 @@ help.en = "Default: 0 (not required)" help.fr = "Valeur par défaut : 0 (non obligatoire)" type = "number" -[gotosocial.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.fr = "Nombre maximum de caractères requis pour la description d'une image ou d'une vidéo." bind = "media-description-max-chars:__FINALPATH__/config.yaml" @@ -109,7 +110,7 @@ help.en = "Default: 500" help.fr = "Valeur par défaut : 500" type = "number" -[gotosocial.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.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:__FINALPATH__/config.yaml" @@ -126,7 +127,7 @@ Si la valeur 0 est attribuée à ce paramètre, les médias des instances distan """ type = "number" -[gotosocial.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.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:__FINALPATH__/config.yaml" @@ -139,7 +140,7 @@ La valeur par défaut est la même que la limite de taille des emojis de Mastodo 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" -[gotosocial.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.fr = "Taille maximale en octets des emojis téléchargeables à partir d'autres instances." bind = "media-emoji-remote-max-size:__FINALPATH__/config.yaml" @@ -156,12 +157,12 @@ type = "number" ### STATUSES CONFIG ################### -[gotosocial.statuses] +[main.statuses] name = "Status config" help = "Config pertaining to the creation of statuses/posts, and permitted limits." -[gotosocial.statuses.statuses_max_chars] +[main.statuses.statuses_max_chars] ask.en = "Maximum amount of characters permitted for a new status." ask.fr = "Nombre maximal de caractères autorisés pour un nouveau statut." bind = "statuses-max-chars:__FINALPATH__/config.yaml" @@ -170,7 +171,7 @@ help.en = "Default: 5000. Note that going way higher than the default might brea 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" -[gotosocial.statuses.statuses_cw_max_chars] +[main.statuses.statuses_cw_max_chars] ask.en = "Maximum amount of characters allowed in the CW/subject header of a status." ask.fr = "Nombre maximum de caractères autorisés dans l'en-tête CW/sujet d'un statut." bind = "statuses-cw-max-chars:__FINALPATH__/config.yaml" @@ -179,7 +180,7 @@ help.en = "Default: 100. Note that going way higher than the default might break 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." type = "number" -[gotosocial.statuses.statuses_poll_max_options] +[main.statuses.statuses_poll_max_options] ask.en = "Maximum amount of options to permit when creating a new poll." ask.fr = "Nombre maximum d'options autorisées lors de la création d'un nouveau sondage." bind = "statuses-poll-max-options:__FINALPATH__/config.yaml" @@ -188,7 +189,7 @@ help.en = "Default: 6. Note that going way higher than the default might break f 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" -[gotosocial.statuses.statuses_poll_option_max_chars] +[main.statuses.statuses_poll_option_max_chars] ask.en = "Maximum amount of characters to permit per poll option when creating a new poll." 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-option-max-chars:__FINALPATH__/config.yaml" @@ -197,7 +198,7 @@ help.en = "Default: 50. Note that going way higher than the default might break 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" -[gotosocial.statuses.statuses_media_max_files] +[main.statuses.statuses_media_max_files] ask.en = "Maximum amount of media files that can be attached to a new status." ask.fr = "Quantité maximale de fichiers multimédias qui peuvent être joints à un nouveau statut." bind = "statuses-media-max-files:__FINALPATH__/config.yaml" @@ -210,13 +211,13 @@ type = "number" #### INSTANCE CONFIG #################### -[gotosocial.instance] +[main.instance] name = "Instance config" help = "Config pertaining to instance federation settings, pages to hide/expose, etc." -[gotosocial.instance.instance_expose_peers] +[main.instance.instance_expose_peers] ask.en = "API: Expose peers?" ask.fr = "API : Exposer les pairs ?" bind = "instance-expose-peers:__FINALPATH__/config.yaml" @@ -226,7 +227,7 @@ help.en = "Allow unauthenticated users to make queries to /api/v1/instance/peers 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" -[gotosocial.instance.instance_expose_suspended] +[main.instance.instance_expose_suspended] ask.en = "API: Expose suspended?" ask.fr = "API : Exposer les instances bloquées ?" bind = "instance-expose-suspended:__FINALPATH__/config.yaml" @@ -236,7 +237,7 @@ help.en = "Allow unauthenticated users to make queries to /api/v1/instance/peers 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" -[gotosocial.instance.instance_deliver_to_shared_inboxes] +[main.instance.instance_deliver_to_shared_inboxes] ask.en = "Deliver to shared inboxes?" ask.fr = "Envoi en boites partagées ?" bind = "instance-deliver-to-shared-inboxes:__FINALPATH__/config.yaml" @@ -249,3 +250,65 @@ help.fr = """Ce paramètre détermine si GoToSocial livrera les messages Activit 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""" type = "select" + +#################### +#### STORAGE SETTINGS +#################### + +[storage] + +name.en = "Storage configuration" +name.fr = "Configuration du stockage" + +services = ["__APP__"] + +[storage.storage] + +name = "Storage settings" + +help = "Config pertaining to storage of user-created uploads (videos, images, etc)." + +#################### +#### ADVANCED SETTINGS +#################### + +[advanced] + +name.en = "Advanced configuration" +name.fr = "Configuration avancée" + +services = ["__APP__"] + +[advanced.advanced] + +name = "Advanced settings" + +help = "Settings pertaining to http timeouts, security, cookies, and more. ⚠️ ONLY ADJUST THESE SETTINGS IF YOU KNOW WHAT YOU ARE DOING! ⚠️" + +[gotosocial.advanced.advanced-cookies-samesite] +ask.en = "Value of the SameSite attribute of cookies set by GoToSocial." +ask.fr = "" +bind = "advanced-cookies-samesite:__FINALPATH__/config.yaml" +choices = ["lax", "strict"] +default = "lax" +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.\ +For an overview of what this does, see:\ +https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite""" +help.fr = "" +type = "select" + +[gotosocial.advanced.advanced-rate-limit-requests] +ask.en = "Amount of requests to permit from a single IP address within a span of 5 minutes." +ask.fr = "" +bind = "advanced-rate-limit-requests:__FINALPATH__/config.yaml" +default = "1000" +help.en = """Default: 1000\ +If this amount is exceeded, a 429 HTTP error code will be returned.\ +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.\ +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 you set this to 0 or less, rate limiting will be disabled entirely.""" +help.fr = "Valeur par défaut : 1000" +type = "number" From f74d6ab6796615d6b6afd6fca3fa081026f069fb Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sat, 17 Dec 2022 21:41:37 +0100 Subject: [PATCH 12/37] Triggers the workflow only for the "testing" branch --- .github/workflows/updater.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/updater.yml b/.github/workflows/updater.yml index d91ef61..694e092 100644 --- a/.github/workflows/updater.yml +++ b/.github/workflows/updater.yml @@ -4,6 +4,13 @@ # It calls updater.sh, which is where you should put the app-specific update steps. name: Check for new upstream releases on: + + # Triggers the workflow on push or pull request events but only for the "testing" branch + push: + branches: [ "testing" ] + pull_request: + branches: [ "testing" ] + # Allow to manually trigger the workflow workflow_dispatch: # Run it every day at 6:00 UTC From 8c74aef55b98c9c7cc64cfc22450234527ae8f2f Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sat, 17 Dec 2022 21:56:17 +0100 Subject: [PATCH 13/37] typo --- conf/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/config.yaml b/conf/config.yaml index 85d9383..3a1c976 100644 --- a/conf/config.yaml +++ b/conf/config.yaml @@ -205,7 +205,7 @@ instance-expose-suspended: __INSTANCE_EXPOSE_SUSPENDED__ # users (members of the instance) will still be able to query the endpoint. # Options: [true, false] # Default: false -instance-expose-public-timeline: __INSTANCE_EXPOSE_PUBLIC TIMELINE__ +instance-expose-public-timeline: __INSTANCE_EXPOSE_PUBLIC_TIMELINE__ # Bool. This flag tweaks whether GoToSocial will deliver ActivityPub messages # to the shared inbox of a recipient, if one is available, instead of delivering From c28dc8e2b8f755a7915fdd02610714f9bd8ca278 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sat, 17 Dec 2022 22:03:18 +0100 Subject: [PATCH 14/37] adding new config parameters to install and upgrade script --- scripts/install | 26 ++++++++++++++++++++++++++ scripts/upgrade | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/scripts/install b/scripts/install index 7940aed..b995941 100755 --- a/scripts/install +++ b/scripts/install @@ -26,6 +26,8 @@ ynh_abort_if_errors app="$YNH_APP_INSTANCE_NAME" +landing_page_user="" + domain="$YNH_APP_ARG_DOMAIN" path_url="/" @@ -44,6 +46,7 @@ accounts_allow_custom_css="false" instance_expose_peers="false" instance_expose_suspended="false" +instance_expose_public_timeline="false" instance_deliver_to_shared_inboxes="true" media_image_max_size="10485760" @@ -54,12 +57,22 @@ media_remote_cache_days="30" media_emoji_local_max_size="51200" media_emoji_remote_max_size="102400" +storage_backend="local" +storage_s3_endpoint="" +storage_s3_proxy="false" +storage_s3_access_key="" +storage_s3_secret_key="" +storage_s3_bucket="" + statuses_max_chars="5000" statuses_cw_max_chars="100" statuses_poll_max_options="6" statuses_poll_option_max_chars="50" statuses_media_max_files="6" +advanced_cookies_samesite="lax" +advanced_rate_limit_requests="1000" + #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= @@ -78,6 +91,8 @@ ynh_script_progression --message="Storing installation settings..." --weight=1 ynh_app_setting_set --app="$app" --key=final_path --value="$final_path" +ynh_app_setting_set --app="$app" --key=landing_page_user --value="$landing_page_user" + ynh_app_setting_set --app="$app" --key=domain --value="$domain" ynh_app_setting_set --app="$app" --key=path_url --value="$path_url" @@ -94,6 +109,7 @@ ynh_app_setting_set --app="$app" --key=accounts_allow_custom_css --value="$accou ynh_app_setting_set --app="$app" --key=instance_expose_peers --value="$instance_expose_peers" ynh_app_setting_set --app="$app" --key=instance_expose_suspended --value="$instance_expose_suspended" +ynh_app_setting_set --app="$app" --key=instance_expose_public_timeline --value="$instance_expose_public_timeline" ynh_app_setting_set --app="$app" --key=instance_deliver_to_shared_inboxes --value="$instance_deliver_to_shared_inboxes" ynh_app_setting_set --app="$app" --key=media_image_max_size --value="$media_image_max_size" @@ -104,12 +120,22 @@ ynh_app_setting_set --app="$app" --key=media_remote_cache_days --value="$media_r ynh_app_setting_set --app="$app" --key=media_emoji_local_max_size --value="$media_emoji_local_max_size" ynh_app_setting_set --app="$app" --key=media_emoji_remote_max_size --value="$media_emoji_remote_max_size" +ynh_app_setting_set --app="$app" --key=storage_backend --value="$storage_backend" +ynh_app_setting_set --app="$app" --key=storage_s3_endpoint --value="$storage_s3_endpoint" +ynh_app_setting_set --app="$app" --key=storage_s3_proxy --value="$storage_s3_proxy" +ynh_app_setting_set --app="$app" --key=storage_s3_access_key --value="$storage_s3_access_key" +ynh_app_setting_set --app="$app" --key=storage_s3_secret_key --value="$storage_s3_secret_key" +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_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_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=advanced_cookies_samesite --value="$advanced_cookies_samesite" +ynh_app_setting_set --app="$app" --key=advanced_rate_limit_requests --value="$advanced_rate_limit_requests" + #================================================= # STANDARD MODIFICATIONS #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index fb4703b..3856f6d 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -18,6 +18,8 @@ app="$YNH_APP_INSTANCE_NAME" final_path=$(ynh_app_setting_get --app="$app" --key=final_path) +landing_page_user=$(ynh_app_setting_get --app="$app" --key=landing_page_user) + domain=$(ynh_app_setting_get --app="$app" --key=domain) port=$(ynh_app_setting_get --app="$app" --key=port) path_url=$(ynh_app_setting_get --app="$app" --key=path_url) @@ -32,6 +34,7 @@ datadir=$(ynh_app_setting_get --app="$app" --key=datadir) instance_expose_peers=$(ynh_app_setting_get --app="$app" --key=instance_expose_peers) instance_expose_suspended=$(ynh_app_setting_get --app="$app" --key=instance_expose_suspended) +instance_expose_public_timeline=$(ynh_app_setting_get --app="$app" --key=instance_expose_public_timeline) instance_deliver_to_shared_inboxes=$(ynh_app_setting_get --app="$app" --key=instance_deliver_to_shared_inboxes) accounts_registration_open=$(ynh_app_setting_get --app="$app" --key=accounts_registration_open) @@ -47,12 +50,22 @@ media_remote_cache_days=$(ynh_app_setting_get --app="$app" --key=media_remote_ca media_emoji_local_max_size=$(ynh_app_setting_get --app="$app" --key=media_emoji_local_max_size) media_emoji_remote_max_size=$(ynh_app_setting_get --app="$app" --key=media_emoji_remote_max_size) +storage_backend=$(ynh_app_setting_get --app="$app" --key=storage_backend) +storage_s3_endpoint=$(ynh_app_setting_get --app="$app" --key=storage_s3_endpoint) +storage_s3_proxy=$(ynh_app_setting_get --app="$app" --key=storage_s3_proxy) +storage_s3_access_key=$(ynh_app_setting_get --app="$app" --key=storage_s3_access_key) +storage_s3_secret_key=$(ynh_app_setting_get --app="$app" --key=storage_s3_secret_key) +storage_s3_bucket=$(ynh_app_setting_get --app="$app" --key=storage_s3_bucket) + statuses_max_chars=$(ynh_app_setting_get --app="$app" --key=statuses_max_chars) statuses_cw_max_chars=$(ynh_app_setting_get --app="$app" --key=statuses_cw_max_chars) statuses_poll_max_options=$(ynh_app_setting_get --app="$app" --key=statuses_poll_max_options) statuses_poll_option_max_chars=$(ynh_app_setting_get --app="$app" --key=statuses_poll_option_max_chars) statuses_media_max_files=$(ynh_app_setting_get --app="$app" --key=statuses_media_max_files) +advanced_cookies_samesite=$(ynh_app_setting_get --app="$app" --key=advanced_cookies_samesite) +advanced_rate_limit_requests=$(ynh_app_setting_get --app="$app" --key=advanced_rate_limit_requests) + #================================================= # CHECK VERSION #================================================= @@ -185,6 +198,33 @@ then ynh_app_setting_set --app="$app" --key=media_emoji_remote_max_size --value="$media_emoji_remote_max_size" fi +# Upgrade from <0.6.0~ynh1: +if ynh_compare_current_package_version --comparison lt --version 0.6.0~ynh1 || [ -z "$instance_expose_public_timeline" ] +then + # declaration of new parameters + landing_page_user="" + instance_expose_public_timeline="false" + storage_backend="local" + storage_s3_endpoint="" + storage_s3_proxy="false" + storage_s3_access_key="" + storage_s3_secret_key="" + storage_s3_bucket="" + advanced_cookies_samesite="lax" + advanced_rate_limit_requests="1000" + # registration of new parameters + ynh_app_setting_set --app="$app" --key=landing_page_user --value="$landing_page_user" + ynh_app_setting_set --app="$app" --key=instance_expose_public_timeline --value="$instance_expose_public_timeline" + ynh_app_setting_set --app="$app" --key=storage_backend --value="$storage_backend" + ynh_app_setting_set --app="$app" --key=storage_s3_endpoint --value="$storage_s3_endpoint" + ynh_app_setting_set --app="$app" --key=storage_s3_proxy --value="$storage_s3_proxy" + ynh_app_setting_set --app="$app" --key=storage_s3_access_key --value="$storage_s3_access_key" + ynh_app_setting_set --app="$app" --key=storage_s3_secret_key --value="$storage_s3_secret_key" + ynh_app_setting_set --app="$app" --key=storage_s3_bucket --value="$storage_s3_bucket" + ynh_app_setting_set --app="$app" --key=advanced_cookies_samesite --value="$advanced_cookies_samesite" + ynh_app_setting_set --app="$app" --key=advanced_rate_limit_requests --value="$advanced_rate_limit_requests" +fi + #================================================= # CREATE DEDICATED USER #================================================= From 92c62dc1d4868123242a65644da07f29265147d9 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sat, 17 Dec 2022 22:05:20 +0100 Subject: [PATCH 15/37] adding parameters to restore script --- scripts/restore | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/scripts/restore b/scripts/restore index d09ffbd..7eff40c 100755 --- a/scripts/restore +++ b/scripts/restore @@ -30,6 +30,8 @@ app="$YNH_APP_INSTANCE_NAME" final_path=$(ynh_app_setting_get --app="$app" --key=final_path) +landing_page_user=$(ynh_app_setting_get --app="$app" --key=landing_page_user) + domain=$(ynh_app_setting_get --app="$app" --key=domain) port=$(ynh_app_setting_get --app="$app" --key=port) path_url=$(ynh_app_setting_get --app="$app" --key=path_url) @@ -37,20 +39,35 @@ path_url=$(ynh_app_setting_get --app="$app" --key=path_url) client_max_body_size=$(ynh_app_setting_get --app="$app" --key=client_max_body_size) db_name=$(ynh_app_setting_get --app="$app" --key=db_name) -db_user=$db_name +db_user=$(ynh_app_setting_get --app="$app" --key=db_user) db_pwd=$(ynh_app_setting_get --app="$app" --key=db_pwd) datadir=$(ynh_app_setting_get --app="$app" --key=datadir) -registration_open=$(ynh_app_setting_get --app="$app" --key=registration_open) -registration_approval=$(ynh_app_setting_get --app="$app" --key=registration_approval) -registration_reason=$(ynh_app_setting_get --app="$app" --key=registration_reason) +instance_expose_peers=$(ynh_app_setting_get --app="$app" --key=instance_expose_peers) +instance_expose_suspended=$(ynh_app_setting_get --app="$app" --key=instance_expose_suspended) +instance_expose_public_timeline=$(ynh_app_setting_get --app="$app" --key=instance_expose_public_timeline) +instance_deliver_to_shared_inboxes=$(ynh_app_setting_get --app="$app" --key=instance_deliver_to_shared_inboxes) + +accounts_registration_open=$(ynh_app_setting_get --app="$app" --key=accounts_registration_open) +accounts_approval_required=$(ynh_app_setting_get --app="$app" --key=accounts_approval_required) +accounts_reason_required=$(ynh_app_setting_get --app="$app" --key=accounts_reason_required) +accounts_allow_custom_css=$(ynh_app_setting_get --app="$app" --key=accounts_allow_custom_css) media_image_max_size=$(ynh_app_setting_get --app="$app" --key=media_image_max_size) media_video_max_size=$(ynh_app_setting_get --app="$app" --key=media_video_max_size) media_description_min_chars=$(ynh_app_setting_get --app="$app" --key=media_description_min_chars) media_description_max_chars=$(ynh_app_setting_get --app="$app" --key=media_description_max_chars) media_remote_cache_days=$(ynh_app_setting_get --app="$app" --key=media_remote_cache_days) +media_emoji_local_max_size=$(ynh_app_setting_get --app="$app" --key=media_emoji_local_max_size) +media_emoji_remote_max_size=$(ynh_app_setting_get --app="$app" --key=media_emoji_remote_max_size) + +storage_backend=$(ynh_app_setting_get --app="$app" --key=storage_backend) +storage_s3_endpoint=$(ynh_app_setting_get --app="$app" --key=storage_s3_endpoint) +storage_s3_proxy=$(ynh_app_setting_get --app="$app" --key=storage_s3_proxy) +storage_s3_access_key=$(ynh_app_setting_get --app="$app" --key=storage_s3_access_key) +storage_s3_secret_key=$(ynh_app_setting_get --app="$app" --key=storage_s3_secret_key) +storage_s3_bucket=$(ynh_app_setting_get --app="$app" --key=storage_s3_bucket) statuses_max_chars=$(ynh_app_setting_get --app="$app" --key=statuses_max_chars) statuses_cw_max_chars=$(ynh_app_setting_get --app="$app" --key=statuses_cw_max_chars) @@ -58,6 +75,9 @@ statuses_poll_max_options=$(ynh_app_setting_get --app="$app" --key=statuses_poll statuses_poll_option_max_chars=$(ynh_app_setting_get --app="$app" --key=statuses_poll_option_max_chars) statuses_media_max_files=$(ynh_app_setting_get --app="$app" --key=statuses_media_max_files) +advanced_cookies_samesite=$(ynh_app_setting_get --app="$app" --key=advanced_cookies_samesite) +advanced_rate_limit_requests=$(ynh_app_setting_get --app="$app" --key=advanced_rate_limit_requests) + #================================================= # CHECK IF THE APP CAN BE RESTORED #================================================= From ea45b0ab6ac51c74770c1a778c1dea24a0a20586 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sat, 17 Dec 2022 22:18:11 +0100 Subject: [PATCH 16/37] run the updater only on the testing branch --- .github/workflows/updater.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/updater.yml b/.github/workflows/updater.yml index 694e092..4e6df3d 100644 --- a/.github/workflows/updater.yml +++ b/.github/workflows/updater.yml @@ -4,13 +4,9 @@ # It calls updater.sh, which is where you should put the app-specific update steps. name: Check for new upstream releases on: - - # Triggers the workflow on push or pull request events but only for the "testing" branch - push: - branches: [ "testing" ] - pull_request: - branches: [ "testing" ] - + workflow_run: + branches: + - 'testing' # Allow to manually trigger the workflow workflow_dispatch: # Run it every day at 6:00 UTC From ce14f662af9171c681afacec374ebcafe4b6bd57 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sat, 17 Dec 2022 22:20:14 +0100 Subject: [PATCH 17/37] fix: `on.workflow_run` does not reference any workflows. --- .github/workflows/updater.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/updater.yml b/.github/workflows/updater.yml index 4e6df3d..3326035 100644 --- a/.github/workflows/updater.yml +++ b/.github/workflows/updater.yml @@ -5,6 +5,7 @@ name: Check for new upstream releases on: workflow_run: + workflows: [Check for new upstream releases] branches: - 'testing' # Allow to manually trigger the workflow From cf2069dd37a30122f1c6d52dc8de2b9a85b89c30 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sat, 17 Dec 2022 22:22:03 +0100 Subject: [PATCH 18/37] meh, it doesn't work --- .github/workflows/updater.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/updater.yml b/.github/workflows/updater.yml index 3326035..d91ef61 100644 --- a/.github/workflows/updater.yml +++ b/.github/workflows/updater.yml @@ -4,10 +4,6 @@ # It calls updater.sh, which is where you should put the app-specific update steps. name: Check for new upstream releases on: - workflow_run: - workflows: [Check for new upstream releases] - branches: - - 'testing' # Allow to manually trigger the workflow workflow_dispatch: # Run it every day at 6:00 UTC From 4add79db3e6414edbaebd4c71b1954e6306be81a Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sat, 17 Dec 2022 22:41:56 +0100 Subject: [PATCH 19/37] updating the config panel --- config_panel.toml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/config_panel.toml b/config_panel.toml index 2444254..d2db44b 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -217,6 +217,15 @@ name = "Instance config" help = "Config pertaining to instance federation settings, pages to hide/expose, etc." +[main.instance.landing_page_user] +ask.en = "Landing page user" +ask.fr = "Utilisateurice en tant que page d'accueil" +bind = "landing-page-user:__FINALPATH__/config.yaml" +default = "" +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." +type = "string" + [main.instance.instance_expose_peers] ask.en = "API: Expose peers?" ask.fr = "API : Exposer les pairs ?" @@ -237,6 +246,16 @@ help.en = "Allow unauthenticated users to make queries to /api/v1/instance/peers 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" +[main.instance.instance_expose_public_timeline] +ask.en = "API: Expose public timeline?" +ask.fr = "API : Exposer la timeline publique ?" +bind = "instance-expose-public-timeline:__FINALPATH__/config.yaml" +choices = ["true", "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.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" + [main.instance.instance_deliver_to_shared_inboxes] ask.en = "Deliver to shared inboxes?" ask.fr = "Envoi en boites partagées ?" From c02a5e65d553f8bc25e125871fe268711c17070e Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sat, 17 Dec 2022 22:56:57 +0100 Subject: [PATCH 20/37] finished updating the config panel (to be tested) --- config_panel.toml | 62 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index d2db44b..ef777f2 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -287,6 +287,64 @@ name = "Storage settings" help = "Config pertaining to storage of user-created uploads (videos, images, etc)." +[storage.storage.storage-backend] +ask.en = "Type of storage backend to use." +ask.fr = "Le type de stockage à utiliser" +bind = "storage-backend:__FINALPATH__/config.yaml" +choices = ["local", "s3"] +default = "local" +help.en = "Default: local" +help.fr = "Par défaut : local" +type = "select" + +[storage.storage.S3] + +name = "S3 storage settings" + +help = "Config pertaining to S3 compatible service. Use ONLY if you KNOW what you're doing! Only required when running with the s3 storage backend." + +[storage.storage.S3.storage-s3-endpoint] +ask.en = "API endpoint of the S3 compatible service." +ask.fr = "Point de terminaison de l'API du service compatible S3." +bind = "storage-s3-endpoint:__FINALPATH__/config.yaml" +default = "" +type = "string" + +[storage.storage.S3.storage-s3-proxy] +ask.en = "If data stored in S3 should be proxied through GoToSocial instead of redirecting to a presigned URL." +ask.fr = "Si les données stockées dans S3 doivent être proxifiées par GoToSocial au lieu de rediriger vers une URL présignée." +bind = "storage-s3-proxy:__FINALPATH__/config.yaml" +choices = ["true", "false"] +default = "false" +help.en = "Default: false" +help.fr = "Par défaut : false" +type = "select" + +[storage.storage.S3.storage-s3-access-key] +ask.en = "Access key part of the S3 credentials." +ask.fr = "Clé d'accès du service compatible S3." +bind = "storage-s3-access-key:__FINALPATH__/config.yaml" +default = "" +type = "string" + +[storage.storage.S3.storage-s3-secret-key] +ask.en = "Secret key part of the S3 credentials." +ask.fr = "Clé secrète du service compatible S3." +bind = "storage-s3-secret-key:__FINALPATH__/config.yaml" +default = "" +type = "string" + +[storage.storage.S3.storage-s3-bucket] +ask.en = "Name of the storage bucket." +ask.fr = "Nom du bucket de stockage." +bind = "storage-s3-bucket:__FINALPATH__/config.yaml" +default = "" +help.en = """If you have already encoded your bucket name in the storage-s3-endpoint, this value will be used as a directory containing your data.\ +The bucket must exist prior to starting GoToSocial""" +help.fr = """Si vous avez déjà encodé votre nom de bucket dans le point de terminaison storage-s3, cette valeur sera utilisée comme répertoire contenant vos données.\ +Le bucket doit exister avant le démarrage de GoToSocial.""" +type = "string" + #################### #### ADVANCED SETTINGS #################### @@ -304,7 +362,7 @@ name = "Advanced settings" help = "Settings pertaining to http timeouts, security, cookies, and more. ⚠️ ONLY ADJUST THESE SETTINGS IF YOU KNOW WHAT YOU ARE DOING! ⚠️" -[gotosocial.advanced.advanced-cookies-samesite] +[advanced.advanced-cookies-samesite] ask.en = "Value of the SameSite attribute of cookies set by GoToSocial." ask.fr = "" bind = "advanced-cookies-samesite:__FINALPATH__/config.yaml" @@ -317,7 +375,7 @@ https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite""" help.fr = "" type = "select" -[gotosocial.advanced.advanced-rate-limit-requests] +[advanced.advanced-rate-limit-requests] ask.en = "Amount of requests to permit from a single IP address within a span of 5 minutes." ask.fr = "" bind = "advanced-rate-limit-requests:__FINALPATH__/config.yaml" From 294700eb1cbcb349daa6a033d8bc72c39024827e Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 01:49:09 +0100 Subject: [PATCH 21/37] redact S3 password --- config_panel.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/config_panel.toml b/config_panel.toml index ef777f2..78faf3a 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -332,6 +332,7 @@ ask.en = "Secret key part of the S3 credentials." ask.fr = "Clé secrète du service compatible S3." bind = "storage-s3-secret-key:__FINALPATH__/config.yaml" default = "" +redact = true type = "string" [storage.storage.S3.storage-s3-bucket] From aed4731f5006aa43c11094f892dbaacd235ed999 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 01:52:43 +0100 Subject: [PATCH 22/37] add ommited "ask.fr" --- config_panel.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index 78faf3a..b2dff6e 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -365,7 +365,7 @@ help = "Settings pertaining to http timeouts, security, cookies, and more. ⚠ [advanced.advanced-cookies-samesite] ask.en = "Value of the SameSite attribute of cookies set by GoToSocial." -ask.fr = "" +ask.fr = "Valeur de l'attribut SameSite des cookies définis par GoToSocial." bind = "advanced-cookies-samesite:__FINALPATH__/config.yaml" choices = ["lax", "strict"] default = "lax" @@ -378,7 +378,7 @@ type = "select" [advanced.advanced-rate-limit-requests] ask.en = "Amount of requests to permit from a single IP address within a span of 5 minutes." -ask.fr = "" +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:__FINALPATH__/config.yaml" default = "1000" help.en = """Default: 1000\ From 0a3021f2330ebab94c12e12afc85bf05a04fc938 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 01:55:58 +0100 Subject: [PATCH 23/37] trying to debug the config panel (error 500) --- config_panel.toml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index b2dff6e..f330b07 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -221,7 +221,6 @@ help = "Config pertaining to instance federation settings, pages to hide/expose, ask.en = "Landing page user" ask.fr = "Utilisateurice en tant que page d'accueil" bind = "landing-page-user:__FINALPATH__/config.yaml" -default = "" 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." type = "string" @@ -307,7 +306,6 @@ help = "Config pertaining to S3 compatible service. Use ONLY if you KNOW what yo ask.en = "API endpoint of the S3 compatible service." ask.fr = "Point de terminaison de l'API du service compatible S3." bind = "storage-s3-endpoint:__FINALPATH__/config.yaml" -default = "" type = "string" [storage.storage.S3.storage-s3-proxy] @@ -324,14 +322,12 @@ type = "select" ask.en = "Access key part of the S3 credentials." ask.fr = "Clé d'accès du service compatible S3." bind = "storage-s3-access-key:__FINALPATH__/config.yaml" -default = "" type = "string" [storage.storage.S3.storage-s3-secret-key] ask.en = "Secret key part of the S3 credentials." ask.fr = "Clé secrète du service compatible S3." bind = "storage-s3-secret-key:__FINALPATH__/config.yaml" -default = "" redact = true type = "string" @@ -339,7 +335,6 @@ type = "string" ask.en = "Name of the storage bucket." ask.fr = "Nom du bucket de stockage." bind = "storage-s3-bucket:__FINALPATH__/config.yaml" -default = "" help.en = """If you have already encoded your bucket name in the storage-s3-endpoint, this value will be used as a directory containing your data.\ The bucket must exist prior to starting GoToSocial""" help.fr = """Si vous avez déjà encodé votre nom de bucket dans le point de terminaison storage-s3, cette valeur sera utilisée comme répertoire contenant vos données.\ From 4f91f11b911311ce8a67a3cdbeeb840d341a72bf Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 01:59:40 +0100 Subject: [PATCH 24/37] typo --- config_panel.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index f330b07..7100153 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -296,19 +296,19 @@ help.en = "Default: local" help.fr = "Par défaut : local" type = "select" -[storage.storage.S3] +[storage.storage.s3] name = "S3 storage settings" help = "Config pertaining to S3 compatible service. Use ONLY if you KNOW what you're doing! Only required when running with the s3 storage backend." -[storage.storage.S3.storage-s3-endpoint] +[storage.storage.s3.storage-s3-endpoint] ask.en = "API endpoint of the S3 compatible service." ask.fr = "Point de terminaison de l'API du service compatible S3." bind = "storage-s3-endpoint:__FINALPATH__/config.yaml" type = "string" -[storage.storage.S3.storage-s3-proxy] +[storage.storage.s3.storage-s3-proxy] ask.en = "If data stored in S3 should be proxied through GoToSocial instead of redirecting to a presigned URL." ask.fr = "Si les données stockées dans S3 doivent être proxifiées par GoToSocial au lieu de rediriger vers une URL présignée." bind = "storage-s3-proxy:__FINALPATH__/config.yaml" @@ -318,20 +318,20 @@ help.en = "Default: false" help.fr = "Par défaut : false" type = "select" -[storage.storage.S3.storage-s3-access-key] +[storage.storage.s3.storage-s3-access-key] ask.en = "Access key part of the S3 credentials." ask.fr = "Clé d'accès du service compatible S3." bind = "storage-s3-access-key:__FINALPATH__/config.yaml" type = "string" -[storage.storage.S3.storage-s3-secret-key] +[storage.storage.s3.storage-s3-secret-key] ask.en = "Secret key part of the S3 credentials." ask.fr = "Clé secrète du service compatible S3." bind = "storage-s3-secret-key:__FINALPATH__/config.yaml" redact = true type = "string" -[storage.storage.S3.storage-s3-bucket] +[storage.storage.s3.storage-s3-bucket] ask.en = "Name of the storage bucket." ask.fr = "Nom du bucket de stockage." bind = "storage-s3-bucket:__FINALPATH__/config.yaml" From 1a8c129bbb77a9631b7abdb087e25fd76815e9d9 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 02:08:19 +0100 Subject: [PATCH 25/37] change type to password for the storage-s3-access-key --- config_panel.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index 7100153..46e838b 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -328,8 +328,7 @@ type = "string" ask.en = "Secret key part of the S3 credentials." ask.fr = "Clé secrète du service compatible S3." bind = "storage-s3-secret-key:__FINALPATH__/config.yaml" -redact = true -type = "string" +type = "password" [storage.storage.s3.storage-s3-bucket] ask.en = "Name of the storage bucket." From 53c7c36d08fc466008f24defaad07ef744d09759 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 02:18:24 +0100 Subject: [PATCH 26/37] testing another approach for the s3 config --- config_panel.toml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index 46e838b..e53c2b8 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -296,19 +296,20 @@ help.en = "Default: local" help.fr = "Par défaut : local" type = "select" -[storage.storage.s3] +[storage.s3] name = "S3 storage settings" -help = "Config pertaining to S3 compatible service. Use ONLY if you KNOW what you're doing! Only required when running with the s3 storage backend." +help = "Use ONLY if you KNOW what you're doing! Only required when running with the s3 storage backend." +visible = "storage-backend == 's3'" -[storage.storage.s3.storage-s3-endpoint] +[storage.s3.storage-s3-endpoint] ask.en = "API endpoint of the S3 compatible service." ask.fr = "Point de terminaison de l'API du service compatible S3." bind = "storage-s3-endpoint:__FINALPATH__/config.yaml" type = "string" -[storage.storage.s3.storage-s3-proxy] +[storage.s3.storage-s3-proxy] ask.en = "If data stored in S3 should be proxied through GoToSocial instead of redirecting to a presigned URL." ask.fr = "Si les données stockées dans S3 doivent être proxifiées par GoToSocial au lieu de rediriger vers une URL présignée." bind = "storage-s3-proxy:__FINALPATH__/config.yaml" @@ -318,19 +319,19 @@ help.en = "Default: false" help.fr = "Par défaut : false" type = "select" -[storage.storage.s3.storage-s3-access-key] +[storage.s3.storage-s3-access-key] ask.en = "Access key part of the S3 credentials." ask.fr = "Clé d'accès du service compatible S3." bind = "storage-s3-access-key:__FINALPATH__/config.yaml" type = "string" -[storage.storage.s3.storage-s3-secret-key] +[storage.s3.storage-s3-secret-key] ask.en = "Secret key part of the S3 credentials." ask.fr = "Clé secrète du service compatible S3." bind = "storage-s3-secret-key:__FINALPATH__/config.yaml" type = "password" -[storage.storage.s3.storage-s3-bucket] +[storage.s3.storage-s3-bucket] ask.en = "Name of the storage bucket." ask.fr = "Nom du bucket de stockage." bind = "storage-s3-bucket:__FINALPATH__/config.yaml" From e1f8fdd4111d71108202a7a06d7e30738d5c88f7 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 02:27:01 +0100 Subject: [PATCH 27/37] maybe am dum dum --- config_panel.toml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index e53c2b8..48b8c74 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -286,7 +286,7 @@ name = "Storage settings" help = "Config pertaining to storage of user-created uploads (videos, images, etc)." -[storage.storage.storage-backend] +[storage.storage.storage_backend] ask.en = "Type of storage backend to use." ask.fr = "Le type de stockage à utiliser" bind = "storage-backend:__FINALPATH__/config.yaml" @@ -303,13 +303,13 @@ name = "S3 storage settings" help = "Use ONLY if you KNOW what you're doing! Only required when running with the s3 storage backend." visible = "storage-backend == 's3'" -[storage.s3.storage-s3-endpoint] +[storage.s3.storage_s3_endpoint] ask.en = "API endpoint of the S3 compatible service." ask.fr = "Point de terminaison de l'API du service compatible S3." bind = "storage-s3-endpoint:__FINALPATH__/config.yaml" type = "string" -[storage.s3.storage-s3-proxy] +[storage.s3.storage_s3_proxy] ask.en = "If data stored in S3 should be proxied through GoToSocial instead of redirecting to a presigned URL." ask.fr = "Si les données stockées dans S3 doivent être proxifiées par GoToSocial au lieu de rediriger vers une URL présignée." bind = "storage-s3-proxy:__FINALPATH__/config.yaml" @@ -319,19 +319,19 @@ help.en = "Default: false" help.fr = "Par défaut : false" type = "select" -[storage.s3.storage-s3-access-key] +[storage.s3.storage_s3_access_key] ask.en = "Access key part of the S3 credentials." ask.fr = "Clé d'accès du service compatible S3." bind = "storage-s3-access-key:__FINALPATH__/config.yaml" type = "string" -[storage.s3.storage-s3-secret-key] +[storage.s3.storage_s3_secret_key] ask.en = "Secret key part of the S3 credentials." ask.fr = "Clé secrète du service compatible S3." bind = "storage-s3-secret-key:__FINALPATH__/config.yaml" type = "password" -[storage.s3.storage-s3-bucket] +[storage.s3.storage_s3_bucket] ask.en = "Name of the storage bucket." ask.fr = "Nom du bucket de stockage." bind = "storage-s3-bucket:__FINALPATH__/config.yaml" @@ -358,7 +358,7 @@ name = "Advanced settings" help = "Settings pertaining to http timeouts, security, cookies, and more. ⚠️ ONLY ADJUST THESE SETTINGS IF YOU KNOW WHAT YOU ARE DOING! ⚠️" -[advanced.advanced-cookies-samesite] +[advanced.advanced_cookies_samesite] 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." bind = "advanced-cookies-samesite:__FINALPATH__/config.yaml" @@ -371,7 +371,7 @@ https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite""" help.fr = "" type = "select" -[advanced.advanced-rate-limit-requests] +[advanced.advanced_rate_limit_requests] 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." bind = "advanced-rate-limit-requests:__FINALPATH__/config.yaml" From 1156374da78326a671d5fe71d48b7ff6a8f61e74 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 02:35:14 +0100 Subject: [PATCH 28/37] fix the advanced.advanced section --- config_panel.toml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index 48b8c74..8ead02f 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -296,6 +296,10 @@ help.en = "Default: local" help.fr = "Par défaut : local" type = "select" +#################### +#### S3 SETTINGS +#################### + [storage.s3] name = "S3 storage settings" @@ -358,7 +362,7 @@ name = "Advanced settings" help = "Settings pertaining to http timeouts, security, cookies, and more. ⚠️ ONLY ADJUST THESE SETTINGS IF YOU KNOW WHAT YOU ARE DOING! ⚠️" -[advanced.advanced_cookies_samesite] +[advanced.advanced.advanced_cookies_samesite] 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." bind = "advanced-cookies-samesite:__FINALPATH__/config.yaml" @@ -371,7 +375,7 @@ https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite""" help.fr = "" type = "select" -[advanced.advanced_rate_limit_requests] +[advanced.advanced.advanced_rate_limit_requests] 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." bind = "advanced-rate-limit-requests:__FINALPATH__/config.yaml" From ea0841245a2e64a6c2b8077feb642fa5596dec90 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 02:41:17 +0100 Subject: [PATCH 29/37] change categorization for storage part --- config_panel.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index 8ead02f..e6eb1cf 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -300,20 +300,20 @@ type = "select" #### S3 SETTINGS #################### -[storage.s3] +[storage.storage.s3] name = "S3 storage settings" help = "Use ONLY if you KNOW what you're doing! Only required when running with the s3 storage backend." visible = "storage-backend == 's3'" -[storage.s3.storage_s3_endpoint] +[storage.storage.s3.storage_s3_endpoint] ask.en = "API endpoint of the S3 compatible service." ask.fr = "Point de terminaison de l'API du service compatible S3." bind = "storage-s3-endpoint:__FINALPATH__/config.yaml" type = "string" -[storage.s3.storage_s3_proxy] +[storage.storage.s3.storage_s3_proxy] ask.en = "If data stored in S3 should be proxied through GoToSocial instead of redirecting to a presigned URL." ask.fr = "Si les données stockées dans S3 doivent être proxifiées par GoToSocial au lieu de rediriger vers une URL présignée." bind = "storage-s3-proxy:__FINALPATH__/config.yaml" @@ -323,19 +323,19 @@ help.en = "Default: false" help.fr = "Par défaut : false" type = "select" -[storage.s3.storage_s3_access_key] +[storage.storage.s3.storage_s3_access_key] ask.en = "Access key part of the S3 credentials." ask.fr = "Clé d'accès du service compatible S3." bind = "storage-s3-access-key:__FINALPATH__/config.yaml" type = "string" -[storage.s3.storage_s3_secret_key] +[storage.storage.s3.storage_s3_secret_key] ask.en = "Secret key part of the S3 credentials." ask.fr = "Clé secrète du service compatible S3." bind = "storage-s3-secret-key:__FINALPATH__/config.yaml" type = "password" -[storage.s3.storage_s3_bucket] +[storage.storage.s3.storage_s3_bucket] ask.en = "Name of the storage bucket." ask.fr = "Nom du bucket de stockage." bind = "storage-s3-bucket:__FINALPATH__/config.yaml" From bba883baf5a511b2ea7c760c3fdfb233028dddda Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 02:41:48 +0100 Subject: [PATCH 30/37] fix var --- config_panel.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config_panel.toml b/config_panel.toml index e6eb1cf..0adca07 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -305,7 +305,7 @@ type = "select" name = "S3 storage settings" help = "Use ONLY if you KNOW what you're doing! Only required when running with the s3 storage backend." -visible = "storage-backend == 's3'" +visible = "storage_backend == 's3'" [storage.storage.s3.storage_s3_endpoint] ask.en = "API endpoint of the S3 compatible service." From 66eafa7ca2bda014bc5b7c9f96107c2af9e934d0 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 02:50:48 +0100 Subject: [PATCH 31/37] testing another choice method --- config_panel.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config_panel.toml b/config_panel.toml index 0adca07..b63b7b0 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -290,7 +290,8 @@ help = "Config pertaining to storage of user-created uploads (videos, images, et ask.en = "Type of storage backend to use." ask.fr = "Le type de stockage à utiliser" bind = "storage-backend:__FINALPATH__/config.yaml" -choices = ["local", "s3"] +choices.local = "local" +choices.s3 = "s3" default = "local" help.en = "Default: local" help.fr = "Par défaut : local" From ebf566cdd10c10690d0db0ab5bc8e91281d97189 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Sun, 18 Dec 2022 02:53:07 +0100 Subject: [PATCH 32/37] test without the visible thing --- config_panel.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config_panel.toml b/config_panel.toml index b63b7b0..f699f99 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -306,7 +306,7 @@ type = "select" name = "S3 storage settings" help = "Use ONLY if you KNOW what you're doing! Only required when running with the s3 storage backend." -visible = "storage_backend == 's3'" +# visible = "storage_backend == 's3'" [storage.storage.s3.storage_s3_endpoint] ask.en = "API endpoint of the S3 compatible service." From 774f0705c330c74131d26c2b99ee09f99f58fabd Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Tue, 20 Dec 2022 20:33:55 +0100 Subject: [PATCH 33/37] removed s3 settings and revert categorizing --- config_panel.toml | 73 ++++------------------------------------------- 1 file changed, 5 insertions(+), 68 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index f699f99..2f71f08 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -273,20 +273,13 @@ type = "select" #### STORAGE SETTINGS #################### -[storage] - -name.en = "Storage configuration" -name.fr = "Configuration du stockage" - -services = ["__APP__"] - -[storage.storage] +[main.storage] name = "Storage settings" help = "Config pertaining to storage of user-created uploads (videos, images, etc)." -[storage.storage.storage_backend] +[main.storage.storage_backend] ask.en = "Type of storage backend to use." ask.fr = "Le type de stockage à utiliser" bind = "storage-backend:__FINALPATH__/config.yaml" @@ -297,73 +290,17 @@ help.en = "Default: local" help.fr = "Par défaut : local" type = "select" -#################### -#### S3 SETTINGS -#################### - -[storage.storage.s3] - -name = "S3 storage settings" - -help = "Use ONLY if you KNOW what you're doing! Only required when running with the s3 storage backend." -# visible = "storage_backend == 's3'" - -[storage.storage.s3.storage_s3_endpoint] -ask.en = "API endpoint of the S3 compatible service." -ask.fr = "Point de terminaison de l'API du service compatible S3." -bind = "storage-s3-endpoint:__FINALPATH__/config.yaml" -type = "string" - -[storage.storage.s3.storage_s3_proxy] -ask.en = "If data stored in S3 should be proxied through GoToSocial instead of redirecting to a presigned URL." -ask.fr = "Si les données stockées dans S3 doivent être proxifiées par GoToSocial au lieu de rediriger vers une URL présignée." -bind = "storage-s3-proxy:__FINALPATH__/config.yaml" -choices = ["true", "false"] -default = "false" -help.en = "Default: false" -help.fr = "Par défaut : false" -type = "select" - -[storage.storage.s3.storage_s3_access_key] -ask.en = "Access key part of the S3 credentials." -ask.fr = "Clé d'accès du service compatible S3." -bind = "storage-s3-access-key:__FINALPATH__/config.yaml" -type = "string" - -[storage.storage.s3.storage_s3_secret_key] -ask.en = "Secret key part of the S3 credentials." -ask.fr = "Clé secrète du service compatible S3." -bind = "storage-s3-secret-key:__FINALPATH__/config.yaml" -type = "password" - -[storage.storage.s3.storage_s3_bucket] -ask.en = "Name of the storage bucket." -ask.fr = "Nom du bucket de stockage." -bind = "storage-s3-bucket:__FINALPATH__/config.yaml" -help.en = """If you have already encoded your bucket name in the storage-s3-endpoint, this value will be used as a directory containing your data.\ -The bucket must exist prior to starting GoToSocial""" -help.fr = """Si vous avez déjà encodé votre nom de bucket dans le point de terminaison storage-s3, cette valeur sera utilisée comme répertoire contenant vos données.\ -Le bucket doit exister avant le démarrage de GoToSocial.""" -type = "string" - #################### #### ADVANCED SETTINGS #################### -[advanced] - -name.en = "Advanced configuration" -name.fr = "Configuration avancée" - -services = ["__APP__"] - -[advanced.advanced] +[main.advanced] name = "Advanced settings" help = "Settings pertaining to http timeouts, security, cookies, and more. ⚠️ ONLY ADJUST THESE SETTINGS IF YOU KNOW WHAT YOU ARE DOING! ⚠️" -[advanced.advanced.advanced_cookies_samesite] +[main.advanced.advanced_cookies_samesite] 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." bind = "advanced-cookies-samesite:__FINALPATH__/config.yaml" @@ -376,7 +313,7 @@ https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite""" help.fr = "" type = "select" -[advanced.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.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:__FINALPATH__/config.yaml" From 073b291dede95d8fb4723714230b9d1d0d170ca5 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Tue, 20 Dec 2022 20:35:03 +0100 Subject: [PATCH 34/37] remove storage setting --- config_panel.toml | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index 2f71f08..681af8a 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -269,27 +269,6 @@ La livraison dans la boîte de réception partagée peut réduire de manière si Voir : https://www.w3.org/TR/activitypub/#shared-inbox-delivery""" type = "select" -#################### -#### STORAGE SETTINGS -#################### - -[main.storage] - -name = "Storage settings" - -help = "Config pertaining to storage of user-created uploads (videos, images, etc)." - -[main.storage.storage_backend] -ask.en = "Type of storage backend to use." -ask.fr = "Le type de stockage à utiliser" -bind = "storage-backend:__FINALPATH__/config.yaml" -choices.local = "local" -choices.s3 = "s3" -default = "local" -help.en = "Default: local" -help.fr = "Par défaut : local" -type = "select" - #################### #### ADVANCED SETTINGS #################### From 094b63826d52f9caa9eb5b710320669d928783d9 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Tue, 20 Dec 2022 21:28:00 +0100 Subject: [PATCH 35/37] =?UTF-8?q?update=20check=C3=A7process?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- check_process | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/check_process b/check_process index d4a8bf6..29bba52 100644 --- a/check_process +++ b/check_process @@ -18,9 +18,9 @@ setup_private=0 setup_public=1 upgrade=1 - upgrade=1 from_commit=460048e78df8a195b1eca5994a4699079954b312 upgrade=1 from_commit=29c7d0df5dd6e3d90070f242b74cce980676cd72 upgrade=1 from_commit=5c1c052995a10d899abcb0e4d4fa1c1dc35f84a5 + upgrade=1 from_commit=1b6c1c62e022f04afa02bf128f419e77a72bf1e9 backup_restore=1 multi_instance=1 port_already_use=1 @@ -29,9 +29,9 @@ Email= Notification=none ;;; Upgrade options - ; commit=460048e78df8a195b1eca5994a4699079954b312 - name=0.2.1~ynh3 ; commit=29c7d0df5dd6e3d90070f242b74cce980676cd72 name=0.3.6~ynh1 ; commit=5c1c052995a10d899abcb0e4d4fa1c1dc35f84a5 name=v0.4.0~ynh1 + ; commit=1b6c1c62e022f04afa02bf128f419e77a72bf1e9 + name=0.5.2~ynh2 \ No newline at end of file From 83b5b87a7e3e62574f0de54f97d1c13c9984f682 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Mon, 16 Jan 2023 21:42:09 +0000 Subject: [PATCH 36/37] Auto-update README --- README_fr.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README_fr.md b/README_fr.md index b5198fb..7cdbd08 100644 --- a/README_fr.md +++ b/README_fr.md @@ -5,15 +5,15 @@ It shall NOT be edited by hand. # GoToSocial pour YunoHost -[![Niveau d'intégration](https://dash.yunohost.org/integration/gotosocial.svg)](https://dash.yunohost.org/appci/app/gotosocial) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/gotosocial.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/gotosocial.maintain.svg) +[![Niveau d’intégration](https://dash.yunohost.org/integration/gotosocial.svg)](https://dash.yunohost.org/appci/app/gotosocial) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/gotosocial.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/gotosocial.maintain.svg) [![Installer GoToSocial avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=gotosocial) *[Read this readme in english.](./README.md)* -> *Ce package vous permet d'installer GoToSocial rapidement et simplement sur un serveur YunoHost. -Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.* +> *Ce package vous permet d’installer GoToSocial rapidement et simplement sur un serveur YunoHost. +Si vous n’avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l’installer et en profiter.* -## Vue d'ensemble +## Vue d’ensemble Un serveur de réseau social basé sur [ActivityPub](https://activitypub.rocks/) écrit en Golang. @@ -26,9 +26,9 @@ Vous pouvez consulter la documentation à l'adresse : [docs.gotosocial.org](http **Version incluse :** 0.6.0~ynh1 -## Captures d'écran +## Captures d’écran -![Capture d'écran de GoToSocial](./doc/screenshots/screenshot.jpg) +![Capture d’écran de GoToSocial](./doc/screenshots/screenshot.jpg) ## Avertissements / informations importantes @@ -112,10 +112,10 @@ Et pour promouvoir un compte en tant qu'administrateur de votre instance : ## Documentations et ressources -* Site officiel de l'app : +* Site officiel de l’app : * Documentation officielle utilisateur : -* Documentation officielle de l'admin : -* Dépôt de code officiel de l'app : +* Documentation officielle de l’admin : +* Dépôt de code officiel de l’app : * Documentation YunoHost pour cette app : * Signaler un bug : @@ -131,4 +131,4 @@ ou sudo yunohost app upgrade gotosocial -u https://github.com/YunoHost-Apps/gotosocial_ynh/tree/testing --debug ``` -**Plus d'infos sur le packaging d'applications :** +**Plus d’infos sur le packaging d’applications :** \ No newline at end of file From 1e405731073e350df211b8c3c6368c1ac0b9e5a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Mon, 16 Jan 2023 22:42:51 +0100 Subject: [PATCH 37/37] homogenize the description --- manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index d74b2e1..983e871 100644 --- a/manifest.json +++ b/manifest.json @@ -3,8 +3,8 @@ "id": "gotosocial", "packaging_format": 1, "description": { - "en": "An ActivityPub social network server, written in Golang.", - "fr": "Un serveur de réseau social basé sur ActivityPub écrit en Golang." + "en": "ActivityPub social network server", + "fr": "Serveur de réseau social basé sur ActivityPub" }, "version": "0.6.0~ynh1", "url": "https://github.com/superseriousbusiness/gotosocial",