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 #111 from YunoHost-Apps/testing

Testing v0.12.1~ynh2 OIDC
This commit is contained in:
OniriCorpe 2023-11-05 06:17:19 +01:00 committed by GitHub
commit accafdfd63
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 346 additions and 311 deletions

View file

@ -20,10 +20,11 @@ GoToSocial is a fast [ActivityPub](https://activitypub.rocks/) social network se
With GoToSocial, you can keep in touch with your friends, post, read, and share images and articles. All without being tracked or advertised to!
Documentation is at [docs.gotosocial.org](https://docs.gotosocial.org).
The official documentation is at [docs.gotosocial.org](https://docs.gotosocial.org).
The documentation for this YunoHost package [can be read here](./doc/DOCS.md) and the admin is **strongly encouraged to read it**!
**Shipped version:** 0.12.1~ynh1
**Shipped version:** 0.12.1~ynh2
## Screenshots
@ -37,85 +38,12 @@ You can read [the roadmap](https://github.com/superseriousbusiness/gotosocial/bl
GoToSocial require a **dedicated domain (or subdomain) name**, for example: gotosocial.example.com
This package is not-working with the SSO (single-sign on) or LDAP integration.
However, it can be configured to use the OpenID Connect protocol and Dex (a program that links LDAP and OpenID Connect) to enable connection with your YunoHost users, see [the relevant part of the doc](./doc/DOCS.md#openid-connect).
You will have a **separate account from the rest of your Yunohost server**, potentially with a different username and password.
GoToSocial **does not provide a user interface**.
You will need to use a Mastodon-compatible client such as [Tusky](https://tusky.app/) on Android, [Feditext](https://fedi.software/@Feditext) for iOS or an instance of [Semaphore](https://semaphore.social/) on the Web.
### Things to know
#### Administration
You can login with your admin user (the one automatically created at the instalaltion) to your-instance.com/**admin** to administrate your GoToSocial instance.
[The source code of this administration panel](https://github.com/superseriousbusiness/gotosocial-admin) is available on github.
[The GTS admin panel documentation](https://docs.gotosocial.org/en/latest/admin/settings/).
In this administration interface, you can configure the following things:
* The name of your instance and its description
* Your contact e-mail address
* The referring user
* Blocked domains (not to federate with) or allowed domains (for the allowlist federation mode)
* Custom emojis
* Moderation reports
#### Configuration
You can configure your instance using the config panel integrated in Yunohost, you will find it in the web admin interface of your Yunohost by following these steps:
`Applications > GoToSocial > Config Panel`
In this control panel you can configure the following things (non-exhaustive list):
* Account configuration :
* Are registrations open?
* Manual validation of registrations?
* Required reason for registration?
* Allow user custom CSS?
* Custom CSS max length?
* Media configuration
* Maximum image size
* Maximum video size
* Minimum number of characters for media descriptions
* Maximum number of characters for media descriptions
* Number of days media can be cached
* Post configuration
* Maximum number of characters for a new post
* Maximum number of characters in a Content Warning / subject of a new post
* Maximum number of options for a poll
* Maximum number of characters for a poll option
* Maximum number of media that can be added to a post
* Instance config
* Federation mode to use for this instance (blocklist / allowlist)
* Landing page user
* Exposed API options
* SMTP config
* Cache settings
* Advanced settings
* SameSite attribute
* Rate limit
Note: **Do NOT edit** the `config.yaml` file by hand. Always use this config panel instead. Otherwise your changes will be deleted at each update!
#### Command line (CLI)
To use the GoToSocial command line, you first need to place yourself in the folder of your instance:
`cd /var/www/gotosocial/` or `cd /var/www/gotosocial__x/` (where `x` is the installation number of your instance, in the case of multi-installation).
Feel free to refer to the [GoToSocial command line documentation](https://docs.gotosocial.org/en/latest/admin/cli/).
#### User creation
To create a new user, proceed as follows:
```bash
./gotosocial --config-path config.yaml admin account create --username some_username --email someuser@example.com --password 'SomeLongAndComplicatedPassword'
```
And to promote them as an administrator of your instance:
```bash
./gotosocial --config-path config.yaml admin account promote --username some_username
```
## :red_circle: Antifeatures
- **Alpha software**: Early development stage. May contain changing or unstable features, bugs, and security vulnerability.

View file

@ -20,10 +20,11 @@ Un serveur de réseau social véloce basé sur [ActivityPub](https://activitypub
Avec GoToSocial, vous pouvez rester en contact avec vos amis, publier, lire et partager des images et des articles. Tout cela sans être pisté ni subir de publicité !
Vous pouvez consulter la documentation à l'adresse : [docs.gotosocial.org](https://docs.gotosocial.org).
Vous pouvez consulter la documentation officielle à l'adresse : [docs.gotosocial.org](https://docs.gotosocial.org).
La documentation de ce paquet YunoHost [est lisible ici](./doc/DOCS_fr.md) et l'admin est **vivement encouragé-e à la lire** !
**Version incluse :** 0.12.1~ynh1
**Version incluse :** 0.12.1~ynh2
## Captures décran
@ -37,85 +38,12 @@ Vous pouvez consulter [la roadmap](https://github.com/superseriousbusiness/gotos
GoToSocial nécessite un **nom de domaine (ou sous domaine) dédié**, par exemple : gotosocial.example.com
Ce paquet ne fonctionne pas avec l'authentification unique (SSO) ou l'intégration LDAP.
Cependant, il peut être configuré pour utiliser le protocole OpenID Connect et Dex (un programme qui fait la liaison LDAP et OpenID Connect) pour permettra la connection avec vos utilisateurs YunoHost, pour cela, voir [la partie de la doc idoine](./doc/DOCS_fr.md#openid-connect).
Vous aurez un **compte séparé du reste de votre serveur Yunohost**, avec potentiellement un nom d'utilisateur et un mot de passe différent.
GoToSocial **ne dispose pas d'une interface utilisateur-ice**.
Vous devrez utiliser un client compatible avec Mastodon comme [Tusky](https://tusky.app/) sur Android, [Feditext](https://fedi.software/@Feditext) sur iOS ou une instance de [Semaphore](https://semaphore.social/) en Web.
### Choses à savoir
#### Administration
Vous pouvez vous connecter avec votre utilisateur admin (celui créé automatiquement à l'installation) à l'interface d'administration à l'adresse votre-instance.com/**admin** pour administrer votre insance GoToSocial.
[Le code source de cette interface d'administration](https://github.com/superseriousbusiness/gotosocial-admin) est consultable sur github.
[La documentation de l'interface d'administration de GoToSocial](https://docs.gotosocial.org/en/latest/admin/settings/).
Dans cette interface d'administration, vous pouvez paramétrer les choses suivantes :
* Le nom de votre instance et sa description
* Votre adresse e-mail de contact
* L'utilisateurice référent-e
* Les domaines bloqués (pour ne pas fédérer avec) ou autorisés (pour le mode de fédération par liste blanche)
* Les émojis personnalisés
* Les signalements pour la modération
#### Configuration
Vous pouvez configurer votre instance en utilisant le panneau de configuration intégré à YuNohost, vous le trouverez dans l'interface d'administration Web de votre Yunohost en suivant ces étapes :
`Applications > GoToSocial > Panneau de configuration`
Dans ce panneau de configuration, vous pouvez configurer les choses suivantes (liste non exhaustive) :
* Configuration des comptes :
* Ouverture des inscriptions ?
* Validation manuelle des inscriptions ?
* Motif d'inscription requis ?
* Autoriser le CSS personnalisé des utilisateurices ?
* Longueur max du CSS personnalisé ?
* Configuration des médias
* Taille maximale des images
* Taille maximale des vidéos
* Nombre minimum de caractères pour les descriptions des médias
* Nombre maximum de caractères pour les descriptions des médias
* Nombre de jour de mise en cache des médias
* Configuration des posts
* Nombre maximum de caractères pour un nouveau post
* Nombre maximum de caractères dans un Content Warning / sujet d'un nouveau post
* Nombre maximum d'options pour un sondage
* Nombre maximum de caractères pour une option d'un sondage
* Nombre maximum de médias pouvant etre ajoutés à un post
* Configuration de l'instance
* Le mode de fédération à utiliser pour cette instance (blocklist / allowlist)
* Utilisateurice en tant que page d'accueil
* Options d'exposition de l'API
* Configuration SMTP
* Configuration du cache
* Configuration avancée
* SameSite attribute
* Rate limit
N.B. : **N'éditez PAS** le fichier `config.yaml` à la main. Utilisez toujours ce panneau de configuration à la place. Sinon vos modifications seront effacées à chaque mise à jour !
#### Ligne de commande
Pour utiliser la ligne de commande de GoToSocial, vous devez d'abord vous placer dans le répertoire de votre instance :
`cd /var/www/gotosocial/` ou `cd /var/www/gotosocial__x/` (où `x` est le numéro de votre installation, dans la cas d'une installation de multiples instances).
N'hésitez pas à vous référer à la [documentation de la ligne de commande de GoToSocial](https://docs.gotosocial.org/en/latest/admin/cli/).
#### Création de compte utilisateur
Pour créer un nouveau compte utilisateur, procédez comme suit :
```bash
./gotosocial --config-path config.yaml admin account create --username nom_dutilisateur --email utilisateur@example.com --password 'UnMotDePasseTrèsComplexe'
```
Et pour promouvoir un compte en tant qu'administrateur de votre instance :
```bash
./gotosocial --config-path config.yaml admin account promote --username nom_dutilisateur
```
## :red_circle: Fonctions indésirables
- **Alpha software**: Early development stage. May contain changing or unstable features, bugs, and security vulnerability.

View file

@ -611,36 +611,36 @@ tls-certificate-key: ""
# internal oauth flow will be used, where users sign in to GtS with username/password.
# Options: [true, false]
# Default: false
oidc-enabled: false
oidc-enabled: __OIDC_ENABLED__
# String. Name of the oidc idp (identity provider). This will be shown to users when
# they log in.
# Examples: ["Google", "Dex", "Auth0"]
# Default: ""
oidc-idp-name: ""
oidc-idp-name: "__OIDC_IDP_NAME__"
# Bool. Skip the normal verification flow of tokens returned from the OIDC provider, 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!
# Options: [true, false]
# Default: false
oidc-skip-verification: false
oidc-skip-verification: __OIDC_SKIP_VERIFICATION__
# String. The OIDC issuer URI. 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"]
# Default: ""
oidc-issuer: ""
oidc-issuer: "__OIDC_ISSUER__"
# String. The ID for this client as registered with the OIDC provider.
# Examples: ["some-client-id", "fda3772a-ad35-41c9-9a59-f1943ad18f54"]
# Default: ""
oidc-client-id: ""
oidc-client-id: "__OIDC_CLIENT_ID__"
# String. The secret for this client as registered with the OIDC provider.
# Examples: ["super-secret-business", "79379cf5-8057-426d-bb83-af504d98a7b0"]
# Default: ""
oidc-client-secret: ""
oidc-client-secret: "__OIDC_CLIENT_SECRET__"
# Array of string. Scopes to request from the OIDC provider. The returned values will be used to
# populate users created in GtS as a result of the authentication flow. 'openid' and 'email' are required.
@ -659,7 +659,7 @@ oidc-scopes:
# which only correlated users with their email address. Should be set to false for most usecases.
# Options: [true, false]
# Default: false
oidc-link-existing: false
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-admin-groups, then this user will be granted admin rights on the GtS instance

View file

@ -406,6 +406,82 @@ Cette limite est basée sur des estimations de la taille des objets en mémoire
Exemples : 100MiB, 200MiB, 500MiB, 1GiB; Par défaut : 100MiB"""
type = "string"
####################
#### OIDC SETTINGS
####################
[main.oidc]
name = "OpenID Connect settings"
help = "Settings pertaining to... OpenID Connect"
[main.oidc.oidc_enabled]
ask.en = "Activate OpenID Connect?"
ask.fr = "Activer OpenID Connect ?"
bind = "oidc-enabled:__FINALPATH__/config.yaml"
choices = ["true", "false"]
default = "false"
help.en = "Enable authentication with external OIDC provider."
help.fr = "Activer l'authentification avec un fournisseur OIDC externe"
type = "select"
[main.oidc.oidc_idp_name]
ask.en = "Name of the OIDC IDP (identity provider)"
ask.fr = "Nom de l'OIDC IDP (identity provider)"
bind = "oidc-idp-name:__FINALPATH__/config.yaml"
default = ""
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\""
type = "string"
[main.oidc.oidc_skip_verification]
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"
bind = "oidc-skip-verification:__FINALPATH__/config.yaml"
choices = ["true", "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.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"
[main.oidc.oidc_issuer]
ask.en = "The OIDC issuer URI."
ask.fr = "URI du fournisseur OIDC"
bind = "oidc-issuer:__FINALPATH__/config.yaml"
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.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"
[main.oidc.oidc_client_id]
ask.en = "OIDC client ID"
ask.fr = "Client ID du fournisseur OIDC"
bind = "oidc-client-id:__FINALPATH__/config.yaml"
default = ""
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"
type = "string"
[main.oidc.oidc_client_secret]
ask.en = "OIDC client secret (password)"
ask.fr = "Client secret (mot de passe) du fournisseur OIDC"
bind = "oidc-client-secret:__FINALPATH__/config.yaml"
default = ""
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"
type = "string"
[main.oidc.oidc_link_existing]
ask.en = "Link OIDC users to existings ones (email based)?"
ask.fr = "Lier les utilisateurices OIDC à ceux existants (basé sur leur email) ?"
bind = "oidc-link-existing:__FINALPATH__/config.yaml"
choices = ["true", "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.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"
####################
#### ADVANCED SETTINGS
####################

View file

@ -2,4 +2,5 @@ GoToSocial is a fast [ActivityPub](https://activitypub.rocks/) social network se
With GoToSocial, you can keep in touch with your friends, post, read, and share images and articles. All without being tracked or advertised to!
Documentation is at [docs.gotosocial.org](https://docs.gotosocial.org).
The official documentation is at [docs.gotosocial.org](https://docs.gotosocial.org).
The documentation for this YunoHost package [can be read here](./doc/DOCS.md) and the admin is **strongly encouraged to read it**!

View file

@ -2,4 +2,5 @@ Un serveur de réseau social véloce basé sur [ActivityPub](https://activitypub
Avec GoToSocial, vous pouvez rester en contact avec vos amis, publier, lire et partager des images et des articles. Tout cela sans être pisté ni subir de publicité !
Vous pouvez consulter la documentation à l'adresse : [docs.gotosocial.org](https://docs.gotosocial.org).
Vous pouvez consulter la documentation officielle à l'adresse : [docs.gotosocial.org](https://docs.gotosocial.org).
La documentation de ce paquet YunoHost [est lisible ici](./doc/DOCS_fr.md) et l'admin est **vivement encouragé-e à la lire** !

View file

@ -4,81 +4,8 @@ You can read [the roadmap](https://github.com/superseriousbusiness/gotosocial/bl
GoToSocial require a **dedicated domain (or subdomain) name**, for example: gotosocial.example.com
This package is not-working with the SSO (single-sign on) or LDAP integration.
However, it can be configured to use the OpenID Connect protocol and Dex (a program that links LDAP and OpenID Connect) to enable connection with your YunoHost users, see [the relevant part of the doc](./doc/DOCS.md#openid-connect).
You will have a **separate account from the rest of your Yunohost server**, potentially with a different username and password.
GoToSocial **does not provide a user interface**.
You will need to use a Mastodon-compatible client such as [Tusky](https://tusky.app/) on Android, [Feditext](https://fedi.software/@Feditext) for iOS or an instance of [Semaphore](https://semaphore.social/) on the Web.
### Things to know
#### Administration
You can login with your admin user (the one automatically created at the instalaltion) to your-instance.com/**admin** to administrate your GoToSocial instance.
[The source code of this administration panel](https://github.com/superseriousbusiness/gotosocial-admin) is available on github.
[The GTS admin panel documentation](https://docs.gotosocial.org/en/latest/admin/settings/).
In this administration interface, you can configure the following things:
* The name of your instance and its description
* Your contact e-mail address
* The referring user
* Blocked domains (not to federate with) or allowed domains (for the allowlist federation mode)
* Custom emojis
* Moderation reports
#### Configuration
You can configure your instance using the config panel integrated in Yunohost, you will find it in the web admin interface of your Yunohost by following these steps:
`Applications > GoToSocial > Config Panel`
In this control panel you can configure the following things (non-exhaustive list):
* Account configuration :
* Are registrations open?
* Manual validation of registrations?
* Required reason for registration?
* Allow user custom CSS?
* Custom CSS max length?
* Media configuration
* Maximum image size
* Maximum video size
* Minimum number of characters for media descriptions
* Maximum number of characters for media descriptions
* Number of days media can be cached
* Post configuration
* Maximum number of characters for a new post
* Maximum number of characters in a Content Warning / subject of a new post
* Maximum number of options for a poll
* Maximum number of characters for a poll option
* Maximum number of media that can be added to a post
* Instance config
* Federation mode to use for this instance (blocklist / allowlist)
* Landing page user
* Exposed API options
* SMTP config
* Cache settings
* Advanced settings
* SameSite attribute
* Rate limit
Note: **Do NOT edit** the `config.yaml` file by hand. Always use this config panel instead. Otherwise your changes will be deleted at each update!
#### Command line (CLI)
To use the GoToSocial command line, you first need to place yourself in the folder of your instance:
`cd /var/www/gotosocial/` or `cd /var/www/gotosocial__x/` (where `x` is the installation number of your instance, in the case of multi-installation).
Feel free to refer to the [GoToSocial command line documentation](https://docs.gotosocial.org/en/latest/admin/cli/).
#### User creation
To create a new user, proceed as follows:
```bash
./gotosocial --config-path config.yaml admin account create --username some_username --email someuser@example.com --password 'SomeLongAndComplicatedPassword'
```
And to promote them as an administrator of your instance:
```bash
./gotosocial --config-path config.yaml admin account promote --username some_username
```

View file

@ -4,81 +4,8 @@ Vous pouvez consulter [la roadmap](https://github.com/superseriousbusiness/gotos
GoToSocial nécessite un **nom de domaine (ou sous domaine) dédié**, par exemple : gotosocial.example.com
Ce paquet ne fonctionne pas avec l'authentification unique (SSO) ou l'intégration LDAP.
Cependant, il peut être configuré pour utiliser le protocole OpenID Connect et Dex (un programme qui fait la liaison LDAP et OpenID Connect) pour permettra la connection avec vos utilisateurs YunoHost, pour cela, voir [la partie de la doc idoine](./doc/DOCS_fr.md#openid-connect).
Vous aurez un **compte séparé du reste de votre serveur Yunohost**, avec potentiellement un nom d'utilisateur et un mot de passe différent.
GoToSocial **ne dispose pas d'une interface utilisateur-ice**.
Vous devrez utiliser un client compatible avec Mastodon comme [Tusky](https://tusky.app/) sur Android, [Feditext](https://fedi.software/@Feditext) sur iOS ou une instance de [Semaphore](https://semaphore.social/) en Web.
### Choses à savoir
#### Administration
Vous pouvez vous connecter avec votre utilisateur admin (celui créé automatiquement à l'installation) à l'interface d'administration à l'adresse votre-instance.com/**admin** pour administrer votre insance GoToSocial.
[Le code source de cette interface d'administration](https://github.com/superseriousbusiness/gotosocial-admin) est consultable sur github.
[La documentation de l'interface d'administration de GoToSocial](https://docs.gotosocial.org/en/latest/admin/settings/).
Dans cette interface d'administration, vous pouvez paramétrer les choses suivantes :
* Le nom de votre instance et sa description
* Votre adresse e-mail de contact
* L'utilisateurice référent-e
* Les domaines bloqués (pour ne pas fédérer avec) ou autorisés (pour le mode de fédération par liste blanche)
* Les émojis personnalisés
* Les signalements pour la modération
#### Configuration
Vous pouvez configurer votre instance en utilisant le panneau de configuration intégré à YuNohost, vous le trouverez dans l'interface d'administration Web de votre Yunohost en suivant ces étapes :
`Applications > GoToSocial > Panneau de configuration`
Dans ce panneau de configuration, vous pouvez configurer les choses suivantes (liste non exhaustive) :
* Configuration des comptes :
* Ouverture des inscriptions ?
* Validation manuelle des inscriptions ?
* Motif d'inscription requis ?
* Autoriser le CSS personnalisé des utilisateurices ?
* Longueur max du CSS personnalisé ?
* Configuration des médias
* Taille maximale des images
* Taille maximale des vidéos
* Nombre minimum de caractères pour les descriptions des médias
* Nombre maximum de caractères pour les descriptions des médias
* Nombre de jour de mise en cache des médias
* Configuration des posts
* Nombre maximum de caractères pour un nouveau post
* Nombre maximum de caractères dans un Content Warning / sujet d'un nouveau post
* Nombre maximum d'options pour un sondage
* Nombre maximum de caractères pour une option d'un sondage
* Nombre maximum de médias pouvant etre ajoutés à un post
* Configuration de l'instance
* Le mode de fédération à utiliser pour cette instance (blocklist / allowlist)
* Utilisateurice en tant que page d'accueil
* Options d'exposition de l'API
* Configuration SMTP
* Configuration du cache
* Configuration avancée
* SameSite attribute
* Rate limit
N.B. : **N'éditez PAS** le fichier `config.yaml` à la main. Utilisez toujours ce panneau de configuration à la place. Sinon vos modifications seront effacées à chaque mise à jour !
#### Ligne de commande
Pour utiliser la ligne de commande de GoToSocial, vous devez d'abord vous placer dans le répertoire de votre instance :
`cd /var/www/gotosocial/` ou `cd /var/www/gotosocial__x/` (où `x` est le numéro de votre installation, dans la cas d'une installation de multiples instances).
N'hésitez pas à vous référer à la [documentation de la ligne de commande de GoToSocial](https://docs.gotosocial.org/en/latest/admin/cli/).
#### Création de compte utilisateur
Pour créer un nouveau compte utilisateur, procédez comme suit :
```bash
./gotosocial --config-path config.yaml admin account create --username nom_dutilisateur --email utilisateur@example.com --password 'UnMotDePasseTrèsComplexe'
```
Et pour promouvoir un compte en tant qu'administrateur de votre instance :
```bash
./gotosocial --config-path config.yaml admin account promote --username nom_dutilisateur
```

97
doc/DOCS.md Normal file
View file

@ -0,0 +1,97 @@
# Docs of the GoToSocial's package for YunoHost
*[Lire cette documentation en français.](./DOCS_fr.md)*
## Administration
You can login with your admin user (the one automatically created during installation) to your-instance.com/**admin** to administrate your GoToSocial instance.
[The source code of this administration panel](https://github.com/superseriousbusiness/gotosocial-admin) is available on github.
[The GTS admin panel documentation](https://docs.gotosocial.org/en/latest/admin/settings/).
In this administration interface, you can configure the following things:
* The name of your instance and its description
* Your contact e-mail address
* The referring user
* Blocked domains (not to federate with) or allowed domains (for the allowlist federation mode)
* Custom emojis
* Moderation reports
## Configuration
You can configure your instance using the config panel integrated in Yunohost, you will find it in the web admin interface of your Yunohost by following these steps:
`Applications > GoToSocial > Config Panel`
In this control panel you can configure the following things (non-exhaustive list):
* Account configuration :
* Are registrations open?
* Manual validation of registrations?
* Required reason for registration?
* Allow user custom CSS?
* Custom CSS max length?
* Media configuration
* Maximum image size
* Maximum video size
* Minimum number of characters for media descriptions
* Maximum number of characters for media descriptions
* Number of days media can be cached
* Post configuration
* Maximum number of characters for a new post
* Maximum number of characters in a Content Warning / subject of a new post
* Maximum number of options for a poll
* Maximum number of characters for a poll option
* Maximum number of media that can be added to a post
* Instance config
* Federation mode to use for this instance (blocklist / allowlist)
* Landing page user
* Exposed API options
* SMTP config
* Cache settings
* Advanced settings
* SameSite attribute
* Rate limit
Note: **Do NOT edit** the `config.yaml` file by hand. Always use this config panel instead. Otherwise your changes will be deleted at each update!
## Command line (CLI)
To use the GoToSocial command line, you first need to place yourself in the folder of your instance:
`cd /var/www/gotosocial/` or `cd /var/www/gotosocial__x/` (where `x` is the installation number of your instance, in the case of multi-installation).
Feel free to refer to the [GoToSocial command line documentation](https://docs.gotosocial.org/en/latest/admin/cli/).
## User creation
To create a new user, proceed as follows:
```bash
./gotosocial --config-path config.yaml admin account create --username some_username --email someuser@example.com --password 'SomeLongAndComplicatedPassword'
```
And to promote them as an administrator of your instance:
```bash
./gotosocial --config-path config.yaml admin account promote --username some_username
```
## OpenID Connect
You can read the [official GoToSocial documentation about OpenID Connect](https://docs.gotosocial.org/en/latest/configuration/oidc/) in support if you want.
To use OpenID Connect, the YunoHost admin must:
* Install the [Dex](https://apps.yunohost.org/app/dex) package (note that your server must compile it, which can be resource-intensive)
* Configure Dex properly during the installation (all entered information will be used in the next step, so keep it in a safe place)
* Domain: as you wish (may be a sub-domain of your GTS instance, like "dex.gts.example.com")
* Path: only `/` if you wish to install it on a sub-domain of your instance, otherwise as you wish
* Name of the app: "GoToSocial", "GTS-test", "YNH-GoToSocial" or anything that makes sense to you and does not contain a space (it will be used as "client ID" in the next step)
* OIDC secret: a long and random password of at least 30 characters
* Callback URI: `gts.example.com/auth/callback` by replacing the `gts.example.com` by the domain name of your GTS instance (without the `https://`!)
* Configure GTS using the config panel's OIDC form: `Applications > GoToSocial > Config Panel > OpenID Connect settings`
* Activate OpenID Connect: `true`
* Name of the OIDC IDP: "Dex" or any other name that makes sense
* Skip the normal verification flow of tokens returned: keep on `false` ( **never** change to `true` unless you know what you're doing!)
* OIDC issuer URI: the domain name to which you assigned Dex in the previous step, with the final slash `/`, e.g. `https://dex.gts.example.com/` (this is **NOT** the URL of your GTS instance)
* OIDC client ID: the app name defined at the Dex installation step (e.g. "GoToSocial", "GTS-test", "YNH-GoToSocial")
* OIDC client secret: the long password randomly generated during Dex's installation step
* Save, wait until GTS reboots and test!

97
doc/DOCS_fr.md Normal file
View file

@ -0,0 +1,97 @@
# Documentation du package GoToSocial pour YunoHost
*[Read this docs in english.](./DOCS.md)*
## Administration
Vous pouvez vous connecter avec votre utilisateur admin (celui créé automatiquement lors de l'installation) à l'interface d'administration à l'adresse votre-instance.com/**admin** pour administrer votre insance GoToSocial.
[Le code source de cette interface d'administration](https://github.com/superseriousbusiness/gotosocial-admin) est consultable sur github.
[La documentation de l'interface d'administration de GoToSocial](https://docs.gotosocial.org/en/latest/admin/settings/).
Dans cette interface d'administration, vous pouvez paramétrer les choses suivantes :
* Le nom de votre instance et sa description
* Votre adresse e-mail de contact
* L'utilisateurice référent-e
* Les domaines bloqués (pour ne pas fédérer avec) ou autorisés (pour le mode de fédération par liste blanche)
* Les émojis personnalisés
* Les signalements pour la modération
## Configuration
Vous pouvez configurer votre instance en utilisant le panneau de configuration intégré à YuNohost, vous le trouverez dans l'interface d'administration Web de votre Yunohost en suivant ces étapes :
`Applications > GoToSocial > Panneau de configuration`
Dans ce panneau de configuration, vous pouvez configurer les choses suivantes (liste non exhaustive) :
* Configuration des comptes :
* Ouverture des inscriptions ?
* Validation manuelle des inscriptions ?
* Motif d'inscription requis ?
* Autoriser le CSS personnalisé des utilisateurices ?
* Longueur max du CSS personnalisé ?
* Configuration des médias
* Taille maximale des images
* Taille maximale des vidéos
* Nombre minimum de caractères pour les descriptions des médias
* Nombre maximum de caractères pour les descriptions des médias
* Nombre de jour de mise en cache des médias
* Configuration des posts
* Nombre maximum de caractères pour un nouveau post
* Nombre maximum de caractères dans un Content Warning / sujet d'un nouveau post
* Nombre maximum d'options pour un sondage
* Nombre maximum de caractères pour une option d'un sondage
* Nombre maximum de médias pouvant etre ajoutés à un post
* Configuration de l'instance
* Le mode de fédération à utiliser pour cette instance (blocklist / allowlist)
* Utilisateurice en tant que page d'accueil
* Options d'exposition de l'API
* Configuration SMTP
* Configuration du cache
* Configuration avancée
* SameSite attribute
* Rate limit
N.B. : **N'éditez PAS** le fichier `config.yaml` à la main. Utilisez toujours ce panneau de configuration à la place. Sinon vos modifications seront effacées à chaque mise à jour !
## Ligne de commande
Pour utiliser la ligne de commande de GoToSocial, vous devez d'abord vous placer dans le répertoire de votre instance :
`cd /var/www/gotosocial/` ou `cd /var/www/gotosocial__x/` (où `x` est le numéro de votre installation, dans la cas d'une installation de multiples instances).
N'hésitez pas à vous référer à la [documentation de la ligne de commande de GoToSocial](https://docs.gotosocial.org/en/latest/admin/cli/).
## Création de compte utilisateur
Pour créer un nouveau compte utilisateur, procédez comme suit :
```bash
./gotosocial --config-path config.yaml admin account create --username nom_dutilisateur --email utilisateur@example.com --password 'UnMotDePasseTrèsComplexe'
```
Et pour promouvoir un compte en tant qu'administrateur de votre instance :
```bash
./gotosocial --config-path config.yaml admin account promote --username nom_dutilisateur
```
## OpenID Connect
Vous pouvez regarder la [documentation officielle de GoToSocial au sujet de OpenID Connect](https://docs.gotosocial.org/en/latest/configuration/oidc/) en support si vous le souhaitez.
Pour utiliser OpenID Connect, l'admin YunoHost doit:
* Installer le package [Dex](https://apps.yunohost.org/app/dex) (notez que votre serveur doit le compiler, ce qui peut être gourmand en ressources)
* Configurer Dex correctement durant l'installation (toutes les informations renseignées seront utilisées lors de l'étape suivante, donc conservez-les soigneusement)
* Nom de domaine : ce que vous voulez (peut-être un sous domaine de votre instance GTS, comme "dex.gts.example.com")
* Chemin : juste `/` si vous souhaitez l'installer sur un sous domaine de votre instance, sinon comme vous voulez
* Nom de l'app : "GoToSocial", "GTS-test", "YNH-GoToSocial" ou n'importe quel nom qui vous semble correct qui ne possède pas d'espace (sera utilisé comme "client ID" dans l'étape suivante)
* OIDC secret : un mot de passe long généré aléatoirement d'au minimum une trentaine de caractères
* Callback URI : `gts.example.com/auth/callback` en remplaçant `gts.example.com` par le nom de domaine de votre instance GTS (sans le `https://` !)
* Configurer GTS en utilisant le formulaire OIDC du panneau de configuration : `Applications > GoToSocial > Panneau de configuration > OpenID Connect settings`
* Activer OpenID Connect : `true`
* Nom de l'OIDC IDP : "Dex" ou n'importe quel nom qui vous semble correct
* Passer la vérification du flux des jetons renvoyés : laisser sur `false` (ne **jamais** passer à `true` sauf si vous savez ce que vous faites !)
* URI du fournisseur OIDC : le nom de domaine auquel vous avez assigné Dex lors de l'étape précédente, barre oblique `/` finale incluse, par exemple `https://dex.gts.example.com/` (ce **N'est PAS** l'URL de votre instance GTS)
* Client ID du fournisseur OIDC : le nom de l'app renseigné lors de l'étape d'installation de Dex (exemples : "GoToSocial", "GTS-test", "YNH-GoToSocial")
* Client secret du fournisseur OIDC : le long mot de passé généré aléatoirement lors de l'étape d'installation de Dex
* Sauvegardez, patientez le temps que GTS redémarre puis testez !

View file

@ -6,7 +6,7 @@
"en": "Fast ActivityPub social network server written in Go",
"fr": "Serveur de réseau social véloce basé sur ActivityPub écrit en Go"
},
"version": "0.12.1~ynh1",
"version": "0.12.1~ynh2",
"url": "https://github.com/superseriousbusiness/gotosocial",
"upstream": {
"license": "AGPL-3.0-only",
@ -106,4 +106,4 @@
}
]
}
}
}

View file

@ -76,6 +76,14 @@ statuses_poll_max_options="6"
statuses_poll_option_max_chars="50"
statuses_media_max_files="6"
oidc_enabled="false"
oidc_idp_name=""
oidc_skip_verification="false"
oidc_issuer=""
oidc_client_id=""
oidc_client_secret=""
oidc_link_existing="false"
smtp_host="localhost"
smtp_port="25"
smtp_username=""
@ -152,6 +160,14 @@ ynh_app_setting_set --app="$app" --key=statuses_poll_max_options --value="$statu
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=oidc_enabled --value="$oidc_enabled"
ynh_app_setting_set --app="$app" --key=oidc_idp_name --value="$oidc_idp_name"
ynh_app_setting_set --app="$app" --key=oidc_skip_verification --value="$oidc_skip_verification"
ynh_app_setting_set --app="$app" --key=oidc_issuer --value="$oidc_issuer"
ynh_app_setting_set --app="$app" --key=oidc_client_id --value="$oidc_client_id"
ynh_app_setting_set --app="$app" --key=oidc_client_secret --value="$oidc_client_secret"
ynh_app_setting_set --app="$app" --key=oidc_client_secret --value="$oidc_link_existing"
ynh_app_setting_set --app="$app" --key=smtp_host --value="$smtp_host"
ynh_app_setting_set --app="$app" --key=smtp_port --value="$smtp_port"
ynh_app_setting_set --app="$app" --key=smtp_username --value="$smtp_username"

View file

@ -81,6 +81,14 @@ 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)
oidc_enabled=$(ynh_app_setting_get --app="$app" --key=oidc_enabled)
oidc_idp_name=$(ynh_app_setting_get --app="$app" --key=oidc_idp_name)
oidc_skip_verification=$(ynh_app_setting_get --app="$app" --key=oidc_skip_verification)
oidc_issuer=$(ynh_app_setting_get --app="$app" --key=oidc_issuer)
oidc_client_id=$(ynh_app_setting_get --app="$app" --key=oidc_client_id)
oidc_client_secret=$(ynh_app_setting_get --app="$app" --key=oidc_client_secret)
oidc_link_existing=$(ynh_app_setting_get --app="$app" --key=oidc_link_existing)
smtp_host=$(ynh_app_setting_get --app="$app" --key=smtp_host)
smtp_port=$(ynh_app_setting_get --app="$app" --key=smtp_port)
smtp_username=$(ynh_app_setting_get --app="$app" --key=smtp_username)

View file

@ -69,6 +69,14 @@ 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)
oidc_enabled=$(ynh_app_setting_get --app="$app" --key=oidc_enabled)
oidc_idp_name=$(ynh_app_setting_get --app="$app" --key=oidc_idp_name)
oidc_skip_verification=$(ynh_app_setting_get --app="$app" --key=oidc_skip_verification)
oidc_issuer=$(ynh_app_setting_get --app="$app" --key=oidc_issuer)
oidc_client_id=$(ynh_app_setting_get --app="$app" --key=oidc_client_id)
oidc_client_secret=$(ynh_app_setting_get --app="$app" --key=oidc_client_secret)
oidc_link_existing=$(ynh_app_setting_get --app="$app" --key=oidc_link_existing)
smtp_host=$(ynh_app_setting_get --app="$app" --key=smtp_host)
smtp_port=$(ynh_app_setting_get --app="$app" --key=smtp_port)
smtp_username=$(ynh_app_setting_get --app="$app" --key=smtp_username)
@ -336,6 +344,27 @@ then
ynh_app_setting_set --app="$app" --key=instance_federation_mode --value="$instance_federation_mode"
fi
# Upgrade from <0.12.1~ynh2:
if ynh_compare_current_package_version --comparison lt --version 0.12.1~ynh2 || [ -z "$oidc_enabled" ]
then
# declaration of new parameter
oidc_enabled="false"
oidc_idp_name=""
oidc_skip_verification="false"
oidc_issuer=""
oidc_client_id=""
oidc_client_secret=""
oidc_link_existing="false"
# registration of parameter
ynh_app_setting_set --app="$app" --key=oidc_enabled --value="$oidc_enabled"
ynh_app_setting_set --app="$app" --key=oidc_idp_name --value="$oidc_idp_name"
ynh_app_setting_set --app="$app" --key=oidc_skip_verification --value="$oidc_skip_verification"
ynh_app_setting_set --app="$app" --key=oidc_issuer --value="$oidc_issuer"
ynh_app_setting_set --app="$app" --key=oidc_client_id --value="$oidc_client_id"
ynh_app_setting_set --app="$app" --key=oidc_client_secret --value="$oidc_client_secret"
ynh_app_setting_set --app="$app" --key=oidc_client_secret --value="$oidc_link_existing"
fi
#=================================================
# CREATE DEDICATED USER
#=================================================