1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/castopod_ynh.git synced 2024-09-03 18:16:14 +02:00

Merge pull request #14 from YunoHost-Apps/testing

Testing
This commit is contained in:
Éric Gaspar 2021-05-07 22:45:38 +02:00 committed by GitHub
commit 596edabf2e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 105 additions and 29 deletions

View file

@ -11,11 +11,11 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in
## Overview ## Overview
Castopod Server is an open-source hosting platform made for podcasters who want engage and interact with their audience. Please note that Castopod is still under heavy development: it may not be 100% stable and some features are still being developed. Castopod Server is an open-source hosting platform made for podcasters who want engage and interact with their audience. Please note that Castopod is still under heavy development: it may not be 100% stable and some features are still being developed.
**Shipped version:** 1.0.0 alpha.41 **Shipped version:** 1.0.0 alpha.55
## Screenshots ## Screenshots
![](https://podlibre.org/content/images/2020/12/Parisian-Podcast.png) ![](https://podlibre.org/content/images/2021/04/activity-feed.png)
## Demo ## Demo
@ -23,8 +23,7 @@ Castopod Server is an open-source hosting platform made for podcasters who want
## Configuration ## Configuration
* Go to `domain.ltd/cp-install` to creat an admin user. * How to configure this app: Go to `domain.ltd/cp-admin` to connect to the administration panel.
* How to configure this app: From an admin panel `domain.ltd/cp-admin`.
## Documentation ## Documentation
@ -40,8 +39,8 @@ Castopod Server is an open-source hosting platform made for podcasters who want
#### Supported architectures #### Supported architectures
* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/castopod%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/castopod/) * x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/castopod.svg)](https://ci-apps.yunohost.org/ci/apps/castopod/)
* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/castopod%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/castopod/) * ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/castopod.svg)](https://ci-apps-arm.yunohost.org/ci/apps/castopod/)
## Limitations ## Limitations
@ -55,7 +54,7 @@ Castopod Server is an open-source hosting platform made for podcasters who want
* Report a bug: https://github.com/YunoHost-Apps/castopod_ynh/issues * Report a bug: https://github.com/YunoHost-Apps/castopod_ynh/issues
* App website: https://podlibre.org/ * App website: https://podlibre.org/
* Upstream app repository: https://code.podlibre.org/podlibre/castopod * Upstream app repository: https://code.podlibre.org/podlibre/castopod-host
* YunoHost website: https://yunohost.org/ * YunoHost website: https://yunohost.org/
--- ---

View file

@ -11,11 +11,11 @@ Si vous n'avez pas YunoHost, consultez [le guide](https://yunohost.org/#/install
## Vue d'ensemble ## Vue d'ensemble
Castopod Server est une plate-forme d'hébergement open source conçue pour les podcasteurs qui souhaitent s'engager et interagir avec leur public. Veuillez noter que Castopod est toujours en développement: il n'est peut-être pas stable à 100% et certaines fonctionnalités sont encore en développement. Castopod Server est une plate-forme d'hébergement open source conçue pour les podcasteurs qui souhaitent s'engager et interagir avec leur public. Veuillez noter que Castopod est toujours en développement: il n'est peut-être pas stable à 100% et certaines fonctionnalités sont encore en développement.
**Version incluse :** 1.0.0 alpha.41 **Version incluse :** 1.0.0 alpha.55
## Captures d'écran ## Captures d'écran
![](https://podlibre.org/content/images/2020/12/Parisian-Podcast.png) ![](https://podlibre.org/content/images/2021/04/activity-feed.png)
## Démo ## Démo
@ -23,8 +23,7 @@ Castopod Server est une plate-forme d'hébergement open source conçue pour les
## Configuration ## Configuration
* Allez dans `domain.ltd/cp-install` pour créer un utilisateur administrateur. * Comment configurer cette application : via `domain.ltd/cp-admin` pour avoir accès à la page d'administration.
* Comment configurer cette application : via le panneau d'administration `domain.ltd/cp-admin`.
## Documentation ## Documentation
@ -40,8 +39,8 @@ Castopod Server est une plate-forme d'hébergement open source conçue pour les
#### Architectures supportées #### Architectures supportées
* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/castopod%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/castopod/) * x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/castopod.svg)](https://ci-apps.yunohost.org/ci/apps/castopod/)
* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/castopod%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/castopod/) * ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/castopod.svg)](https://ci-apps-arm.yunohost.org/ci/apps/castopod/)
## Limitations ## Limitations
@ -55,7 +54,7 @@ Castopod Server est une plate-forme d'hébergement open source conçue pour les
* Signaler un bug : https://github.com/YunoHost-Apps/castopod_ynh/issues * Signaler un bug : https://github.com/YunoHost-Apps/castopod_ynh/issues
* Site de l'application : https://podlibre.org/ * Site de l'application : https://podlibre.org/
* Dépôt de l'application principale : https://code.podlibre.org/podlibre/castopod * Dépôt de l'application principale : https://code.podlibre.org/podlibre/castopod-host
* Site web YunoHost : https://yunohost.org/ * Site web YunoHost : https://yunohost.org/
--- ---

View file

@ -6,8 +6,10 @@
;; Test complet ;; Test complet
; Manifest ; Manifest
domain="domain.tld" (DOMAIN) domain="domain.tld" (DOMAIN)
path="/cp-install" (PATH) path="/path" (PATH)
is_public=1 (PUBLIC|public=1|private=0) is_public=1 (PUBLIC|public=1|private=0)
admin="john" (USER)
password="pass"
; Checks ; Checks
pkg_linter=1 pkg_linter=1
setup_sub_dir=0 setup_sub_dir=0
@ -16,8 +18,8 @@
setup_private=1 setup_private=1
setup_public=1 setup_public=1
upgrade=1 upgrade=1
#1.0.0 alpha.40 #1.0.0 alpha.41
upgrade=1 from_commit=ac00b520875beed49bb138e795562e1f74700ab9 upgrade=1 from_commit=9c603f6b659e4191028cc909311a0cbde9955155
backup_restore=1 backup_restore=1
multi_instance=1 multi_instance=1
change_url=1 change_url=1
@ -25,6 +27,6 @@
Email= Email=
Notification=none Notification=none
;;; Upgrade options ;;; Upgrade options
; commit=ac00b520875beed49bb138e795562e1f74700ab9 ; commit=9c603f6b659e4191028cc909311a0cbde9955155
name=1.0.0 alpha.40 name=1.0.0 alpha.41
manifest_arg=domain=DOMAIN&path=PATH&is_public=1& manifest_arg=domain=DOMAIN&path=PATH&admin=USER&language=fr&is_public=1&password=pass&

View file

@ -1,5 +1,5 @@
SOURCE_URL=https://code.podlibre.org/podlibre/castopod/uploads/f73810f885b378fcbbe1dd9d715e40ac/castopod-1.0.0-alpha.41.zip SOURCE_URL=https://code.podlibre.org/podlibre/castopod-host/uploads/d2a79e2d52dea0525cd2f9c37299580f/castopod-host-1.0.0-alpha.55.zip
SOURCE_SUM=18ef5b60f8cdf151c1bcaf27c8d0e74d8c10751541f51f32b9e004d596709c59 SOURCE_SUM=ae75de08209ed7b4ce3b24967ef716a27881bcaff8e19e780dab45dce4d789d6
SOURCE_SUM_PRG=sha256sum SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=zip SOURCE_FORMAT=zip
SOURCE_IN_SUBDIR=true SOURCE_IN_SUBDIR=true

1
conf/cron Normal file
View file

@ -0,0 +1 @@
* * * * * __USER__ /usr/bin/php__PHPVERSION__ __FINALPATH__/public/index.php scheduled-activities

View file

@ -6,7 +6,7 @@
"en": "Hosting platform made for podcasters", "en": "Hosting platform made for podcasters",
"fr": "Plateforme d'hébergement conçue pour les podcasteurs" "fr": "Plateforme d'hébergement conçue pour les podcasteurs"
}, },
"version": "1.0.0-41~ynh1", "version": "1.0.0-55~ynh1",
"url": "https://podlibre.org/", "url": "https://podlibre.org/",
"license": "GPL-3.0-only", "license": "GPL-3.0-only",
"maintainer": { "maintainer": {
@ -33,6 +33,11 @@
}, },
"example": "podcast.example.com" "example": "podcast.example.com"
}, },
{
"name": "admin",
"type": "user",
"example": "johndoe"
},
{ {
"name": "is_public", "name": "is_public",
"type": "boolean", "type": "boolean",
@ -41,6 +46,11 @@
"fr": "Si cette case est cochée, Castopod sera accessible aux personnes nayant pas de compte. Vous pourrez changer ceci plus tard via la webadmin." "fr": "Si cette case est cochée, Castopod sera accessible aux personnes nayant pas de compte. Vous pourrez changer ceci plus tard via la webadmin."
}, },
"default": true "default": true
},
{
"name": "password",
"type": "password",
"example": "Choose a password"
} }
] ]
} }

