Ce guide suppose que vous disposez d’une installation standard auto-hébergée. Nous ne prenons en charge que la méthode d’installation standard ici, donc ces instructions supposent que vous avez une installation standard.
Ce guide s’applique uniquement aux instances Discourse auto-hébergées. Si vous utilisez un service d’hébergement géré, les plugins disponibles sont contrôlés par votre fournisseur d’hébergement. Par exemple, sur notre hébergement, ces plugins spécifiques sont disponibles selon le niveau d’hébergement.
Dans ce tutoriel, nous allons installer le plugin Discourse Solved.
Ce tutoriel nécessite une compréhension de l’utilisation des dépôts GitHub, en particulier comment obtenir ou copier l’URL de clonage git et comment modifier les fichiers YAML (*.yml) via le terminal en utilisant nano, spécifiquement comment enregistrer et quitter nano. Les fichiers YAML suivent strictement les indentations, assurez-vous donc de les respecter lorsque vous copiez, collez et modifiez le *.yml nécessaire pour votre instance Discourse. Utilisez toujours des espaces pour indenter dans les fichiers .yml, pas des tabulations.
-
Copiez l’URL
git clonedu dépôt GitHub du plugin. -
Accédez au fichier
app.ymlde votre conteneur (présent dans/var/discourse/containers/)cd /var/discourse nano containers/app.yml -
Ajoutez l’URL du dépôt du plugin à votre fichier
app.ymlde conteneur :hooks: after_code: - exec: cd: $home/plugins cmd: - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git - sudo -E -u discourse git clone https://github.com/discourse/discourse-solved.gitAjoutez l’URL
git clonedu plugin juste en dessous de la ligne contenantgit clone https://github.com/discourse/docker_manager.git)Suivez le format existant de la ligne
docker_manager.git; si elle ne contient passudo -E -u discourse, insérez- git clone https://github.com/discourse/discourse-solved.git. -
Reconstruisez le conteneur :
cd /var/discourse ./launcher rebuild appC’est tout, vous avez installé avec succès le plugin Discourse Solved sur votre instance Discourse !
Si votre plugin est hébergé dans un dépôt privé
Vous devez utiliser un jeton OAuth :
Avec le jeton OAuth, vous pouvez installer votre plugin de la même manière qu’un dépôt public, et vous n’avez pas besoin de créer une clé SSH.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- sudo -E -u discourse git clone https://<token>@github.com/owner/repo.git
Nous vous conseillons fortement d’utiliser des jetons OAuth pour les plugins dans les dépôts privés. Cependant, si vous ne le pouvez pas, voir ci-dessous.
Étapes d'installation privée avec clé SSH
-
En supposant que votre dépôt git privé est hébergé sur GitHub, vous devez ajouter la clé SSH publique de l’utilisateur de votre serveur aux clés de déploiement du dépôt GitHub (https://github.com/SecretOrg/secret-plugin/settings/keys).
-
Modifiez le fichier
app.ymlcomme indiqué dans l’exemple ci-dessous :
run:
- exec: echo "Début des commandes personnalisées"
- exec: cd /var/www/discourse && sudo -u discourse bundle install --deployment --without test --without development
- exec: echo "Host github.com\n\tStrictHostKeyChecking no\n" >> /user/.ssh/config
- file:
path: /user/.ssh/id_rsa
chmod: 600
contents: |
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEArCQG213utzqE5YVjTVF5exGRCkE9OuM7LCp/FOuPdoHrFUXk
.... etc ....
-----END RSA PRIVATE KEY-----
- file:
path: /user/.ssh/id_rsa.pub
chmod: 600
contents: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tj .... etc .... user@discourse
- exec: cd $home/plugins && git clone git@github.com:SecretOrg/secret-plugin.git
- exec: cd $home && sudo -E -u discourse bundle exec rake db:migrate
- exec: cd $home && rm -fr tmp/cache
- exec: cd $home && sudo -E -u discourse bundle exec rake assets:precompile
- exec: rm /user/.ssh/id_rsa
- exec: rm /user/.ssh/id_rsa.pub
- exec: echo "Fin des commandes personnalisées"
- Reconstruisez le conteneur :
cd /var/discourse
./launcher rebuild app
Votre plugin privé devrait être installé sur votre instance Discourse.
Comment désinstaller un plugin
Pour supprimer un plugin, supprimez simplement la ligne - git clone https://github.com/... de votre fichier app.yml et reconstruisez votre site via
cd /var/discourse
./launcher rebuild app