diff --git a/README.md b/README.md index 5067312..cec0b0c 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in ## Overview Mattermost is a self-hosted, open source instant messaging and service software. It's designed as an internal chat for organizations and businesses, and it's touted as an alternative to Slack. -**Shipped version:** 5.32.1 +**Shipped version:** 5.33.0 ## Screenshots @@ -24,7 +24,7 @@ Mattermost is a self-hosted, open source instant messaging and service software. ## Documentation * Official documentation: https://docs.mattermost.com/ - * YunoHost documentation: https://yunohost.org/#/app_mattermost + * YunoHost documentation: https://yunohost.org/en/app_mattermost ## YunoHost specific features diff --git a/README_fr.md b/README_fr.md index 408ce62..d31da05 100644 --- a/README_fr.md +++ b/README_fr.md @@ -11,7 +11,7 @@ Si vous n'avez pas YunoHost, consultez [le guide](https://yunohost.org/#/install ## Vue d'ensemble Mattermost est un logiciel et un service de messagerie instantanée libre auto-hébergeable. Il est conçu comme un chat interne pour les organisations et les entreprises, et il est présenté comme une alternative à Slack. -**Version incluse :** 5.32.1 +**Version incluse :** 5.33.0 ## Captures d'écran @@ -24,7 +24,7 @@ Mattermost est un logiciel et un service de messagerie instantanée libre auto-h ## Documentation * Documentation officielle : https://docs.mattermost.com/ - * Documentation YunoHost : https://yunohost.org/#/app_mattermost_fr + * Documentation YunoHost : https://yunohost.org/fr/app_mattermost ## Caractéristiques spécifiques YunoHost diff --git a/conf/config.json b/conf/config.json index 1a51505..80df047 100644 --- a/conf/config.json +++ b/conf/config.json @@ -3,7 +3,7 @@ "SiteURL": "__URL__", "WebsocketURL": "", "LicenseFileLocation": "", - "ListenAddress": "__PORT__", + "ListenAddress": "127.0.0.1:__PORT__", "ConnectionSecurity": "", "TLSCertFile": "", "TLSKeyFile": "", @@ -144,7 +144,7 @@ }, "SqlSettings": { "DriverName": "mysql", - "DataSource": "__DB_USER__:__DB_PASS__@tcp(localhost:3306)/__DB_NAME__?charset=utf8mb4,utf8", + "DataSource": "__DB_USER__:__DB_PWD__@tcp(localhost:3306)/__DB_NAME__?charset=utf8mb4,utf8", "DataSourceReplicas": [], "DataSourceSearchReplicas": [], "MaxIdleConns": 20, @@ -185,7 +185,7 @@ "EnableFile": true, "FileLevel": "INFO", "FileJson": true, - "FileLocation": "__LOG__", + "FileLocation": "__LOGS_PATH__", "AdvancedLoggingConfig": "" }, "PasswordSettings": { @@ -201,7 +201,7 @@ "EnableMobileDownload": true, "MaxFileSize": 52428800, "DriverName": "local", - "Directory": "__DATA__", + "Directory": "__DATA_PATH__", "EnablePublicLink": false, "PublicLinkSalt": "", "InitialFont": "nunito-bold.ttf", @@ -224,12 +224,12 @@ "UseChannelInEmailNotifications": false, "RequireEmailVerification": false, "FeedbackName": "Mattermost notification", - "FeedbackEmail": "__FEEDBACK__", + "FeedbackEmail": "no-reply@__DOMAIN__", "ReplyToAddress": "", "FeedbackOrganization": "", "EnableSMTPAuth": false, "SMTPUsername": "mattermost", - "SMTPPassword": "__USER_PW__", + "SMTPPassword": "__SMTP_USER_PWD__", "SMTPServer": "localhost", "SMTPPort": "25", "SMTPServerTimeout": 10, diff --git a/conf/enterprise.src b/conf/enterprise.src index 8b2b950..91e3641 100644 --- a/conf/enterprise.src +++ b/conf/enterprise.src @@ -1,6 +1,6 @@ -SOURCE_URL=https://releases.mattermost.com/5.32.1/mattermost-5.32.1-linux-amd64.tar.gz -SOURCE_SUM=9117ab9777d8453ae8b63f3a008152a2bdc6a638400640a67a0a359acf479a44 +SOURCE_URL=https://releases.mattermost.com/5.33.0/mattermost-5.33.0-linux-amd64.tar.gz +SOURCE_SUM=bee5b5b66306a4dc13531584e1b6d565f238eda87d9d1574189c2baa83495375 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true -SOURCE_FILENAME=mattermost-5.32.1-linux-amd64.tar.gz +SOURCE_FILENAME=mattermost-5.33.0-linux-amd64.tar.gz diff --git a/conf/nginx.conf b/conf/nginx.conf index edbf5b1..9eff7cb 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -34,6 +34,7 @@ location __PATH__/ { #proxy_cache_use_stale timeout; #proxy_cache_lock on; proxy_pass http://127.0.0.1:__PORT__; + # Yunohost addition: redirect HTTP to HTTPS if ($scheme = http) { rewrite ^ https://$server_name$request_uri? permanent; diff --git a/conf/x86-64.src b/conf/x86-64.src index 9fc7b97..1cab570 100644 --- a/conf/x86-64.src +++ b/conf/x86-64.src @@ -1,6 +1,6 @@ -SOURCE_URL=https://releases.mattermost.com/5.32.1/mattermost-team-5.32.1-linux-amd64.tar.gz -SOURCE_SUM=86fd99e49b6ed687004d46813e51fd91e761a87dff58fa2878e752728fac555a +SOURCE_URL=https://releases.mattermost.com/5.33.0/mattermost-team-5.33.0-linux-amd64.tar.gz +SOURCE_SUM=ea9d01018af02016dd4fab0ba07c634fbaa16aaf9435feb99dee225b4e1992ac SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true -SOURCE_FILENAME=mattermost-team-5.32.1-linux-amd64.tar.gz +SOURCE_FILENAME=mattermost-team-5.33.0-linux-amd64.tar.gz diff --git a/manifest.json b/manifest.json index 8dfa04a..d2d1cc4 100644 --- a/manifest.json +++ b/manifest.json @@ -19,36 +19,24 @@ "mysql" ], "requirements": { - "yunohost": ">= 3.8.1" + "yunohost": ">= 4.1.7" }, "arguments": { "install" : [ { "name": "domain", "type": "domain", - "ask": { - "en": "Choose a domain for Mattermost", - "fr": "Choisissez un domaine pour Mattermost" - }, "example": "domain.org" }, { "name": "path", "type": "path", - "ask": { - "en": "Choose a path for Mattermost", - "fr": "Choisissez un chemin pour Mattermost" - }, "example": "/mattermost", "default": "/chat" }, { "name": "is_public", "type": "boolean", - "ask": { - "en": "Is it a public application?", - "fr": "Est-ce une application publique ?" - }, "help": { "en": "If enabled, Mattermost will be accessible by the user without a YunoHost account. This can be changed later via the webadmin.", "fr": "Si cette case est cochée, Mattermost sera accessible par l'utilisateur sans compte YunoHost. Vous pourrez changer ceci plus tard via l’interface d’administration." @@ -58,19 +46,11 @@ { "name": "admin", "type": "user", - "ask": { - "en": "Choose an admin user", - "fr": "Choisissez l'administrateur" - }, "example": "johndoe" }, { "name": "password", "type": "password", - "ask": { - "en": "Set the administrator password", - "fr": "Définissez le mot de passe administrateur" - }, "example": "Choose a password" }, { diff --git a/scripts/backup b/scripts/backup index 71939c6..941ad87 100755 --- a/scripts/backup +++ b/scripts/backup @@ -42,7 +42,7 @@ ynh_backup --src_path="$final_path" # BACKUP THE APP DATA #================================================= -ynh_backup --src_path="/home/yunohost.app/$app" +ynh_backup --src_path="/home/yunohost.app/$app" --is_big #================================================= # BACKUP THE NGINX CONFIGURATION diff --git a/scripts/change_url b/scripts/change_url index 12fa15a..81f256a 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -122,7 +122,7 @@ ynh_store_file_checksum --file="$final_path/config/config.json" ynh_script_progression --message="Starting a systemd service..." --weight=2 # Start a systemd service -ynh_systemd_action --service_name=$app --action=start --log_path="systemd" --line_match="Started Mattermost" +ynh_systemd_action --service_name=$app --action=start --log_path=systemd --line_match="Started Mattermost" #================================================= # RELOAD NGINX diff --git a/scripts/install b/scripts/install index bf2f82c..8144413 100644 --- a/scripts/install +++ b/scripts/install @@ -54,7 +54,6 @@ ynh_script_progression --message="Storing installation settings..." --weight=6 ynh_app_setting_set --app=$app --key=domain --value=$domain ynh_app_setting_set --app=$app --key=path --value=$path_url -ynh_app_setting_set --app=$app --key=is_public --value=$is_public ynh_app_setting_set --app=$app --key=admin --value=$admin ynh_app_setting_set --app=$app --key=password --value=$password ynh_app_setting_set --app=$app --key=language --value=$language @@ -138,21 +137,10 @@ ynh_use_logrotate #================================================= ynh_script_progression --message="Modifying a config file..." --weight=3 -cp ../conf/config.json $final_path/config/config.json +smtp_user_pwd=$(ynh_string_random --length=24) +url=https://$domain$path_url -# Main config File -ynh_replace_string --match_string="__URL__" --replace_string="https://$domain$path_url" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__PORT__" --replace_string="127.0.0.1:$port" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__DB_NAME__" --replace_string="$db_name" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__DB_USER__" --replace_string="$db_user" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__DB_PASS__" --replace_string="$db_pwd" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__DATA__" --replace_string="$data_path" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__FEEDBACK__" --replace_string="no-reply@${domain}" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__USER_PW__" --replace_string="$(ynh_string_random --length=24)" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__LOG__" --replace_string="$logs_path" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__LANGUAGE__" --replace_string="$language" --target_file="$final_path/config/config.json" - -ynh_store_file_checksum --file="$final_path/config/config.json" +ynh_add_config --template="../conf/config.json" --destination="$final_path/config/config.json" #================================================= # SECURE FILES AND DIRECTORIES @@ -203,7 +191,7 @@ yunohost service add $app --description="Collaboration platform built for develo ynh_script_progression --message="Starting a systemd service..." --weight=2 # Start a systemd service -ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Started Mattermost" +ynh_systemd_action --service_name=$app --action=start --log_path=systemd --line_match="Started Mattermost" #================================================= # SETUP SSOWAT diff --git a/scripts/remove b/scripts/remove index 46b9cc8..783d0d0 100755 --- a/scripts/remove +++ b/scripts/remove @@ -27,7 +27,7 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) # REMOVE SERVICE FROM ADMIN PANEL #================================================= -# Remove the service from the list of services known by Yunohost (added from `yunohost service add`) +# Remove the service from the list of services known by YunoHost (added from `yunohost service add`) if ynh_exec_warn_less yunohost service status $app >/dev/null then ynh_script_progression --message="Removing $app service..." --weight=1 @@ -58,7 +58,8 @@ ynh_script_progression --message="Removing $app main directory..." --weight=6 # Remove the app directory securely ynh_secure_remove --file="$final_path" -ynh_secure_remove --file="/home/yunohost.app/$app" +# We don't delete this dir as it is marked as is-big +# ynh_secure_remove --file="/home/yunohost.app/$app" #================================================= # REMOVE NGINX CONFIGURATION diff --git a/scripts/restore b/scripts/restore index 546890c..6ece5f9 100644 --- a/scripts/restore +++ b/scripts/restore @@ -70,7 +70,7 @@ ynh_system_user_create --username=$app # RESTORE THE APP DATA #================================================= -ynh_restore_file --origin_path="/home/yunohost.app/$app" +ynh_restore_file --origin_path="/home/yunohost.app/$app" --not_mandatory chown -R $app: "/home/yunohost.app/$app" #================================================= @@ -115,7 +115,7 @@ yunohost service add $app --description="Collaboration platform built for develo ynh_script_progression --message="Starting a systemd service..." --weight=2 # Start a systemd service -ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Started Mattermost" +ynh_systemd_action --service_name=$app --action=start --log_path=systemd --line_match="Started Mattermost" #================================================= # RESTORE THE LOGROTATE CONFIGURATION diff --git a/scripts/upgrade b/scripts/upgrade index d1df4cc..ac00303 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -28,7 +28,6 @@ app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get --app=$app --key=domain) path_url=$(ynh_app_setting_get --app=$app --key=path) -is_public=$(ynh_app_setting_get --app=$app --key=is_public) port=$(ynh_app_setting_get --app=$app --key=port) final_path=$(ynh_app_setting_get --app=$app --key=final_path) language=$(ynh_app_setting_get --app=$app --key=language) @@ -47,14 +46,6 @@ upgrade_type=$(ynh_check_app_version_changed) # ENSURE DOWNWARD COMPATIBILITY #================================================= -# Convert is_public from "Yes"/"No" to 1 / 0 -if [[ $is_public == "Yes" ]]; then - is_public=1 -elif [[ $is_public == "No" ]]; then - is_public=0 -fi -ynh_app_setting_set --app=$app --key=is_public --value=$is_public - # Save the port used if not present if [ -z "$port" ]; then port=8065 @@ -78,6 +69,13 @@ if [ -z "$db_name" ]; then ynh_app_setting_set --app=$app --key=db_name --value=$db_name fi +# Cleaning legacy permissions +if ynh_legacy_permissions_exists; then + ynh_legacy_permissions_delete_all + + ynh_app_setting_delete --app=$app --key=is_public +fi + #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= @@ -155,22 +153,6 @@ ynh_script_progression --message="Upgrading systemd configuration..." --weight=2 # Create a dedicated systemd config ynh_add_systemd_config -#================================================= -# SPECIFIC UPGRADE STEPS -#================================================= - -# # Fix log FileLocation path (changed in Mattermost 3.8, makes Mattermost >= 4.2 crash) -# # https://docs.mattermost.com/administration/changelog.html#release-v3-8-3 -# ynh_replace_string --match_string "\"FileLocation\": \"/var/log/mattermost.log\"" --replace_string "\"FileLocation\": \"/var/log\"" --target_file "$config_file" - -# # Move log files to a directory (rather than directly in /var/log) -# # See https://github.com/YunoHost-Apps/mattermost_ynh/issues/61 -# mkdir -p "$logs_path" -# ynh_replace_string --match_string "\"FileLocation\": \"/var/log\"" --replace_string "\"FileLocation\": \"$logs_path\"" --target_file "$config_file" -# if [ -f "/var/log/${app}.log" ]; then -# mv "/var/log/${app}.log" "$logs_path/" -# fi - #================================================= # CREATE DIRECTORY FOR DATA #================================================= @@ -212,7 +194,7 @@ yunohost service add $app --description="Collaboration platform built for develo ynh_script_progression --message="Starting a systemd service..." --weight=2 # Start a systemd service -ynh_systemd_action --service_name=$app --action=start --log_path="systemd" --line_match="Started Mattermost" +ynh_systemd_action --service_name=$app --action=start --log_path=systemd --line_match="Started Mattermost" #================================================= # RELOAD NGINX