From d1c17d82d0d0b906df1888cf9678feea80a3a046 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Thu, 20 May 2021 18:23:20 +0200 Subject: [PATCH 1/6] Add redis --- check_process | 13 ++++--------- conf/.env.example | 15 ++++++++++++--- manifest.json | 4 ++-- scripts/_common.sh | 2 ++ scripts/install | 39 +++++++++++++++++++++------------------ scripts/remove | 8 ++++++++ scripts/restore | 18 +++++++++++------- scripts/upgrade | 23 +++++++++++++---------- 8 files changed, 73 insertions(+), 49 deletions(-) diff --git a/check_process b/check_process index e44602d..77c5372 100755 --- a/check_process +++ b/check_process @@ -1,14 +1,9 @@ -# See here for more information -# https://github.com/YunoHost/package_check#syntax-check_process-file - -# Move this file from check_process.default to check_process when you have filled it. - ;; Test complet ; Manifest - domain="domain.tld" (DOMAIN) - path="/path" (PATH) - is_public=1 (PUBLIC|public=1|private=0) - admin="john" (USER) + domain="domain.tld" + path="/path" + is_public=1 + admin="john" password="pass" ; Checks pkg_linter=1 diff --git a/conf/.env.example b/conf/.env.example index 9b8ee6c..da0c7af 100644 --- a/conf/.env.example +++ b/conf/.env.example @@ -10,19 +10,28 @@ # - go to `/cp-install` to complete installation #-------------------------------------------------------------------- +#-------------------------------------------------------------------- # Instance configuration +#-------------------------------------------------------------------- app.baseURL="https://__DOMAIN__" app.mediaBaseURL="https://__DOMAIN__" app.adminGateway="cp-admin" app.authGateway="cp-auth" +#-------------------------------------------------------------------- # Database configuration +#-------------------------------------------------------------------- database.default.hostname="localhost" database.default.database="__DB_NAME__" database.default.username="__DB_NAME__" database.default.password="__DB_PWD__" database.default.DBPrefix="cp_" -# Cache configuration (advanced) -# Keep as is if you don't know what this means -cache.handler="file" +#-------------------------------------------------------------------- +# Redis configuration +#-------------------------------------------------------------------- +cache.handler="redis" +cache.redis.host="127.0.0.1" +cache.redis.password=null +cache.redis.port=6379 +cache.redis.database=0 diff --git a/manifest.json b/manifest.json index d233dcd..0620454 100755 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Hosting platform made for podcasters", "fr": "Plateforme d'hébergement conçue pour les podcasteurs" }, - "version": "1.0.0-57~ynh1", + "version": "1.0.0-57~ynh2", "url": "https://podlibre.org/", "license": "GPL-3.0-only", "maintainer": { @@ -14,7 +14,7 @@ "email": "" }, "requirements": { - "yunohost": ">= 4.1.7" + "yunohost": ">= 4.2.4" }, "multi_instance": true, "services": [ diff --git a/scripts/_common.sh b/scripts/_common.sh index dc4f14e..83aebb9 100755 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -8,6 +8,8 @@ YNH_PHP_VERSION="7.3" extra_php_dependencies="php${YNH_PHP_VERSION}-mysql php${YNH_PHP_VERSION}-gd php${YNH_PHP_VERSION}-intl php${YNH_PHP_VERSION}-curl php${YNH_PHP_VERSION}-mbstring php${YNH_PHP_VERSION}-json php${YNH_PHP_VERSION}-xml php${YNH_PHP_VERSION}-mysqlnd" +pkg_dependencies="redis-server redis-tools" + #================================================= # PERSONAL HELPERS #================================================= diff --git a/scripts/install b/scripts/install index c4ed278..db5bd60 100755 --- a/scripts/install +++ b/scripts/install @@ -49,6 +49,21 @@ 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=admin --value=$admin +#================================================= +# CREATE DEDICATED USER +#================================================= +ynh_script_progression --message="Configuring system user..." --weight=1 + +# Create a system user +ynh_system_user_create --username=$app --home_dir=$final_path + +#================================================= +# INSTALL DEPENDENCIES +#================================================= +ynh_script_progression --message="Installing dependencies..." --weight=1 + +ynh_install_app_dependencies $pkg_dependencies + #================================================= # CREATE A MYSQL DATABASE #================================================= @@ -59,14 +74,6 @@ db_user=$db_name ynh_app_setting_set --app=$app --key=db_name --value=$db_name ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name -#================================================= -# CREATE DEDICATED USER -#================================================= -ynh_script_progression --message="Configuring system user..." --weight=1 - -# Create a system user -ynh_system_user_create --username=$app --home_dir=$final_path - #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= @@ -76,6 +83,10 @@ ynh_app_setting_set --app=$app --key=final_path --value=$final_path # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$final_path" +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + #================================================= # NGINX CONFIGURATION #================================================= @@ -101,6 +112,8 @@ phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) ynh_script_progression --message="Configuring Castopod..." --weight=1 ynh_add_config --template="../conf/.env.example" --destination="$final_path/.env" +chmod 600 $final_path/.env +chown $app:www-data "$final_path/.env" #================================================= # SETUP A CRON @@ -109,16 +122,6 @@ ynh_script_progression --message="Setuping a cron..." ynh_add_config --template="../conf/cron" --destination="/etc/cron.d/$app" -#================================================= -# GENERIC FINALIZATION -#================================================= -# SECURE FILES AND DIRECTORIES -#================================================= - -# Set permissions to app files -chown -R $app: $final_path -chmod 600 $final_path/.env - #================================================= # SETUP APPLICATION WITH CURL #================================================= diff --git a/scripts/remove b/scripts/remove index f0dd710..884ea16 100755 --- a/scripts/remove +++ b/scripts/remove @@ -29,6 +29,14 @@ ynh_script_progression --message="Removing the MySQL database..." --weight=1 # Remove a database if it exists, along with the associated user ynh_mysql_remove_db --db_user=$db_user --db_name=$db_name +#================================================= +# REMOVE DEPENDENCIES +#================================================= +ynh_script_progression --message="Removing dependencies..." --weight=1 + +# Remove metapackage and its dependencies +ynh_remove_app_dependencies + #================================================= # REMOVE APP MAIN DIR #================================================= diff --git a/scripts/restore b/scripts/restore index 563c0c2..ce267f6 100755 --- a/scripts/restore +++ b/scripts/restore @@ -67,13 +67,9 @@ ynh_script_progression --message="Restoring the app main directory..." --weight= ynh_restore_file --origin_path="$final_path" -#================================================= -# RESTORE USER RIGHTS -#================================================= - -# Set permissions to app files -chown -R $app:$app $final_path -chmod 600 $final_path/.env +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" #================================================= # RESTORE THE PHP-FPM CONFIGURATION @@ -81,6 +77,14 @@ chmod 600 $final_path/.env ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" +#================================================= +# REINSTALL DEPENDENCIES +#================================================= +ynh_script_progression --message="Reinstalling dependencies..." --weight=1 + +# Define and install dependencies +ynh_install_app_dependencies $pkg_dependencies + #================================================= # RESTORE THE MYSQL DATABASE #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 4d00011..412afcf 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -88,6 +88,10 @@ then ynh_setup_source --dest_dir="$final_path" fi +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + #================================================= # NGINX CONFIGURATION #================================================= @@ -96,6 +100,13 @@ ynh_script_progression --message="Upgrading NGINX web server configuration..." - # Create a dedicated NGINX config ynh_add_nginx_config +#================================================= +# UPGRADE DEPENDENCIES +#================================================= +ynh_script_progression --message="Upgrading dependencies..." --weight=1 + +ynh_install_app_dependencies $pkg_dependencies + #================================================= # PHP-FPM CONFIGURATION #================================================= @@ -110,6 +121,8 @@ ynh_add_fpm_config --package="$extra_php_dependencies" ynh_script_progression --message="Configuring Castopod..." --weight=1 ynh_add_config --template="../conf/.env.example" --destination="$final_path/.env" +chmod 600 $final_path/.env +chown $app:www-data "$final_path/.env" #================================================= # SETUP CRON @@ -118,16 +131,6 @@ ynh_script_progression --message="Setuping cron..." ynh_add_config --template="../conf/cron" --destination="/etc/cron.d/$app" -#================================================= -# GENERIC FINALIZATION -#================================================= -# SECURE FILES AND DIRECTORIES -#================================================= - -# Set permissions to app files -chown -R $app: $final_path -chmod 600 $final_path/.env - #================================================= # RELOAD NGINX #================================================= From 26b743ccf564b193c6be929179844bcbb44874cd Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Thu, 20 May 2021 18:44:58 +0200 Subject: [PATCH 2/6] Update check_process --- check_process | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/check_process b/check_process index 77c5372..6846c14 100755 --- a/check_process +++ b/check_process @@ -14,7 +14,7 @@ setup_public=1 upgrade=1 #1.0.0 alpha.41 - upgrade=1 from_commit=596edabf2e972e3183cd6cff93f0e566f570f855 + upgrade=1 from_commit=a43b9e3d66163252d1ea83a2924179ec777056f3 backup_restore=1 multi_instance=1 change_url=1 @@ -22,6 +22,6 @@ Email= Notification=none ;;; Upgrade options - ; commit=596edabf2e972e3183cd6cff93f0e566f570f855 - name=1.0.0 alpha.55 + ; commit=a43b9e3d66163252d1ea83a2924179ec777056f3 + name=Merge pull request #24 from YunoHost-Apps/testing manifest_arg=domain=DOMAIN&path=PATH&admin=USER&language=fr&is_public=1&password=pass& From 881c4239559cd646c2001aa9006258dfaa491bfd Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Thu, 20 May 2021 19:18:55 +0200 Subject: [PATCH 3/6] Set a random redis number --- conf/.env.example | 2 +- scripts/install | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/conf/.env.example b/conf/.env.example index da0c7af..d3a70b1 100644 --- a/conf/.env.example +++ b/conf/.env.example @@ -34,4 +34,4 @@ cache.handler="redis" cache.redis.host="127.0.0.1" cache.redis.password=null cache.redis.port=6379 -cache.redis.database=0 +cache.redis.database=__REDIS_NUMBER__ diff --git a/scripts/install b/scripts/install index db5bd60..21db5d7 100755 --- a/scripts/install +++ b/scripts/install @@ -111,6 +111,7 @@ phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= ynh_script_progression --message="Configuring Castopod..." --weight=1 +redis_number=$(shuf -i 0-15 -n 1) ynh_add_config --template="../conf/.env.example" --destination="$final_path/.env" chmod 600 $final_path/.env chown $app:www-data "$final_path/.env" From 8076bec7d1f2f4f75b17c04966094c7189528743 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Thu, 20 May 2021 20:45:17 +0200 Subject: [PATCH 4/6] Update install --- scripts/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install b/scripts/install index 21db5d7..ea993d1 100755 --- a/scripts/install +++ b/scripts/install @@ -111,7 +111,7 @@ phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= ynh_script_progression --message="Configuring Castopod..." --weight=1 -redis_number=$(shuf -i 0-15 -n 1) +redis_number=$(( $YNH_APP_INSTANCE_NUMBER - 1 )) ynh_add_config --template="../conf/.env.example" --destination="$final_path/.env" chmod 600 $final_path/.env chown $app:www-data "$final_path/.env" From 4d3480233e52fac59553ee577cc8297821a10950 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Thu, 20 May 2021 20:55:38 +0200 Subject: [PATCH 5/6] Add templates --- doc/DISCLAIMER.md | 12 ++++++++++++ manifest.json | 8 ++++++++ 2 files changed, 20 insertions(+) create mode 100644 doc/DISCLAIMER.md diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md new file mode 100644 index 0000000..155a15a --- /dev/null +++ b/doc/DISCLAIMER.md @@ -0,0 +1,12 @@ +## Configuration + + * How to configure this app: Go to `domain.ltd/cp-admin` to connect to the administration panel. + +#### Multi-user support + + * Are LDAP and HTTP auth supported? **No** + * Can the app be used by multiple users? **Yes** + +## Limitations + +* :warning: Installation possible only on a root domain or subdomain. diff --git a/manifest.json b/manifest.json index 0620454..b7db24a 100755 --- a/manifest.json +++ b/manifest.json @@ -8,6 +8,14 @@ }, "version": "1.0.0-57~ynh2", "url": "https://podlibre.org/", + "upstream": { + "license": "GPL-3.0-only", + "website": "https://podlibre.org/", + "demo": "https://podcast.podlibre.org/@podlibre_fr", + "admindoc": "https://podlibre.org/create-a-podcast-in-3mn-with-castopod/", + "userdoc": "https://yunohost.org/apps", + "code": "https://code.podlibre.org/podlibre/castopod-host" + }, "license": "GPL-3.0-only", "maintainer": { "name": "eric_G", From 7b0ff0cc6722cf2d412821afd9f21d6df2134621 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Thu, 20 May 2021 21:12:36 +0200 Subject: [PATCH 6/6] Update upgrade --- scripts/upgrade | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/upgrade b/scripts/upgrade index 412afcf..1f2c614 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -120,6 +120,7 @@ ynh_add_fpm_config --package="$extra_php_dependencies" #================================================= ynh_script_progression --message="Configuring Castopod..." --weight=1 +redis_number=$(( $YNH_APP_INSTANCE_NUMBER - 1 )) ynh_add_config --template="../conf/.env.example" --destination="$final_path/.env" chmod 600 $final_path/.env chown $app:www-data "$final_path/.env"