diff --git a/check_process b/check_process index db9d51a..11c5a19 100644 --- a/check_process +++ b/check_process @@ -2,8 +2,8 @@ ; Manifest domain="domain.tld" path="/path" - nextclouddomain="domain.tld" is_public=1 + nextclouddomain="domain.tld" ; Checks pkg_linter=1 setup_sub_dir=1 @@ -15,6 +15,7 @@ upgrade=1 from_commit=eca1121ff00c59325227163109d11c46bbff8e03 backup_restore=1 multi_instance=0 + port_already_use=0 change_url=1 ;;; Options Email= diff --git a/doc/.DS_Store b/doc/.DS_Store deleted file mode 100644 index c90376b..0000000 Binary files a/doc/.DS_Store and /dev/null differ diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md new file mode 100644 index 0000000..7517adc --- /dev/null +++ b/doc/DESCRIPTION.md @@ -0,0 +1,12 @@ +OnlyOffice Document Server is an online office suite comprising viewers and editors for texts, spreadsheets and presentations, fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time. + +Online collaborative edition of OnlyOffice documents requires: +1. a server part, with two installation options: + 1. OnlyOffice Document Server packaged for YunoHost. + 2. The [Community Document Server for Nextcloud](https://apps.nextcloud.com/apps/documentserver_community) + +2. a client part, such as: + 1. The [ONLYOFFICE connector for Nextcloud](https://apps.nextcloud.com/apps/onlyoffice) + 2. The [ONLYOFFICE Desktop Editors](https://www.onlyoffice.com/fr/download-desktop.aspx) + +The Nextcloud addicts may follow [this tutorial](https://github.com/YunoHost-Apps/nextcloud_ynh#configure-onlyoffice-integration) to install (1.ii) and (2.i) on one Nextcloud instance. However, performance and architecture are limited. diff --git a/doc/DESCRIPTION_fr.md b/doc/DESCRIPTION_fr.md new file mode 100644 index 0000000..f1b78ca --- /dev/null +++ b/doc/DESCRIPTION_fr.md @@ -0,0 +1,12 @@ +OnlyOffice Document Server est une suite bureautique en ligne comprenant des visualiseurs et des éditeurs de textes, feuilles de calcul et présentations, entièrement compatible avec les formats Office Open XML: .docx, .xlsx, .pptx et permettant l'édition collaborative en temps réel. + +L'édition collaborative en ligne des documents OnlyOffice nécessite : +1. une partie serveur, avec deux options d'installation : + 1. OnlyOffice Document Server packagé pour YunoHost. + 2. Le [Community Document Server pour Nextcloud](https://apps.nextcloud.com/apps/documentserver_community). + +2. une partie client, telle que : + 1. [ONLYOFFICE connector pour Nextcloud](https://apps.nextcloud.com/apps/onlyoffice) + 2. [ONLYOFFICE Desktop Editors](https://www.onlyoffice.com/fr/download-desktop.aspx) + +Les utilisateurs de Nextcloud peuvent suivre [ce tutoriel](https://github.com/YunoHost-Apps/nextcloud_ynh/blob/testing/README_fr.md#configurer-lint%C3%A9gration-donlyoffice) pour installer le Community Document Server (1.ii) et ONLYOFFICE connector (2.i) sur une instance Nextcloud. Cependant, les performances et l'architecture sont limitées. diff --git a/manifest.json b/manifest.json index e9e2c88..b296ef8 100644 --- a/manifest.json +++ b/manifest.json @@ -16,8 +16,8 @@ }, "license": "GPL-3.0-or-later", "maintainer": { - "name": "liberodark", - "email": "liberodark@gmail.com" + "name": "", + "email": "" }, "requirements": { "yunohost": ">= 4.3.0" @@ -27,7 +27,7 @@ "nginx" ], "arguments": { - "install" : [ + "install": [ { "name": "domain", "type": "domain", @@ -47,6 +47,15 @@ }, "default": "/onlyoffice" }, + { + "name": "is_public", + "type": "boolean", + "help": { + "en": "You will only be able to connect OnlyOffice to Nextcloud if both apps are public!", + "fr": "Nextcloud et OnlyOffice doivent être des applications publiques si vous voulez les connecter !" + }, + "default": true + }, { "name": "nextclouddomain", "type": "string", @@ -60,15 +69,6 @@ "fr": "Installez le connecteur OnlyOffice pour éditer des documents dans Nextcloud." }, "default": "yunohost.domain/nextcloud" - }, - { - "name": "is_public", - "type": "boolean", - "help": { - "en": "You will only be able to connect OnlyOffice to Nextcloud if both apps are public!", - "fr": "Nextcloud et OnlyOffice doivent être des applications publiques si vous voulez les connecter !" - }, - "default": true } ] } diff --git a/scripts/backup b/scripts/backup index aa0bf53..79170ba 100644 --- a/scripts/backup +++ b/scripts/backup @@ -6,7 +6,7 @@ # IMPORT GENERIC HELPERS #================================================= -#Keep this path for calling _common.sh inside the execution's context of backup and restore scripts +# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers @@ -33,14 +33,6 @@ db_name=$(ynh_app_setting_get --app=$app --key=db_name) #================================================= ynh_print_info --message="Declaring files to be backed up..." -#================================================= -# BACKUP THE APP MAIN DIR -#================================================= - -ynh_backup --src_path="$final_path" - -#================================================= -# STANDARD BACKUP STEPS #================================================= # BACKUP THE NGINX CONFIGURATION #================================================= diff --git a/scripts/change_url b/scripts/change_url index 3371f26..d3fdc67 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -27,13 +27,16 @@ app=$YNH_APP_INSTANCE_NAME ynh_script_progression --message="Loading installation settings..." # Needed for helper "ynh_add_nginx_config" +final_path=$(ynh_app_setting_get --app=$app --key=final_path) + +# Add settings here as needed by your application port=$(ynh_app_setting_get --app=$app --key=port) nextclouddomain=$(ynh_app_setting_get --app=$app --key=nextclouddomain) #================================================= -# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP +# BACKUP BEFORE CHANGE URL THEN ACTIVE TRAP #================================================= -ynh_script_progression --message="Backing up OnlyOffice before changing its URL (may take a while)..." +ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..." # Backup the current version of the app ynh_backup_before_upgrade @@ -41,7 +44,7 @@ ynh_clean_setup () { # Remove the new domain config file, the remove script won't do it as it doesn't know yet its location. ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" - # restore it if the upgrade fails + # Restore it if the upgrade fails ynh_restore_upgradebackup } # Exit if an error occurs during the execution of the script diff --git a/scripts/install b/scripts/install index 866c5fe..499f699 100644 --- a/scripts/install +++ b/scripts/install @@ -64,14 +64,6 @@ ynh_script_progression --message="Finding an available port..." port=$(ynh_find_port --port=8095) ynh_app_setting_set --app=$app --key=port --value=$port -#================================================= -# CREATE DEDICATED USER -#================================================= -ynh_script_progression --message="Configuring system user..." - -# Create a system user -ynh_system_user_create --username=$app - #================================================= # INSTALL DEPENDENCIES #================================================= @@ -79,6 +71,14 @@ ynh_script_progression --message="Installing dependencies..." ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies +#================================================= +# CREATE DEDICATED USER +#================================================= +ynh_script_progression --message="Configuring system user..." + +# Create a system user +ynh_system_user_create --username=$app --home_dir="$final_path" + #================================================= # CREATE A POSTGRESQL DATABASE #================================================= @@ -132,22 +132,13 @@ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5 2>/de ynh_install_extra_app_dependencies --repo="https://download.onlyoffice.com/repo/debian squeeze main" --package=$extra_dependencies 2>/dev/null #================================================= -# MODIFY A CONFIG FILE +# ADD A CONFIGURATION #================================================= -ynh_script_progression --message="Modifying a config file..." +ynh_script_progression --message="Adding a configuration file..." ynh_replace_string --match_string="\"rejectUnauthorized\": true" --replace_string="\"rejectUnauthorized\": false" --target_file="/etc/onlyoffice/documentserver/default.json" - -#================================================= -# STORE THE CONFIG FILE CHECKSUM -#================================================= -ynh_script_progression --message="Storing the config file checksum..." - -# Calculate and store the config file checksum into the app settings ynh_store_file_checksum --file="/etc/onlyoffice/documentserver/default.json" -#================================================= -# GENERIC FINALIZATION #================================================= # SECURE FILES AND DIRECTORIES #================================================= @@ -158,9 +149,11 @@ chmod -R o-rwx "$final_path" chown -R ds:ds "$final_path" #================================================= -# RELOAD ONLYOFFICE +# GENERIC FINALIZATION #================================================= -ynh_script_progression --message="Reloading OnlyOffice..." +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." supervisorctl reload @@ -181,6 +174,8 @@ ynh_script_progression --message="Configuring permissions..." # Make app public if necessary if [ $is_public -eq 1 ] then + # Everyone can access the app. + # The "main" permission is automatically created before the install script. ynh_permission_update --permission="main" --add="visitors" fi diff --git a/scripts/remove b/scripts/remove index 4cced44..ece5530 100644 --- a/scripts/remove +++ b/scripts/remove @@ -63,7 +63,7 @@ apt-key del "E09C A29F 6E17 8040 EF22 B409 8320 CA65 CB2D E8E5" 2>/dev/null #================================================= # REMOVE APP MAIN DIR #================================================= -ynh_script_progression --message="Removing OnlyOffice main directory..." +ynh_script_progression --message="Removing app main directory..." # Remove the app directory securely ynh_secure_remove --file="$final_path" @@ -79,9 +79,9 @@ ynh_remove_nginx_config #================================================= # SPECIFIC REMOVE #================================================= -# REMOVE FILE +# REMOVE VARIOUS FILES #================================================= -ynh_script_progression --message="Removing file..." +ynh_script_progression --message="Removing various files..." # Remove a directory securely ynh_secure_remove --file="/etc/onlyoffice" diff --git a/scripts/restore b/scripts/restore index 6769bc0..cbbf2c0 100644 --- a/scripts/restore +++ b/scripts/restore @@ -6,7 +6,7 @@ # IMPORT GENERIC HELPERS #================================================= -#Keep this path for calling _common.sh inside the execution's context of backup and restore scripts +# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers @@ -25,8 +25,8 @@ ynh_script_progression --message="Loading settings..." app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get --app=$app --key=domain) -final_path=$(ynh_app_setting_get --app=$app --key=final_path) path_url=$(ynh_app_setting_get --app=$app --key=path) +final_path=$(ynh_app_setting_get --app=$app --key=final_path) db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_user=$db_name db_pwd=$(ynh_app_setting_get --app=$app --key=psqlpwd) @@ -43,21 +43,16 @@ test ! -d $final_path \ #================================================= # STANDARD RESTORATION STEPS -#================================================= -# RESTORE THE NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Restoring the NGINX configuration..." - -ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" - #================================================= # RECREATE THE DEDICATED USER #================================================= ynh_script_progression --message="Recreating the dedicated system user..." # Create the dedicated user (if not existing) -ynh_system_user_create --username=$app +ynh_system_user_create --username=$app --home_dir="$final_path" +#================================================= +# SPECIFIC RESTORATION #================================================= # REINSTALL DEPENDENCIES #================================================= @@ -67,7 +62,12 @@ ynh_script_progression --message="Reinstalling dependencies..." ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies #================================================= -# SPECIFIC RESTORATION +# RESTORE THE NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Restoring the NGINX configuration..." + +ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" + #================================================= # RESTORE THE POSTGRESQL DATABASE #================================================= @@ -116,8 +116,6 @@ ynh_script_progression --message="Generating fonts..." /usr/bin/documentserver-generate-allfonts.sh -#================================================= -# GENERIC FINALIZATION #================================================= # SECURE FILES AND DIRECTORIES #================================================= @@ -128,9 +126,11 @@ chmod -R o-rwx "$final_path" chown -R ds:ds "$final_path" #================================================= -# RELOAD ONLYOFFICE +# GENERIC FINALIZATION #================================================= -ynh_script_progression --message="Reloading OnlyOffice..." +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." supervisorctl reload diff --git a/scripts/upgrade b/scripts/upgrade index c227292..09a445f 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -25,20 +25,29 @@ db_pwd=$(ynh_app_setting_get --app=$app --key=psqlpwd) port=$(ynh_app_setting_get --app=$app --key=port) nextclouddomain=$(ynh_app_setting_get --app=$app --key=nextclouddomain) +#================================================= +# CHECK VERSION +#================================================= +ynh_script_progression --message="Checking version..." + +upgrade_type=$(ynh_check_app_version_changed) + #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= -ynh_script_progression --message="Backing up OnlyOffice before upgrading (may take a while)..." +ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." # Backup the current version of the app ynh_backup_before_upgrade ynh_clean_setup () { - # restore it if the upgrade fails + # Restore it if the upgrade fails ynh_restore_upgradebackup } # Exit if an error occurs during the execution of the script ynh_abort_if_errors +#================================================= +# STANDARD UPGRADE STEPS #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= @@ -78,7 +87,7 @@ ynh_secure_remove --file="/etc/apt/sources.list.d/nodesource.list" ynh_script_progression --message="Making sure dedicated system user exists..." # Create a dedicated user (if not existing) -ynh_system_user_create --username=$app +ynh_system_user_create --username=$app --home_dir="$final_path" #================================================= # UPGRADE DEPENDENCIES @@ -87,12 +96,10 @@ ynh_script_progression --message="Upgrading dependencies..." ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies -#================================================= -# STANDARD UPGRADE STEPS #================================================= # NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Configuring NGINX web server..." +ynh_script_progression --message="Upgrading NGINX web server configuration..." if [ "$path_url" = "/" ]; then ynh_replace_string --match_string="__SUB_PATH__" --replace_string="" --target_file="../conf/nginx.conf" @@ -129,9 +136,9 @@ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5 ynh_install_extra_app_dependencies --repo="https://download.onlyoffice.com/repo/debian squeeze main" --package=$extra_dependencies #================================================= -# MODIFY A CONFIG FILE +# UPDATE A CONFIG FILE #================================================= -ynh_script_progression --message="Modifying a config file..." +ynh_script_progression --message="Updating a configuration file..." ynh_backup_if_checksum_is_different --file="/etc/onlyoffice/documentserver/default.json" @@ -147,8 +154,6 @@ ynh_script_progression --message="Generating fonts..." /usr/bin/documentserver-generate-allfonts.sh -#================================================= -# GENERIC FINALIZATION #================================================= # SECURE FILES AND DIRECTORIES #================================================= @@ -159,9 +164,11 @@ chmod -R o-rwx "$final_path" chown -R ds:ds "$final_path" #================================================= -# RELOAD ONLYOFFICE +# GENERIC FINALIZATION #================================================= -ynh_script_progression --message="Reloading OnlyOffice..." +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." supervisorctl reload