diff --git a/README.md b/README.md index d527a1d..faa416b 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,86 @@ -Etherpad with mypads plugin for YunoHost -================== +# Etherpad with mypads plugin for YunoHost -[Yunohost project](https://yunohost.org/#/) +[![Integration level](https://dash.yunohost.org/integration/etherpad_mypads.svg)](https://ci-apps.yunohost.org/jenkins/job/etherpad_mypads%20%28Community%29/lastBuild/consoleFull) +[![Install Etherpad with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=etherpad_mypads) -Éditeur de texte collaboratif en ligne avec gestion utilisateurs et groupes. -Ce package etherpad utilise les mêmes plugins que [Framapad](https://framapad.org/). +> *This package allow you to install etherpad quickly and simply on a YunoHost server. +If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.* -http://etherpad.org/ -https://git.framasoft.org/framasoft/ep_mypads +## Overview +Etherpad is a highly customizable Open Source online editor providing collaborative editing in really real-time. +This package will install the same plugins than [Framapad](https://framapad.org/). -**En raison du plugin mypads, cette version d'etherpad doit être installée à la racine d'un domaine ou d'un sous-domaine dédié. Autrement, mypads sera inaccessible.** +**Shipped version:** 1.6.2 -**Mise à jour du package:** -sudo yunohost app upgrade --verbose etherpad_mypads -u https://github.com/YunoHost-Apps/etherpad_mypads_ynh +## Screenshots -**Multi-utilisateur:** Oui, sans support ldap. +![](http://etherpad.org/img/screenshot.png) -Ce package etherpad intègre les plugins suivant: +## Configuration -- ep_align - *Add Left/Center/Right/Justify to lines of text in a pad* -- ep_author_hover - *Adds author names to span titles* -- ep_automatic_logut - *Automatically disconnects user after some period of time (Prevent server overload)* -- ep_comments_page - *Adds comments on sidebar and link it to the text.* -- ep_countable - *Displays paragraphs, sentences, words and characters counts.* -- ep_delete_empty_pads - *Delete pads which were never edited* -- ep_font_color - *Apply colors to fonts* -- ep_headings2 - *Adds heading support to Etherpad Lite.* -- ep_markdown - *Edit and Export as Markdown in Etherpad* -- ep_mypads - *Groups and private pads for etherpad* -- ep_page_view - *Add support to do 'page view', with a toggle on/off option in Settings, also Page Breaks with Control Enter* -- ep_spellcheck - *Add support to do 'Spell checking'* -- ep_subscript_and_superscript - *Add support for Subscript and Superscript* -- ep_table_of_contents - *View a table of contents for your pad* -- ep_user_font_size - *User Pad Contents font size can be set in settings, this does not effect other peoples views* +You can access to 2 different admin panels, for etherpad by accessing `domain.tld/admin` and for mypads by `domain.tld/mypads/?/admin` +Or, you can find a config file for etherpad at this path `/var/www/etherpad_mypads/settings.json` + +## Documentation + + * Official documentation: http://etherpad.org/doc/v1.6.2 + * YunoHost documentation: There no other documentations, feel free to contribute. + +## YunoHost specific features + +#### Multi-users support + +Supported, **without LDAP nor SSO**. + +#### Supported architectures + +* Tested on x86_64 + +## Limitations + +* If you ask to install the plugin mypads, you have to install in the root of a dedicated domain or a sub domain. Else, mypads will be inaccessible. + +## Additionnal informations + +* This package will install the following plugins: + + * ep_align - *Add Left/Center/Right/Justify to lines of text in a pad* + * ep_author_hover - *Adds author names to span titles* + * ep_automatic_logut - *Automatically disconnects user after some period of time (Prevent server overload)* + * ep_comments_page - *Adds comments on sidebar and link it to the text.* + * ep_countable - *Displays paragraphs, sentences, words and characters counts.* + * ep_delete_empty_pads - *Delete pads which were never edited* + * ep_font_color - *Apply colors to fonts* + * ep_headings2 - *Adds heading support to Etherpad Lite.* + * ep_markdown - *Edit and Export as Markdown in Etherpad* + * ep_mypads - *Groups and private pads for etherpad* + * ep_page_view - *Add support to do 'page view', with a toggle on/off option in Settings, also Page Breaks with Control Enter* + * ep_spellcheck - *Add support to do 'Spell checking'* + * ep_subscript_and_superscript - *Add support for Subscript and Superscript* + * ep_table_of_contents - *View a table of contents for your pad* + * ep_user_font_size - *User Pad Contents font size can be set in settings, this does not effect other peoples views* + +* Because there's no ldap support with mypads plugin, no user is created at the installation. +You have to connect to the admin panel to create the first users. +Login and password are those you chose during the installation. + +## Links + + * Report a bug: https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues + * Etherpad website: http://etherpad.org/ + * Mypads plugin website: https://git.framasoft.org/framasoft/ep_mypads + * YunoHost website: https://yunohost.org/ --- -## Usage -Le support ldap étant absent sur le plugin mypads, aucun utilisateur n'est créé par défaut. -Il est nécessaire de se connecter à l'interface d'administration pour créer les premiers utilisateurs. -Le login et le mot de passe administrateur sont ceux choisis en moment de l'installation. -**Voir l'état du package:** -*[Dernier rapport hebdomadaire](https://forum.yunohost.org/t/rapport-hebdomadaire-dintegration-continue/2297)* -*[Dernier test d'intégration continue](https://ci-apps.yunohost.org/jenkins/job/etherpad_mypads%20%28Community%29/lastBuild/consoleFull)* +Developers infos +---------------- + +Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing). + +To try the testing branch, please proceed like that. +``` +sudo yunohost app install https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --verbose +or +sudo yunohost app upgrade etherpad_mypads -u https://github.com/YunoHost-Apps/etherpad_mypads_ynh/tree/testing --verbose +``` diff --git a/YEP.md b/YEP.md new file mode 100644 index 0000000..1d2227d --- /dev/null +++ b/YEP.md @@ -0,0 +1,117 @@ +#### [Level 0](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-0) +[YEP 1.1 - Nommer son app et son dépot](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-11) +`Validated` +[YEP 1.2 - Inscrire l'app sur un "répertoire" connu](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-12) +`Validated` + +#### [Level 1](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-1) +[YEP 2.2 - Utiliser bash pour les scripts principaux](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-22) +`Validated` +[YEP 2.5 - Copier correctement des fichiers](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-25) +`Don't know` +[YEP 2.7 - Donner des permissions suffisantes aux instructions bash](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-27) +`Validated` +[YEP 2.15 - Suivre les instructions d'installation de l'application](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-215) +`Validated` + +#### [Level 2](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-2) +[YEP 1.5 - Mettre à jour régulièrement le statut de l'app](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-11) +`Validated` +[YEP 2.18.2 - Gérer l'installation à la racine d’un nom de domaine](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2182) +`Validated` - *Automatically verified.* +[YEP 2.18.3 - Gérer l'installation sur un sous-domaine](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2183) +`Validated` - *Automatically verified.* +[YEP 2.18.4 - Gérer l'installation sur un chemin /path](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2184) +`Validated` - *Automatically verified.* +[YEP 4.6 - Gère le multi-instance](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-11) +`Not yet validated` - *Automatically verified.* + +#### [Level 3](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-3) +[YEP 2.3 - Sauvegarder les réponses lors de l'installation](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-23) +`Validated` + +#### [Level 4](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-4) +[YEP 4.1 - Lier au ldap](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-41) +`Not yet validated` +[YEP 4.2 - Lier l'authentification au sso](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-42) +`Not yet validated` + +#### [Level 5](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-5) +[YEP 1.3 - Indiquer la licence associée au paquet](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-13) +`Validated` +[YEP 2.1 - Respecter le format du manifeste](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-21) +`Validated` - *Automatically verified.* +[YEP 2.12 - Utiliser les commandes pratiques (helpers)](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-212) +`Validated` +[YEP 2.18.1 - Lancer le script d'installation d'une webapp correctement](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2181) +`Not applicable` + +#### [Level 6](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-6) +[YEP 1.4 - Informer sur l'intention de maintenir un paquet](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-14) +`Validated` +[YEP 1.6 - Se tenir informé sur l'évolution du packaging d'apps](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-16) +`Validated` +[YEP 1.7 - Ajouter l'app à l'organisation YunoHost-Apps](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-17) +`Validated` - *Automatically verified.* +[YEP 1.8 - Publier des demandes de test](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-18) +`Validated` +[YEP 1.9 - Documenter l'app](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-19) +`Validated` +[YEP 1.10 - Garder un historique de version propre](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-110) +`Don't know` +[YEP 2.9 - Enlever toutes traces de l'app lors de la suppression](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-29) +`Validated` +[YEP 3.3 - Faciliter le contrôle de l'intégrité des sources](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-33) +`Validated` +[YEP 3.5 - Suivre les recommendations de la documentation de l'app](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-35) +`Validated` +[YEP 3.6 - Mettre à jour les versions contenant des CVE](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-36) +`Validated` +[YEP 4.3 - Fournir un script de sauvegarde YunoHost fonctionnel](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-43) +`Validated` - *Automatically verified.* +[YEP 4.4 - Fournir un script de restauration YunoHost fonctionnel](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-44) +`Validated` - *Automatically verified.* + +#### [Level 7](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-7) +[YEP 2.6 - Annuler l'action si les valeurs d'entrées sont incorrectes](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-26) +`Validated` +[YEP 3.2 - Ouvrir un port correctement](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-32) +`Validated` + +#### [Level 8](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-8) +[YEP 2.4 - Détecter et gérer les erreurs](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-24) +`Validated` +[YEP 2.8 - Modifier correctement une configuration système](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-28) +`Validated` +[YEP 2.16 - Vérifier la disponibilité des dépendances sur ARM, x86 et x64](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-216) +`Not yet validated` - *Automatically verified.* +[YEP 2.18.5 - Gérer la tuile YunoHost pour faciliter la navigation entre les applications](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-2185) +`Partially validated` +[YEP 3.4 - Isoler l'app](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-34) +`Partially validated` +[YEP 4.5 - Utiliser les hooks](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-45) +`Not applicable` + +#### [Level 9](https://github.com/YunoHost/doc/blob/master/packaging_apps_levels_fr.md#niveau-9) +[YEP 2.10 - Configurer les logs de l'application](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-210) +`Validated` +[YEP 2.11 - Utiliser une variable plutôt que l'app id directement](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-211) +`Validated` +[YEP 2.13 - Traduire le paquet en anglais](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-213) +`Partially validated` +[YEP 2.14 - Remplir correctement un fichier de conf](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-214) +`Not yet validated` +[YEP 2.17 - Prendre en compte la version d'origine lors des mises à jour](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-217) +`Validated` +[YEP 4.2.1 - Déconnexion](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-421) +`Not yet validated` + +#### Other YEP +[YEP 3.1 - Ne pas demander ou stocker de mot de passe LDAP](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-31) +`Validated` +[YEP 4.7 - Ajouter un module à la CLI](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-47) +`Not applicable` +[YEP 4.8 - Ajouter un module à l'admin web](https://github.com/YunoHost/doc/blob/master/packaging_apps_guidelines_fr.md#yep-48) +`Not applicable` + +State of each YEP can be one of these: `Validated`, `Partially validated`, `Not yet validated`, `Not applicable`, `Don't know`. diff --git a/check_process b/check_process index 0b62824..8d3b2f8 100644 --- a/check_process +++ b/check_process @@ -21,7 +21,7 @@ multi_instance=0 incorrect_path=1 port_already_use=1 (9001) - change_url=0 + change_url=1 ;; Test avec mypads auto_remove=1 ; Manifest @@ -36,6 +36,7 @@ ; Checks setup_root=1 upgrade=1 + upgrade=1 from_commit=b86b9d09ed97bf04b7e1afad72376d8d695b418b backup_restore=1 ;; Test abiword auto_remove=1 @@ -70,7 +71,7 @@ # Level 4: Pas de support ldap. https://framagit.org/framasoft/ep_mypads/issues/31#note_30898 Level 4=na # Level 5: https://github.com/YunoHost-Apps/etherpad_mypads_ynh/issues/11 - Level 5=1 + Level 5=auto Level 6=auto Level 7=auto Level 8=0 @@ -79,3 +80,7 @@ ;;; Options Email= Notification=down +;;; Upgrade options + ; commit=b86b9d09ed97bf04b7e1afad72376d8d695b418b + name=20 Jan 2017 b86b9d09ed97bf04b7e1afad72376d8d695b418b + manifest_arg=domain=DOMAIN&admin=USER&password=password&language=en&is_public=Yes&abiword=0& diff --git a/conf/nginx.conf b/conf/nginx.conf index 7a9d944..68714f7 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -13,5 +13,5 @@ location __PATH__/ { } location ~* __PATH__/p/[^/]*(_|%|\*)[^/]*/export/etherpad { - return 404; + return 404; } diff --git a/scripts/install b/scripts/install index 4642ebe..ab5430f 100644 --- a/scripts/install +++ b/scripts/install @@ -58,6 +58,9 @@ fi final_path=/var/www/$app test ! -e "$final_path" || ynh_die "This path already contains a folder" +# Normalize the url path syntax +path_url=$(ynh_normalize_url_path $path_url) + # Check web path availability ynh_webpath_available $domain $path_url # Register (book) web path diff --git a/scripts/upgrade b/scripts/upgrade index 2b745dd..88c6106 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -80,6 +80,13 @@ fi # Backup the current version of the app ynh_backup_before_upgrade ynh_clean_setup () { + # Nettoyage des résidus d'installation non pris en charge par le script remove. + if test -n "$PID_TAIL" + then + SUPPRESS_WARNING kill -s 15 $PID_TAIL # Arrête l'exécution de tail. + ynh_secure_remove "$tempfile" + fi + # restore it if the upgrade fails ynh_restore_upgradebackup } @@ -240,8 +247,9 @@ systemctl reload nginx # CHECK ETHERPAD STARTING #================================================= -for i in `seq 1 60` -do # La boucle attend le démarrage d'etherpad. Ou 1 minute. Cette boucle évite simplement un 502 au début, car le démarrage est long... + +for i in `seq 1 120` +do # La boucle attend le démarrage d'etherpad. Ou 2 minutes. Cette boucle évite simplement un 502 au début, car le démarrage est long... if grep -q "You can access your Etherpad instance at" "$tempfile"; then WARNING echo "Le service $app a démarré correctement." break # Si le log annonce le démarrage d'etherpad, sort de la boucle.