View file

@ -6,7 +6,7 @@
YNH_PHP_VERSION="7.3" YNH_PHP_VERSION="7.3"
extra_php_dependencies="php${YNH_PHP_VERSION}-mysql 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" 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"
#================================================= #=================================================
# PERSONAL HELPERS # PERSONAL HELPERS

View file

@ -45,6 +45,12 @@ ynh_backup --src_path="$final_path"
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
#=================================================
# BACKUP VARIOUS FILES
#=================================================
ynh_backup --src_path="/etc/cron.d/$app"
#================================================= #=================================================
# BACKUP THE PHP-FPM CONFIGURATION # BACKUP THE PHP-FPM CONFIGURATION
#================================================= #=================================================

View file

@ -23,6 +23,9 @@ ynh_abort_if_errors
domain=$YNH_APP_ARG_DOMAIN domain=$YNH_APP_ARG_DOMAIN
path_url="/" path_url="/"
is_public=$YNH_APP_ARG_IS_PUBLIC is_public=$YNH_APP_ARG_IS_PUBLIC
admin=$YNH_APP_ARG_ADMIN
password=$YNH_APP_ARG_PASSWORD
email=$(ynh_user_get_info --username=$admin --key=mail)
app=$YNH_APP_INSTANCE_NAME app=$YNH_APP_INSTANCE_NAME
@ -44,6 +47,7 @@ ynh_script_progression --message="Storing installation settings..." --weight=1
ynh_app_setting_set --app=$app --key=domain --value=$domain 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=path --value=$path_url
ynh_app_setting_set --app=$app --key=admin --value=$admin
#================================================= #=================================================
# CREATE A MYSQL DATABASE # CREATE A MYSQL DATABASE
@ -98,6 +102,34 @@ ynh_script_progression --message="Configuring Castopod..." --weight=1
ynh_add_config --template="../conf/.env.example" --destination="$final_path/.env" ynh_add_config --template="../conf/.env.example" --destination="$final_path/.env"
#=================================================
# SETUP A CRON
#=================================================
ynh_script_progression --message="Setuping a cron..."
ynh_add_config --template="../conf/cron" --destination="/etc/cron.d/$app"
#=================================================
# SETUP APPLICATION WITH CURL
#=================================================
# Set the app as temporarily public for curl call
ynh_script_progression --message="Configuring SSOwat..." --weight=1
# Making the app public for curl
ynh_permission_update --permission="main" --add="visitors"
# Reload NGINX
ynh_systemd_action --service_name=nginx --action=reload
# Installation with curl
ynh_script_progression --message="Finalizing installation..." --weight=1
ynh_local_curl "/cp-install"
ynh_local_curl "/cp-install/create-superadmin" "email=$email" "username=$admin" "password=$password"
ynh_permission_update --permission="main" --remove="visitors"
#================================================= #=================================================
# GENERIC FINALIZATION # GENERIC FINALIZATION
#================================================= #=================================================
@ -105,8 +137,7 @@ ynh_add_config --template="../conf/.env.example" --destination="$final_path/.env
#================================================= #=================================================
# Set permissions to app files # Set permissions to app files
chown -R $app:$app $final_path chown -R $app: $final_path
#chmod o-rwx $final_path
chmod 600 $final_path/.env chmod 600 $final_path/.env
#================================================= #=================================================

