diff --git a/README.md b/README.md index 7853e6f..5934cbe 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,23 @@ + + # Minchat for YunoHost -[![Integration level](https://dash.yunohost.org/integration/minchat.svg)](https://dash.yunohost.org/appci/app/minchat) ![](https://ci-apps.yunohost.org/ci/badges/minchat.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/minchat.maintain.svg) +[![Integration level](https://dash.yunohost.org/integration/minchat.svg)](https://dash.yunohost.org/appci/app/minchat) ![Working status](https://ci-apps.yunohost.org/ci/badges/minchat.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/minchat.maintain.svg) [![Install Minchat with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=minchat) *[Lire ce readme en français.](./README_fr.md)* -> *This package allows you to install Minchat quickly and simply on a YunoHost server. +> *This package allows you to install Minchat quickly and simply on a YunoHost server. If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* ## Overview Minchat is a free minimalist chat application. It is based on [wojtek77/chat](https://github.com/wojtek77/chat), itself based on [Gabriel Nava's tutorial](http://code.tutsplus.com/tutorials/how-to-create-a-simple-web-based-chat-application--net-5931). -**Shipped version:** 1.0 - -## Screenshot -![screenshot](https://raw.githubusercontent.com/chtixof/databank/master/minchat_ynh/minchat_ynh_screenshot01.gif) - -## Features +### Features - Simple web chat: only requires a browser ; no XMPP application. - No need for users to register. Just need the web address. But optional authorisation control. @@ -26,7 +26,16 @@ Minchat is a free minimalist chat application. It is based on [wojtek77/chat](ht Example : `https://yourdomain.org/minchat/?room=Living&name=John` - Optionaly multi room -## Setup +**Shipped version:** 1.0~ynh4 *(:warning: This is the `testing` branch. The [`master` branch](https://github.com/YunoHost-Apps/minchat_ynh/tree/master) used in the catalog is currently on version 1.0\~ynh3.)* + + +## Screenshots + +![Screenshot of Minchat](./doc/screenshots/minchat_ynh_screenshot01.gif) + +## Disclaimers / important information + +### Setup The setup is optional. If you leave it as is, there is a single unnamed room, opened to all users. If you want to customize the access control, edit the file `conf/setup.ini` (if missing, copy it from `conf/sample/setup.ini`). The interesting parameter is `auth` that indicates which user is authorized to which room. @@ -38,50 +47,29 @@ In this example `auth = John:Game,John:Family,Mary:Game,Tim:Family,admin:*,*:Pub - `*:Public` = everybody can acccess the Public room - `*:` = everybody can access the unnamed room -## Hints for users +### Hints for users + - The URLs you send are linked or transformed to images when preceeded by a `!` - If multiple rooms are allowed by the administrator in the `setup.ini`, you can have several tabs opened to different rooms in the same browser. -## Documentation - * Official documentation: Link to the official documentation of this app - * YunoHost documentation: If specific documentation is needed, feel free to contribute. +## Documentation and resources -## YunoHost specific features - -#### Multi-user support - - * Are LDAP and HTTP auth supported? **No** - * Can the app be used by multiple users? **Yes** - -#### Supported architectures - -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/minchat.svg)](https://ci-apps.yunohost.org/ci/apps/minchat/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/minchat.svg)](https://ci-apps-arm.yunohost.org/ci/apps/minchat/) - -## Limitations - -* Any known limitations. - -## Additional information - -* Other info you would like to add about this app. - -## Links - - * Report a bug: https://github.com/YunoHost-Apps/minchat_ynh/issues - * Upstream app repository: https://github.com/wojtek77/chat - * YunoHost website: https://yunohost.org/ - ---- +* Official app website: +* Upstream app code repository: +* YunoHost documentation for this app: +* Report a bug: ## Developer info Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/minchat_ynh/tree/testing). To try the testing branch, please proceed like that. -``` + +``` bash sudo yunohost app install https://github.com/YunoHost-Apps/minchat_ynh/tree/testing --debug or sudo yunohost app upgrade minchat -u https://github.com/YunoHost-Apps/minchat_ynh/tree/testing --debug ``` + +**More info regarding app packaging:** diff --git a/README_fr.md b/README_fr.md new file mode 100644 index 0000000..fc0b0f6 --- /dev/null +++ b/README_fr.md @@ -0,0 +1,75 @@ + + +# Minchat pour YunoHost + +[![Niveau d'intégration](https://dash.yunohost.org/integration/minchat.svg)](https://dash.yunohost.org/appci/app/minchat) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/minchat.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/minchat.maintain.svg) +[![Installer Minchat avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=minchat) + +*[Read this readme in english.](./README.md)* + +> *Ce package vous permet d'installer Minchat 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 + +Minchat is a free minimalist chat application. It is based on [wojtek77/chat](https://github.com/wojtek77/chat), itself based on [Gabriel Nava's tutorial](http://code.tutsplus.com/tutorials/how-to-create-a-simple-web-based-chat-application--net-5931). + +### Features + +- Simple web chat: only requires a browser ; no XMPP application. +- No need for users to register. Just need the web address. But optional authorisation control. +- On connection, the page is fed with the messages of the day +- Args are in the URL as *get* arguments, so that you can share the URL or make it a favorite to avoid filling a form. +Example : `https://yourdomain.org/minchat/?room=Living&name=John` +- Optionaly multi room + +**Version incluse :** 1.0~ynh4 *(:warning: Il s'agit de la branche `testing`. La [branche `master`](https://github.com/YunoHost-Apps/minchat_ynh/tree/master) utilisée dans le catalogue est actuellement en 1.0\~ynh3.)* + + +## Captures d'écran + +![Capture d'écran de Minchat](./doc/screenshots/minchat_ynh_screenshot01.gif) + +## Avertissements / informations importantes + +### Setup + +The setup is optional. If you leave it as is, there is a single unnamed room, opened to all users. If you want to customize the access control, edit the file `conf/setup.ini` (if missing, copy it from `conf/sample/setup.ini`). The interesting parameter is `auth` that indicates which user is authorized to which room. + +In this example `auth = John:Game,John:Family,Mary:Game,Tim:Family,admin:*,*:Public,*:`, +- `John:Game,John:Family` = John can access the Game room, the Family room +- `Mary:Game` = Mary can access the Game room +- `Tim:Family` = Tim can access the Family room +- `admin:*` = admin can access all rooms +- `*:Public` = everybody can acccess the Public room +- `*:` = everybody can access the unnamed room + +### Hints for users + +- The URLs you send are linked or transformed to images when preceeded by a `!` +- If multiple rooms are allowed by the administrator in the `setup.ini`, you can have several tabs opened to different rooms in the same browser. + + +## Documentations et ressources + +* Site officiel de l'app : +* Dépôt de code officiel de l'app : +* Documentation YunoHost pour cette app : +* Signaler un bug : + +## Informations pour les développeurs + +Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/minchat_ynh/tree/testing). + +Pour essayer la branche testing, procédez comme suit. + +``` bash +sudo yunohost app install https://github.com/YunoHost-Apps/minchat_ynh/tree/testing --debug +ou +sudo yunohost app upgrade minchat -u https://github.com/YunoHost-Apps/minchat_ynh/tree/testing --debug +``` + +**Plus d'infos sur le packaging d'applications :** diff --git a/check_process b/check_process index 65b4d92..e4f17af 100644 --- a/check_process +++ b/check_process @@ -14,4 +14,3 @@ upgrade=1 backup_restore=1 multi_instance=1 - port_already_use=0 diff --git a/conf/app.src b/conf/app.src index 947619c..b0f2fe7 100644 --- a/conf/app.src +++ b/conf/app.src @@ -3,4 +3,3 @@ SOURCE_SUM=50e66895cbbda095e02a8a7375ca51c0eb589956f68a223a8217d0f4c1fe1fa6 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true -SOURCE_FILENAME= \ No newline at end of file diff --git a/conf/nginx.conf b/conf/nginx.conf index a76a980..486e582 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -3,11 +3,6 @@ location __PATH__/ { alias __FINALPATH__/ ; - # Force usage of https - if ($scheme = http) { - rewrite ^ https://$server_name$request_uri? permanent; - } - index index.html index.php; try_files $uri $uri/ index.php; diff --git a/doc/.DS_Store b/doc/.DS_Store new file mode 100644 index 0000000..c90376b Binary files /dev/null and b/doc/.DS_Store differ diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md new file mode 100644 index 0000000..2804c90 --- /dev/null +++ b/doc/DESCRIPTION.md @@ -0,0 +1,10 @@ +Minchat is a free minimalist chat application. It is based on [wojtek77/chat](https://github.com/wojtek77/chat), itself based on [Gabriel Nava's tutorial](http://code.tutsplus.com/tutorials/how-to-create-a-simple-web-based-chat-application--net-5931). + +### Features + +- Simple web chat: only requires a browser ; no XMPP application. +- No need for users to register. Just need the web address. But optional authorisation control. +- On connection, the page is fed with the messages of the day +- Args are in the URL as *get* arguments, so that you can share the URL or make it a favorite to avoid filling a form. +Example : `https://yourdomain.org/minchat/?room=Living&name=John` +- Optionaly multi room \ No newline at end of file diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md new file mode 100644 index 0000000..babd841 --- /dev/null +++ b/doc/DISCLAIMER.md @@ -0,0 +1,17 @@ +### Setup + +The setup is optional. If you leave it as is, there is a single unnamed room, opened to all users. If you want to customize the access control, edit the file `conf/setup.ini` (if missing, copy it from `conf/sample/setup.ini`). The interesting parameter is `auth` that indicates which user is authorized to which room. + +In this example `auth = John:Game,John:Family,Mary:Game,Tim:Family,admin:*,*:Public,*:`, +- `John:Game,John:Family` = John can access the Game room, the Family room +- `Mary:Game` = Mary can access the Game room +- `Tim:Family` = Tim can access the Family room +- `admin:*` = admin can access all rooms +- `*:Public` = everybody can acccess the Public room +- `*:` = everybody can access the unnamed room + +### Hints for users + +- The URLs you send are linked or transformed to images when preceeded by a `!` +- If multiple rooms are allowed by the administrator in the `setup.ini`, you can have several tabs opened to different rooms in the same browser. + diff --git a/doc/screenshots/minchat_ynh_screenshot01.gif b/doc/screenshots/minchat_ynh_screenshot01.gif new file mode 100644 index 0000000..c3ed581 Binary files /dev/null and b/doc/screenshots/minchat_ynh_screenshot01.gif differ diff --git a/manifest.json b/manifest.json index ee85eff..2a1b6e3 100644 --- a/manifest.json +++ b/manifest.json @@ -6,26 +6,30 @@ "en": "Minimalist web chat", "fr": "Web chat minimaliste" }, - "version": "1.0~ynh3", + "version": "1.0~ynh4", "url": "https://github.com/wojtek77/chat", + "upstream": { + "license": "MIT", + "website": "https://github.com/wojtek77/chat", + "code": "https://github.com/wojtek77/chat" + }, "license": "MIT", "maintainer": { "name": "chtixof" }, "requirements": { - "yunohost": ">> 4.2.4" + "yunohost": ">> 11.0.9" }, "multi_instance": true, "services": [ "nginx", - "php7.3-fpm" + "php7.4-fpm" ], "arguments": { "install" : [ { "name": "domain", - "type": "domain", - "example": "domain.org" + "type": "domain" }, { "name": "path", diff --git a/scripts/_common.sh b/scripts/_common.sh index d7614e9..4f582df 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -4,7 +4,7 @@ # COMMON VARIABLES #================================================= -YNH_PHP_VERSION="7.3" +YNH_PHP_VERSION="7.4" #================================================= # PERSONAL HELPERS diff --git a/scripts/backup b/scripts/backup index 4defc16..0853e2c 100644 --- a/scripts/backup +++ b/scripts/backup @@ -55,4 +55,4 @@ ynh_backup --src_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" # END OF SCRIPT #================================================= -ynh_print_info --message="Backup script completed for Minchat. (YunoHost will then actually copy those files to the archive)." +ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." diff --git a/scripts/change_url b/scripts/change_url index 41896f4..b85ffc9 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -32,7 +32,7 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= -ynh_script_progression --message="Backing up Minchat before changing its URL..." --weight=1 +ynh_script_progression --message="Backing up the app before changing its URL..." --weight=1 # Backup the current version of the app ynh_backup_before_upgrade @@ -106,4 +106,4 @@ ynh_systemd_action --service_name=nginx --action=reload # END OF SCRIPT #================================================= -ynh_script_progression --message="Change of URL completed for Minchat" --last +ynh_script_progression --message="Change of URL completed for $app" --last diff --git a/scripts/install b/scripts/install index fb06815..48f0530 100644 --- a/scripts/install +++ b/scripts/install @@ -69,14 +69,6 @@ chmod 750 "$final_path" chmod -R o-rwx "$final_path" chown -R $app:www-data "$final_path" -#================================================= -# NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Configuring NGINX web server..." --weight=1 - -# Create a dedicated NGINX config -ynh_add_nginx_config - #================================================= # PHP-FPM CONFIGURATION #================================================= @@ -85,6 +77,14 @@ ynh_script_progression --message="Configuring PHP-FPM..." --weight=1 ynh_add_fpm_config phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +#================================================= +# NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Configuring NGINX web server..." --weight=1 + +# Create a dedicated NGINX config +ynh_add_nginx_config + #================================================= # SETUP SSOWAT #================================================= @@ -107,4 +107,4 @@ ynh_systemd_action --service_name=nginx --action=reload # END OF SCRIPT #================================================= -ynh_script_progression --message="Installation of Minchat completed" --last +ynh_script_progression --message="Installation of $app completed" --last diff --git a/scripts/remove b/scripts/remove index abec0af..9aa1a74 100644 --- a/scripts/remove +++ b/scripts/remove @@ -22,19 +22,11 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) #================================================= # REMOVE APP MAIN DIR #================================================= -ynh_script_progression --message="Removing Minchat main directory..." --weight=2 +ynh_script_progression --message="Removing the app main directory..." --weight=2 # Remove the app directory securely ynh_secure_remove --file="$final_path" -#================================================= -# REMOVE NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Removing NGINX web server configuration..." --weight=1 - -# Remove the dedicated NGINX config -ynh_remove_nginx_config - #================================================= # REMOVE PHP-FPM CONFIGURATION #================================================= @@ -43,6 +35,14 @@ ynh_script_progression --message="Removing PHP-FPM configuration..." --weight=1 # Remove the dedicated PHP-FPM config ynh_remove_fpm_config +#================================================= +# REMOVE NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Removing NGINX web server configuration..." --weight=1 + +# Remove the dedicated NGINX config +ynh_remove_nginx_config + #================================================= # GENERIC FINALIZATION #================================================= @@ -57,4 +57,4 @@ ynh_system_user_delete --username=$app # END OF SCRIPT #================================================= -ynh_script_progression --message="Removal of Minchat completed" --last +ynh_script_progression --message="Removal of $app completed" --last diff --git a/scripts/restore b/scripts/restore index 97a1d90..dbdbbc6 100644 --- a/scripts/restore +++ b/scripts/restore @@ -33,19 +33,11 @@ phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= ynh_script_progression --message="Validating restoration parameters..." --weight=1 -ynh_webpath_available --domain=$domain --path_url=$path_url \ - || ynh_die --message="Path not available: ${domain}${path_url}" test ! -d $final_path \ || ynh_die --message="There is already a directory: $final_path " #================================================= # STANDARD RESTORATION STEPS -#================================================= -# RESTORE THE NGINX CONFIGURATION -#================================================= - -ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" - #================================================= # RECREATE THE DEDICATED USER #================================================= @@ -57,7 +49,7 @@ ynh_system_user_create --username=$app --home_dir="$final_path" #================================================= # RESTORE THE APP MAIN DIR #================================================= -ynh_script_progression --message="Restoring Minchat main directory..." --weight=2 +ynh_script_progression --message="Restoring the app main directory..." --weight=2 ynh_restore_file --origin_path="$final_path" @@ -68,9 +60,17 @@ chown -R $app:www-data "$final_path" #================================================= # RESTORE THE PHP-FPM CONFIGURATION #================================================= +ynh_script_progression --message="Restoring the PHP-FPM configuration..." --weight=1 ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" +#================================================= +# RESTORE THE NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Restoring the NGINX web server configuration..." --weight=1 + +ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" + #================================================= # GENERIC FINALIZATION #================================================= @@ -85,4 +85,4 @@ ynh_systemd_action --service_name=nginx --action=reload # END OF SCRIPT #================================================= -ynh_script_progression --message="Restoration completed for Minchat" --last +ynh_script_progression --message="Restoration completed for $app" --last diff --git a/scripts/upgrade b/scripts/upgrade index 50a512e..6fa86e5 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -26,6 +26,20 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) upgrade_type=$(ynh_check_app_version_changed) +#================================================= +# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP +#================================================= +ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=1 + +# Backup the current version of the app +ynh_backup_before_upgrade +ynh_clean_setup () { + # restore it if the upgrade fails + ynh_restore_upgradebackup +} +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= @@ -44,20 +58,6 @@ if ynh_legacy_permissions_exists; then ynh_app_setting_delete --app=$app --key=is_public fi -#================================================= -# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP -#================================================= -ynh_script_progression --message="Backing up Minchat before upgrading..." --weight=5 - -# Backup the current version of the app -ynh_backup_before_upgrade -ynh_clean_setup () { - # restore it if the upgrade fails - ynh_restore_upgradebackup -} -# Exit if an error occurs during the execution of the script -ynh_abort_if_errors - #================================================= # CREATE DEDICATED USER #================================================= @@ -82,14 +82,6 @@ chmod 750 "$final_path" chmod -R o-rwx "$final_path" chown -R $app:www-data "$final_path" -#================================================= -# NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=1 - -# Create a dedicated NGINX config -ynh_add_nginx_config - #================================================= # PHP-FPM CONFIGURATION #================================================= @@ -98,6 +90,14 @@ ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=1 # Create a dedicated PHP-FPM config ynh_add_fpm_config +#================================================= +# NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=1 + +# Create a dedicated NGINX config +ynh_add_nginx_config + #================================================= # RELOAD NGINX #================================================= @@ -108,4 +108,4 @@ ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT #================================================= -ynh_script_progression --message="Upgrade of Minchat completed" --last +ynh_script_progression --message="Upgrade of $app completed" --last