diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 651f7a6..2729a6b 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -8,7 +8,7 @@ about: When creating a bug report, please use the following template to provide 1. *Read this whole template first.* 2. *Determine if you are on the right place:* - *If you were performing an action on the app from the webadmin or the CLI (install, update, backup, restore, change_url...), you are on the right place!* - - *Otherwise, the issue may be due to Discourse itself. Refer to its documentation or repository for help.* + - *Otherwise, the issue may be due to the app itself. Refer to its documentation or repository for help.* - *When in doubt, post here and we will figure it out together.* 3. *Delete the italic comments as you write over them below, and remove this guide.* --- diff --git a/README.md b/README.md index e71113c..d6d44cf 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,33 @@ Discussion platform ## Disclaimers / important information +## Disclaimer + +This package installs Discourse without Docker, for several reasons (mostly to support ARM architecture and low-profile servers, to mutualize nginx/postgresql/redis services and to simplify e-mail setup). +As stated by the Discourse team: +> The only officially supported installs of Discourse are [Docker](https://www.docker.io/) based. You must have SSH access to a 64-bit Linux server **with Docker support**. We regret that we cannot support any other methods of installation including cpanel, plesk, webmin, etc. + +So please have this in mind when considering asking for Discourse support. + +Moreover, you should have in mind Discourse [hardware requirements](https://github.com/discourse/discourse/blob/master/docs/INSTALL.md#hardware-requirements): +- modern single core CPU, dual core recommended +- 1 GB RAM minimum (with swap) +- 64 bit Linux compatible with Docker +- 10 GB disk space minimum + +Finally, if installing on a low-end ARM device (e.g. Raspberry Pi): +- installation can last up to 3 hours, +- first access right after installation could take a couple of minutes. + +## Overview +[Discourse](http://www.discourse.org) is the 100% open source discussion platform built for the next decade of the Internet. Use it as a: + +- mailing list +- discussion forum +- long-form chat room + +To learn more about the philosophy and goals of the project, [visit **discourse.org**](http://www.discourse.org). + ## Configuration Use the admin panel of your Discourse to configure this app. @@ -77,6 +104,25 @@ When disabling Local Login and other authentication services, clicking the `Logi ![LDAP Login Popup](https://raw.githubusercontent.com/jonmbake/screenshots/master/discourse-ldap-auth/ldap_popup.png) +## Limitations + +None at the moment. + +## Additional information +### Known non-impacting log messages +``` +fatal: Not a git repository (or any of the parent directories): .git + +bash: BASH_XTRACEFD: 7: invalid value for trace file descriptor +``` +## How-tos +### Install plugins +``` +cd /var/www/discourse +sudo -i -u discourse RAILS_ENV=production bin/rake --trace plugin:install repo=https://github.com/discourse/discourse-solved (for example) +sudo -i -u discourse RAILS_ENV=production bin/rake --trace assets:precompile +systemctl restart discourse +``` ## Documentation and resources diff --git a/README_fr.md b/README_fr.md index 80b2f3d..a8c135f 100644 --- a/README_fr.md +++ b/README_fr.md @@ -23,6 +23,32 @@ Plateforme de discussion ## Avertissements / informations importantes + +Ce package installe Discourse sans Docker, pour plusieurs raisons (principalement pour prendre en charge l'architecture ARM et les serveurs discrets, pour mutualiser les services nginx/postgresql/redis et pour simplifier la configuration de la messagerie). +Comme indiqué par l'équipe Discourse : +> Les seules installations officiellement prises en charge de Discourse sont basées sur [Docker](https://www.docker.io/). Vous devez avoir un accès SSH à un serveur Linux 64 bits **avec prise en charge Docker**. Nous regrettons de ne pouvoir prendre en charge aucune autre méthode d'installation, notamment cpanel, plesk, webmin, etc. + +Veuillez donc avoir cela à l'esprit lorsque vous envisagez de demander de l'aide à Discourse. + +De plus, vous devriez avoir à l'esprit Discourse [exigences matérielles](https://github.com/discourse/discourse/blob/master/docs/INSTALL.md#hardware-requirements) : +- CPU monocœur moderne, double cœur recommandé +- 1 Go de RAM minimum (avec swap) +- Linux 64 bits compatible avec Docker +- 10 Go d'espace disque minimum + +Enfin, si vous installez sur un appareil ARM bas de gamme (par exemple Raspberry Pi) : +- l'installation peut durer jusqu'à 3 heures, +- le premier accès juste après l'installation peut prendre quelques minutes. + +## Aperçu +[Discourse](http://www.discourse.org) est la plate-forme de discussion 100% open source conçue pour la prochaine décennie d'Internet. Utilisez-le comme : + +- liste de diffusion +- forum de discussion +- salle de discussion longue durée + +Pour en savoir plus sur la philosophie et les objectifs du projet, [visitez **discourse.org**](http://www.discourse.org). + ## Configuration Utilisez le panneau d'administration de votre Discourse pour configurer cette application. @@ -55,11 +81,79 @@ $ RAILS_ENV=production /opt/rbenv/versions/2.6.0/bin/bundle exec rails c $ UserEmail.create!(user: User.find_by_username("foo"), email: "foo@theirexternalmail.com") ``` -*Discourse* peut maintenant recevoir du courrier de `foo@theirexternalmail.com` et le donner au compte utilisateur avec l'adresse email `foo@myyunohostdomain.org`. +## Fonctionnalités spécifiques à YunoHost + + * Intégration avec les utilisateurs YunoHost et SSO : + * Intégration LDAP : dans la pop-up de connexion, vous pouvez choisir "Se connecter avec LDAP" et utiliser vos identifiants YunoHost + * mode privé : Forum uniquement accessible ## Disclaimer + +Ce package installe Discourse sans Docker, pour plusieurs raisons (principalement pour prendre en charge l'architecture ARM et les serveurs discrets, pour mutualiser les services nginx/postgresql/redis et pour simplifier la configuration de la messagerie). +Comme indiqué par l'équipe Discourse : +> Les seules installations officiellement prises en charge de Discourse sont basées sur [Docker](https://www.docker.io/). Vous devez avoir un accès SSH à un serveur Linux 64 bits **avec prise en charge Docker**. Nous regrettons de ne pouvoir prendre en charge aucune autre méthode d'installation, notamment cpanel, plesk, webmin, etc. + +Veuillez donc avoir cela à l'esprit lorsque vous envisagez de demander de l'aide à Discourse. + +De plus, vous devriez avoir à l'esprit Discourse [exigences matérielles](https://github.com/discourse/discourse/blob/master/docs/INSTALL.md#hardware-requirements) : +- CPU monocœur moderne, double cœur recommandé +- 1 Go de RAM minimum (avec swap) +- Linux 64 bits compatible avec Docker +- 10 Go d'espace disque minimum + +Enfin, si vous installez sur un appareil ARM bas de gamme (par exemple Raspberry Pi) : +- l'installation peut durer jusqu'à 3 heures, +- le premier accès juste après l'installation peut prendre quelques minutes. + +## Aperçu +[Discourse](http://www.discourse.org) est la plate-forme de discussion 100% open source conçue pour la prochaine décennie d'Internet. Utilisez-le comme : + +- liste de diffusion +- forum de discussion +- salle de discussion longue durée + +Pour en savoir plus sur la philosophie et les objectifs du projet, [visitez **discourse.org**](http://www.discourse.org). + +## Configuration + +Utilisez le panneau d'administration de votre Discourse pour configurer cette application. + +### Configuration de "Répondre par e-mail" + +* Vous devez créer un utilisateur Yunohost dédié pour Discourse dont la boîte aux lettres sera utilisée par l'application Discourse. Vous pouvez le faire avec `yunohost user create response`, par exemple. Vous devez vous assurer que l'adresse e-mail est configurée pour être sur votre domaine Discourse. + +* Vous devez ensuite configurer votre fichier Discourse `/var/www/discourse/config/discourse.conf` avec les valeurs de configuration SMTP correctes. Veuillez consulter [ce commentaire](https://github.com/YunoHost-Apps/discourse_ynh/issues/2#issuecomment-409510325) pour une explication des valeurs à modifier. Attention, lors de la mise à jour de l'application, vous devrez réappliquer cette configuration. + +* Vous devez activer la configuration Pop3 pour Dovecot. Voir [ce fil](https://forum.yunohost.org/t/how-to-enable-pop3-in-yunohost/1662/2) pour savoir comment procéder. Vous pouvez valider votre configuration avec `systemctl restart dovecot && dovecot -n`. N'oubliez pas d'ouvrir les ports dont vous avez besoin ('995' est la valeur par défaut). Vous pouvez valider cela avec `nmap -p 995 yunohostdomain.org`. + +* Vous devez ensuite configurer le sondage Pop3 dans l'interface d'administration de Discourse. Veuillez consulter [ce commentaire](https://meta.discourse.org/t/set-up-reply-via-email-support/14003) pour savoir comment procéder. Vous devrez suivre l'étape 5 de ce commentaire. Vous pouvez spécifier votre domaine Yunohost principal pour le `pop3_polling_host`. + +Vous devriez maintenant pouvoir commencer à tester. Essayez d'utiliser le `/admin/email` « Envoyer un e-mail de test », puis affichez les onglets « Envoyé » ou « Ignoré », etc. Vous devriez voir un rapport sur ce qui s'est passé avec l'e-mail. Vous pouvez également regarder dans `/var/www/discourse/log/production.log` ainsi que `/var/www/mail.err`. Vous devriez peut-être également utiliser [Rainloop](https://github.com/YunoHost-Apps/rainloop_ynh) ou une autre application client de messagerie Yunohost pour tester rapidement que votre utilisateur et l'utilisateur dédié Yunohost Discourse (`response@...` ) reçoit du courrier. + +### "Réponse par e-mail" et transfert de courrier + +Si vous utilisez l'interface utilisateur d'administration de YunoHost pour configurer une adresse de transfert de courrier pour vos utilisateurs, vous risquez de rencontrer le problème selon lequel vos utilisateurs répondent par e-mail à partir de l'adresse e-mail transférée et le logiciel Discourse n'est pas capable de comprendre comment recevoir cet e-mail. + +Par exemple, votre utilisateur a l'adresse e-mail "foo@myyunohostdomain.org" et tout le courrier est transféré à "foo@theirexternalmail.com". Discourse reçoit des réponses de `foo@theirexternalmail.com` mais ne peut pas comprendre comment les envoyer au compte utilisateur avec `foo@myyunohostdomain.org` configuré. + +Leur travail est en cours pour permettre [plusieurs adresses e-mail pour un utilisateur](https://meta.discourse.org/t/additional-email-address-per-user-account-support/59847) dans le développement de discours mais dans la version majeure actuelle (2.3 au 06-08-2019), il n'y a pas d'interface Web pour cette fonctionnalité. Il est possible de le configurer via l'interface de ligne de commande mais c'est **expérimental** et vous ne devriez pas entreprendre ce travail à moins de prendre le temps de comprendre ce que vous allez faire. + +Voici comment configurer une adresse e-mail secondaire pour un compte utilisateur : + +```bash +$ cd /var/www/discourse +$ RAILS_ENV=production /opt/rbenv/versions/2.7.1/bin/bundle exec rails c +$ UserEmail.create!(user: User.find_by_username("foo"), email: "foo@theirexternalmail.com") +``` + +## Fonctionnalités spécifiques à YunoHost + + * Intégration avec les utilisateurs YunoHost et SSO : + * Intégration LDAP : dans la pop-up de connexion, vous pouvez choisir "Se connecter avec LDAP" et utiliser vos identifiants YunoHost + * mode privé : Forum accessible uniquement par les utilisateurs de YunoHost + * mode public : Visible par tous #### Prise en charge multi-utilisateurs -Pris en charge, avec LDAP et SSO. +Pris en charge, avec LDAP (pas de SSO). ![Login Popup](https://raw.githubusercontent.com/jonmbake/screenshots/master/discourse-ldap-auth/login.png) @@ -71,7 +165,27 @@ Lors de la désactivation de la connexion locale et d'autres services d'authenti ![Désactiver Local](https://raw.githubusercontent.com/jonmbake/screenshots/master/discourse-ldap-auth/disable_local.png) -![Popup de connexion LDAP](https://raw.githubusercontent.com/jonmbake/screenshots/master/discourse-ldap-auth/ldap_popup.png) +![Popup de connexion LDAP](https://raw.githubusercontent.com/jonmbake/screenshots/master/discourse-ldap-auth/ldap_popup.png) + +## Limites + +Aucun pour le moment. + +## Informations Complémentaires +### Messages de journal connus sans impact +``` +fatal: Not a git repository (or any of the parent directories): .git + +bash: BASH_XTRACEFD: 7: invalid value for trace file descriptor +``` +## Mode d'emploi +### Installer des plugins +``` +cd /var/www/discourse +sudo -i -u discourse RAILS_ENV=production bin/rake --trace plugin:install repo=https://github.com/discourse/discourse-solved (for example) +sudo -i -u discourse RAILS_ENV=production bin/rake --trace assets:precompile +systemctl restart discourse +``` ## Documentations et ressources diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md index 08c94c4..3f232a5 100644 --- a/doc/DISCLAIMER.md +++ b/doc/DISCLAIMER.md @@ -36,6 +36,7 @@ Discourse can now receive mail from `foo@theirexternalmail.com` and give it to t Supported, with LDAP and SSO. + ![Login Popup](https://raw.githubusercontent.com/jonmbake/screenshots/master/discourse-ldap-auth/login.png) Default administrator and YunoHost users must login using LDAP: @@ -48,3 +49,22 @@ When disabling Local Login and other authentication services, clicking the `Logi ![LDAP Login Popup](https://raw.githubusercontent.com/jonmbake/screenshots/master/discourse-ldap-auth/ldap_popup.png) +## Limitations + +None at the moment. + +## Additional information +### Known non-impacting log messages +``` +fatal: Not a git repository (or any of the parent directories): .git + +bash: BASH_XTRACEFD: 7: invalid value for trace file descriptor +``` +## How-tos +### Install plugins +``` +cd /var/www/discourse +sudo -i -u discourse RAILS_ENV=production bin/rake --trace plugin:install repo=https://github.com/discourse/discourse-solved (for example) +sudo -i -u discourse RAILS_ENV=production bin/rake --trace assets:precompile +systemctl restart discourse +``` diff --git a/doc/DISCLAIMER_fr.md b/doc/DISCLAIMER_fr.md index ce38105..fcaad43 100644 --- a/doc/DISCLAIMER_fr.md +++ b/doc/DISCLAIMER_fr.md @@ -1,3 +1,29 @@ +## Avertissement + +Ce package installe Discourse sans Docker, pour plusieurs raisons (principalement pour prendre en charge l'architecture ARM et les serveurs discrets, pour mutualiser les services nginx/postgresql/redis et pour simplifier la configuration de la messagerie). +Comme indiqué par l'équipe Discourse : +> Les seules installations officiellement prises en charge de Discourse sont basées sur [Docker](https://www.docker.io/). Vous devez avoir un accès SSH à un serveur Linux 64 bits **avec prise en charge Docker**. Nous regrettons de ne pouvoir prendre en charge aucune autre méthode d'installation, notamment cpanel, plesk, webmin, etc. + +Veuillez donc avoir cela à l'esprit lorsque vous envisagez de demander de l'aide à Discourse. + +De plus, vous devriez avoir à l'esprit Discourse [exigences matérielles](https://github.com/discourse/discourse/blob/master/docs/INSTALL.md#hardware-requirements) : +- CPU monocœur moderne, double cœur recommandé +- 1 Go de RAM minimum (avec swap) +- Linux 64 bits compatible avec Docker +- 10 Go d'espace disque minimum + +Enfin, si vous installez sur un appareil ARM bas de gamme (par exemple Raspberry Pi) : +- l'installation peut durer jusqu'à 3 heures, +- le premier accès juste après l'installation peut prendre quelques minutes. + +## Aperçu +[Discourse](http://www.discourse.org) est la plate-forme de discussion 100% open source conçue pour la prochaine décennie d'Internet. Utilisez-le comme : + +- liste de diffusion +- forum de discussion +- salle de discussion longue durée + +Pour en savoir plus sur la philosophie et les objectifs du projet, [visitez **discourse.org**](http://www.discourse.org). ## Configuration Utilisez le panneau d'administration de votre Discourse pour configurer cette application. @@ -46,4 +72,24 @@ Lors de la désactivation de la connexion locale et d'autres services d'authenti ![Désactiver Local](https://raw.githubusercontent.com/jonmbake/screenshots/master/discourse-ldap-auth/disable_local.png) -![Popup de connexion LDAP](https://raw.githubusercontent.com/jonmbake/screenshots/master/discourse-ldap-auth/ldap_popup.png) +![Popup de connexion LDAP](https://raw.githubusercontent.com/jonmbake/screenshots/master/discourse-ldap-auth/ldap_popup.png) + +## Limites + +Aucun pour le moment. + +## Informations Complémentaires +### Messages de journal connus sans impact +``` +fatal: Not a git repository (or any of the parent directories): .git + +bash: BASH_XTRACEFD: 7: invalid value for trace file descriptor +``` +## Mode d'emploi +### Installer des plugins +``` +cd /var/www/discourse +sudo -i -u discourse RAILS_ENV=production bin/rake --trace plugin:install repo=https://github.com/discourse/discourse-solved (for example) +sudo -i -u discourse RAILS_ENV=production bin/rake --trace assets:precompile +systemctl restart discourse +``` diff --git a/scripts/install b/scripts/install index 068eec0..749fec2 100644 --- a/scripts/install +++ b/scripts/install @@ -67,8 +67,8 @@ ynh_app_setting_set --app=$app --key=email --value=$email #================================================= ynh_script_progression --message="Installing dependencies..." -ynh_install_app_dependencies $pkg_dependencies -ynh_install_ruby --ruby_version=$RUBY_VERSION +ynh_install_app_dependencies $pkg_dependencies 2>/dev/null +ynh_install_ruby --ruby_version=$RUBY_VERSION 2>/dev/null #================================================= # CREATE DEDICATED USER diff --git a/scripts/restore b/scripts/restore index 5c59e25..0587d02 100644 --- a/scripts/restore +++ b/scripts/restore @@ -87,8 +87,8 @@ chown -R $app:www-data "$final_path" ynh_script_progression --message="Reinstalling dependencies..." # Define and install dependencies -ynh_install_app_dependencies $pkg_dependencies -ynh_install_ruby --ruby_version=$RUBY_VERSION +ynh_install_app_dependencies $pkg_dependencies 2>/dev/null +ynh_install_ruby --ruby_version=$RUBY_VERSION 2>/dev/null #================================================= # REINSTALL BUNDLE GEM diff --git a/scripts/upgrade b/scripts/upgrade index 0399338..1af1721 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -191,8 +191,8 @@ ynh_store_file_checksum --file="/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= ynh_script_progression --message="Upgrading dependencies..." -ynh_install_app_dependencies $pkg_dependencies -ynh_install_ruby --ruby_version=$RUBY_VERSION +ynh_install_app_dependencies $pkg_dependencies 2>/dev/null +ynh_install_ruby --ruby_version=$RUBY_VERSION 2>/dev/null ynh_use_ruby #=================================================