View file

@ -53,6 +53,13 @@ ynh_script_progression --message="Removing PHP-FPM configuration..." --weight=2
# Remove the dedicated PHP-FPM config # Remove the dedicated PHP-FPM config
ynh_remove_fpm_config ynh_remove_fpm_config
#=================================================
# REMOVE VARIOUS FILES
#=================================================
# Remove a cron file
ynh_secure_remove --file="/etc/cron.d/$app"
#================================================= #=================================================
# GENERIC FINALIZATION # GENERIC FINALIZATION
#================================================= #=================================================

View file

@ -73,7 +73,6 @@ ynh_restore_file --origin_path="$final_path"
# Set permissions to app files # Set permissions to app files
chown -R $app:$app $final_path chown -R $app:$app $final_path
#chmod o-rwx $final_path
chmod 600 $final_path/.env chmod 600 $final_path/.env
#================================================= #=================================================
@ -91,6 +90,12 @@ db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd)
ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd
ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql
#=================================================
# RESTORE VARIOUS FILES
#=================================================
ynh_restore_file --origin_path="/etc/cron.d/$app"
#================================================= #=================================================
# GENERIC FINALIZATION # GENERIC FINALIZATION
#================================================= #=================================================

View file

@ -20,6 +20,7 @@ domain=$(ynh_app_setting_get --app=$app --key=domain)
path_url=$(ynh_app_setting_get --app=$app --key=path) path_url=$(ynh_app_setting_get --app=$app --key=path)
final_path=$(ynh_app_setting_get --app=$app --key=final_path) final_path=$(ynh_app_setting_get --app=$app --key=final_path)
db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_name=$(ynh_app_setting_get --app=$app --key=db_name)
db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd)
#================================================= #=================================================
# CHECK VERSION # CHECK VERSION
@ -81,6 +82,8 @@ if [ "$upgrade_type" == "UPGRADE_APP" ]
then then
ynh_script_progression --message="Upgrading source files..." --weight=1 ynh_script_progression --message="Upgrading source files..." --weight=1
ynh_secure_remove --file="$final_path/app"
ynh_secure_remove --file="$final_path/public/assets"
# Download, check integrity, uncompress and patch the source from app.src # Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$final_path" ynh_setup_source --dest_dir="$final_path"
fi fi
@ -101,6 +104,20 @@ ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=2
# Create a dedicated PHP-FPM config # Create a dedicated PHP-FPM config
ynh_add_fpm_config --package="$extra_php_dependencies" ynh_add_fpm_config --package="$extra_php_dependencies"
#=================================================
# CONFIGURE CASTOPOD
#=================================================
ynh_script_progression --message="Configuring Castopod..." --weight=1
ynh_add_config --template="../conf/.env.example" --destination="$final_path/.env"
#=================================================
# SETUP CRON
#=================================================
ynh_script_progression --message="Setuping cron..."
ynh_add_config --template="../conf/cron" --destination="/etc/cron.d/$app"
#================================================= #=================================================
# GENERIC FINALIZATION # GENERIC FINALIZATION
#================================================= #=================================================
@ -108,8 +125,7 @@ ynh_add_fpm_config --package="$extra_php_dependencies"
#================================================= #=================================================
# Set permissions to app files # Set permissions to app files
chown -R $app:$app $final_path chown -R $app: $final_path
#chmod o-rwx $final_path
chmod 600 $final_path/.env chmod 600 $final_path/.env
#================================================= #=================================================