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 #=================================================