From b401534e660234f3d637e48a70cdec6adb930bdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Sat, 6 Nov 2021 11:29:22 +0100 Subject: [PATCH] Testing (#66) * Update version 0.4.1 --- README.md | 8 +++++--- README_fr.md | 8 +++++--- check_process | 5 +++-- conf/386.src | 5 ++--- conf/amd64.src | 5 ++--- conf/arm6.src | 5 ++--- conf/arm64.src | 5 ++--- conf/arm7.src | 5 ++--- conf/config.json | 4 ++++ doc/DISCLAIMER.md | 6 ++++-- doc/DISCLAIMER_fr.md | 6 ++++-- manifest.json | 13 +++++-------- scripts/change_url | 13 +++++++++++++ scripts/install | 9 ++++++--- scripts/remove | 12 ++++++------ scripts/upgrade | 21 ++++++++++++++++++++- 16 files changed, 85 insertions(+), 45 deletions(-) create mode 100644 conf/config.json diff --git a/README.md b/README.md index 942fde6..611e2a6 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Galène is a videoconference server (an “SFU”) that is easy to deploy and th - activity detection -**Shipped version:** 0.4.0~ynh3 +**Shipped version:** 0.4.1~ynh1 **Demo:** https://galene.org:8443/ @@ -44,7 +44,9 @@ Galène is a videoconference server (an “SFU”) that is easy to deploy and th #### Creating and configuring groups Groups are defined by JSON files located in the folder `/home/yunohost.app/galene/groups`. Each group is represented by a `GroupName.json` file. -To create a new group, you need to create a `GroupNameExample.json` file (you can also make subfolder groups, and the groups will be accessible with `https://domain.tld/group/subfolder/GroupName`). Various configuration options are available (see https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file). +To create a new group, you need to create a `GroupNameExample.json` file and restart Galène service (you can also make subfolder groups, and the groups will be accessible with `https://domain.tld/group/subfolder/GroupName`). Various configuration options are available (see https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file). + +When Galène is removed, the data directory (`/home/yunohost.app/galene/`) is preserved. If you want to remove it along with Galène, use the `--purge` option: `sudo yunohost app remove galene --purge`. *NB: Spaces are supported in group file names.* @@ -78,7 +80,7 @@ You can also install Galène with an external TURN server with this branch: http ### Server Statistics page -Statistics are available under `/opt/yunohost/galene/stats.json`, with a human-readable version at `domain.ltd/stats.html`. This is only available to the server administrator. +Statistics are available under `/opt/yunohost/galene/stats.json`, with a human-readable version at `domain.ltd/stats.html`. This is only available to the server administrator (the admin/password is set in the `config.json` file: `/opt/yunohost/galene/data/config.json`). ### How do I record my lecture? diff --git a/README_fr.md b/README_fr.md index 90eef08..a853e21 100644 --- a/README_fr.md +++ b/README_fr.md @@ -23,7 +23,7 @@ Galène est un serveur de visioconférence (un « SFU ») facile à déployer et - détection d'activité -**Version incluse :** 0.4.0~ynh3 +**Version incluse :** 0.4.1~ynh1 **Démo :** https://galene.org:8443/ @@ -40,7 +40,9 @@ Les salles de réunion *Galène* sont appelées « groupes ». Tout groupe est a #### Ajouter et configurer des groupes Les groupes sont définis par des fichiers JSON situés dans le dossier `/home/yunohost.app/galene/groups`. Chaque groupe est représenté par un fichier `GroupName.json`. -Pour créer un nouveau groupe, vous devez créer un fichier `GroupNameExample.json` (vous pouvez également créer un sous-dossier, et les groupes seront accessibles avec` https://domain.tld/group/subfolder/GroupName`). Différentes options de configurations sont disponibles (voir https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file). +Pour créer un nouveau groupe, vous devez créer un fichier `GroupNameExample.json` et redémarrer le service Galène (vous pouvez également créer un sous-dossier, et les groupes seront accessibles avec` https://domain.tld/group/subfolder/GroupName`). Différentes options de configurations sont disponibles (voir https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file). + +Lorsque Galène est supprimé, le répertoire de données (`/home/yunohost.app/galene/`) est conservé. Si vous souhaitez le supprimer avec Galène, utilisez l'option `--purge` : `sudo yunohost app remove galene --purge`. *NB : les espaces sont pris en charge dans les noms de fichiers de groupe.* @@ -74,7 +76,7 @@ Vous pouvez également installer *Galène* avec un serveur TURN externe avec cet ### Statistiques du serveur -Les statistiques sont disponibles sous `/opt/yunohost/galene/stats.json`, avec une version lisible sur `domain.ltd/stats.html`. Cette page n'est disponible que pour l'administrateur du serveur. +Les statistiques sont disponibles sous `/opt/yunohost/galene/stats.json`, avec une version lisible sur `domain.ltd/stats.html`. Cette page n'est disponible que pour l'administrateur du serveur (le mot de passe et l'administrateur sont définis dans le fichier `config.json` : `/opt/yunohost/galene/data/config.json`). ### Comment enregistrer ma conférence ? diff --git a/check_process b/check_process index 264bd8f..ed7a603 100644 --- a/check_process +++ b/check_process @@ -15,6 +15,7 @@ setup_private=1 setup_public=1 upgrade=1 + upgrade=1 from_commit=aaae7fbe83ce001fabd40509882e765a5d8da2c1 backup_restore=1 multi_instance=0 change_url=1 @@ -22,6 +23,6 @@ Email= Notification=none ;;; Upgrade options - ; commit=CommitHash - name=Name and date of the commit. + ; commit=aaae7fbe83ce001fabd40509882e765a5d8da2c1 + name=Testing (#62) manifest_arg=domain=DOMAIN&path=PATH&admin=USER&language=fr&is_public=1&password=pass&port=666& diff --git a/conf/386.src b/conf/386.src index 4766e22..b0a8697 100644 --- a/conf/386.src +++ b/conf/386.src @@ -1,7 +1,6 @@ -SOURCE_URL=https://github.com/YunoHost-Apps/galene_ynh/releases/download/v0.4/galene_0.4_Linux_386.tar.gz -SOURCE_SUM=ef933459f6564e3533bc8ea0db4f5adddee774f480dce4ba7be086116b46bc52 +SOURCE_URL=https://github.com/YunoHost-Apps/galene_ynh/releases/download/v0.4.1/galene_0.4.1_Linux_386.tar.gz +SOURCE_SUM=823d890aa6e55ec522b9b0c95b6e09fa83b8fdda9347cd25dcd4ddeffb763064 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true -SOURCE_FILENAME= SOURCE_EXTRACT=true diff --git a/conf/amd64.src b/conf/amd64.src index a3cae15..7c62781 100644 --- a/conf/amd64.src +++ b/conf/amd64.src @@ -1,7 +1,6 @@ -SOURCE_URL=https://github.com/YunoHost-Apps/galene_ynh/releases/download/v0.4/galene_0.4_Linux_amd64.tar.gz -SOURCE_SUM=2530187e021a792753c78e3b8449b23b88b0e9349dda263eb815ef46e8d16330 +SOURCE_URL=https://github.com/YunoHost-Apps/galene_ynh/releases/download/v0.4.1/galene_0.4.1_Linux_amd64.tar.gz +SOURCE_SUM=e6a96c8fc5c25ea9fd6e137b9a9da7e9ebfb96945aecf7cf80a9eb7a83c124f3 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true -SOURCE_FILENAME= SOURCE_EXTRACT=true diff --git a/conf/arm6.src b/conf/arm6.src index 226923d..e9f2f0c 100644 --- a/conf/arm6.src +++ b/conf/arm6.src @@ -1,7 +1,6 @@ -SOURCE_URL=https://github.com/YunoHost-Apps/galene_ynh/releases/download/v0.4/galene_0.4_Linux_arm6.tar.gz -SOURCE_SUM=56a7be3fe0210b920f1883dfb054268ffeb21f4e822c4b1f1527c40e95b57952 +SOURCE_URL=https://github.com/YunoHost-Apps/galene_ynh/releases/download/v0.4.1/galene_0.4.1_Linux_arm6.tar.gz +SOURCE_SUM=4a017aa340f81494a14414485ffccc53b461b58c2e70bc178f6037c65ddf534c SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true -SOURCE_FILENAME= SOURCE_EXTRACT=true diff --git a/conf/arm64.src b/conf/arm64.src index 190c799..044b3cc 100644 --- a/conf/arm64.src +++ b/conf/arm64.src @@ -1,7 +1,6 @@ -SOURCE_URL=https://github.com/YunoHost-Apps/galene_ynh/releases/download/v0.4/galene_0.4_Linux_arm64.tar.gz -SOURCE_SUM=5281e7f0918d9df4de4f61028a15d0c876346a5e202f22849e69ffd3153cd82a +SOURCE_URL=https://github.com/YunoHost-Apps/galene_ynh/releases/download/v0.4.1/galene_0.4.1_Linux_arm64.tar.gz +SOURCE_SUM=14a89b18792ae60165003ac9c81a7059a8697a6b43be8c41244db486a9527c86 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true -SOURCE_FILENAME= SOURCE_EXTRACT=true diff --git a/conf/arm7.src b/conf/arm7.src index f8c9c24..9087f2f 100644 --- a/conf/arm7.src +++ b/conf/arm7.src @@ -1,7 +1,6 @@ -SOURCE_URL=https://github.com/YunoHost-Apps/galene_ynh/releases/download/v0.4/galene_0.4_Linux_arm7.tar.gz -SOURCE_SUM=3af918cf297fbc53d6d109fa0b3d465907af87c93c9da87bf78601ad618fb505 +SOURCE_URL=https://github.com/YunoHost-Apps/galene_ynh/releases/download/v0.4.1/galene_0.4.1_Linux_arm7.tar.gz +SOURCE_SUM=dcad2e7f4d76d345fd6b5966e00db633388b3aa21be774c45a892d3bcfc16d3d SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true -SOURCE_FILENAME= SOURCE_EXTRACT=true diff --git a/conf/config.json b/conf/config.json new file mode 100644 index 0000000..b7392e5 --- /dev/null +++ b/conf/config.json @@ -0,0 +1,4 @@ +{ + "canonicalHost": "__DOMAIN__", + "admin":[{"username":"__ADMIN__","password":"__PASSWORD__"}] +} \ No newline at end of file diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md index 8ee9224..14bf2f8 100644 --- a/doc/DISCLAIMER.md +++ b/doc/DISCLAIMER.md @@ -5,7 +5,9 @@ #### Creating and configuring groups Groups are defined by JSON files located in the folder `/home/yunohost.app/galene/groups`. Each group is represented by a `GroupName.json` file. -To create a new group, you need to create a `GroupNameExample.json` file (you can also make subfolder groups, and the groups will be accessible with `https://domain.tld/group/subfolder/GroupName`). Various configuration options are available (see https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file). +To create a new group, you need to create a `GroupNameExample.json` file and restart Galène service (you can also make subfolder groups, and the groups will be accessible with `https://domain.tld/group/subfolder/GroupName`). Various configuration options are available (see https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file). + +When Galène is removed, the data directory (`/home/yunohost.app/galene/`) is preserved. If you want to remove it along with Galène, use the `--purge` option: `sudo yunohost app remove galene --purge`. *NB: Spaces are supported in group file names.* @@ -39,7 +41,7 @@ You can also install Galène with an external TURN server with this branch: http ### Server Statistics page -Statistics are available under `/opt/yunohost/galene/stats.json`, with a human-readable version at `domain.ltd/stats.html`. This is only available to the server administrator. +Statistics are available under `/opt/yunohost/galene/stats.json`, with a human-readable version at `domain.ltd/stats.html`. This is only available to the server administrator (the admin/password is set in the `config.json` file: `/opt/yunohost/galene/data/config.json`). ### How do I record my lecture? diff --git a/doc/DISCLAIMER_fr.md b/doc/DISCLAIMER_fr.md index 3f416e5..596ce9b 100644 --- a/doc/DISCLAIMER_fr.md +++ b/doc/DISCLAIMER_fr.md @@ -5,7 +5,9 @@ Les salles de réunion *Galène* sont appelées « groupes ». Tout groupe est a #### Ajouter et configurer des groupes Les groupes sont définis par des fichiers JSON situés dans le dossier `/home/yunohost.app/galene/groups`. Chaque groupe est représenté par un fichier `GroupName.json`. -Pour créer un nouveau groupe, vous devez créer un fichier `GroupNameExample.json` (vous pouvez également créer un sous-dossier, et les groupes seront accessibles avec` https://domain.tld/group/subfolder/GroupName`). Différentes options de configurations sont disponibles (voir https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file). +Pour créer un nouveau groupe, vous devez créer un fichier `GroupNameExample.json` et redémarrer le service Galène (vous pouvez également créer un sous-dossier, et les groupes seront accessibles avec` https://domain.tld/group/subfolder/GroupName`). Différentes options de configurations sont disponibles (voir https://github.com/YunoHost-Apps/galene_ynh/wiki/Configuration-file). + +Lorsque Galène est supprimé, le répertoire de données (`/home/yunohost.app/galene/`) est conservé. Si vous souhaitez le supprimer avec Galène, utilisez l'option `--purge` : `sudo yunohost app remove galene --purge`. *NB : les espaces sont pris en charge dans les noms de fichiers de groupe.* @@ -39,7 +41,7 @@ Vous pouvez également installer *Galène* avec un serveur TURN externe avec cet ### Statistiques du serveur -Les statistiques sont disponibles sous `/opt/yunohost/galene/stats.json`, avec une version lisible sur `domain.ltd/stats.html`. Cette page n'est disponible que pour l'administrateur du serveur. +Les statistiques sont disponibles sous `/opt/yunohost/galene/stats.json`, avec une version lisible sur `domain.ltd/stats.html`. Cette page n'est disponible que pour l'administrateur du serveur (le mot de passe et l'administrateur sont définis dans le fichier `config.json` : `/opt/yunohost/galene/data/config.json`). ### Comment enregistrer ma conférence ? diff --git a/manifest.json b/manifest.json index 051bf7f..c559c07 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Videoconferencing server that is easy to deploy", "fr": "Serveur de visioconférence facile à déployer" }, - "version": "0.4.0~ynh3", + "version": "0.4.1~ynh1", "url": "https://galene.org/", "upstream": { "license": "MIT", @@ -22,7 +22,7 @@ "email": "" }, "requirements": { - "yunohost": ">= 4.2.4" + "yunohost": ">= 4.2.8" }, "multi_instance": false, "services": [ @@ -32,13 +32,11 @@ "install" : [ { "name": "domain", - "type": "domain", - "example": "example.com" + "type": "domain" }, { "name": "admin", - "type": "user", - "example": "johndoe" + "type": "user" }, { "name": "password", @@ -46,8 +44,7 @@ "help": { "en": "Set the administrator password (between 8 and 30 characters)", "fr": "Définissez le mot de passe administrateur (entre 8 et 30 caractères)" - }, - "example": "Choose a password" + } }, { "name": "is_public", diff --git a/scripts/change_url b/scripts/change_url index d650a59..6d0abea 100755 --- a/scripts/change_url +++ b/scripts/change_url @@ -29,6 +29,8 @@ ynh_script_progression --message="Loading installation settings..." --weight=1 # Needed for helper "ynh_add_nginx_config" final_path=$(ynh_app_setting_get --app=$app --key=final_path) port=$(ynh_app_setting_get --app=$app --key=port) +admin=$(ynh_app_setting_get --app=$app --key=admin) +password=$(ynh_app_setting_get --app=$app --key=password) #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP @@ -101,6 +103,17 @@ then ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" fi +#================================================= +# CREATE DATA AND GROUPS FOLDER +#================================================= +ynh_script_progression --message="Updating configuration file..." --weight=2 + +domain="$new_domain" +ynh_add_config --template="../conf/config.json" --destination="$final_path/data/config.json" + +chmod 400 "$final_path/data/config.json" +chown $app:$app "$final_path/data/config.json" + #================================================= # GENERIC FINALISATION #================================================= diff --git a/scripts/install b/scripts/install index 07942af..2fa779b 100755 --- a/scripts/install +++ b/scripts/install @@ -50,6 +50,7 @@ ynh_script_progression --message="Storing installation settings..." --weight=4 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 +ynh_app_setting_set --app=$app --key=password --value=$password ynh_app_setting_set --app=$app --key=group_name --value="$group_name" ynh_app_setting_set --app=$app --key=group_description --value="$group_description" @@ -103,9 +104,11 @@ chown -R $app:www-data "$final_path" # Create data folder mkdir -p "$final_path/data" -echo $admin:$password > "$final_path/data/passwd" -chmod 400 "$final_path/data/passwd" -chown $app: "$final_path/data/passwd" + +ynh_add_config --template="../conf/config.json" --destination="$final_path/data/config.json" + +chmod 400 "$final_path/data/config.json" +chown $app:$app "$final_path/data/config.json" #================================================= # NGINX CONFIGURATION diff --git a/scripts/remove b/scripts/remove index 5f7e3d1..275a629 100755 --- a/scripts/remove +++ b/scripts/remove @@ -55,12 +55,12 @@ ynh_secure_remove --file="$final_path" # REMOVE DATA DIR #================================================= -# # Remove the app data directory with the command `yunohost app remove --purge` -# if [ "${YNH_APP_PURGE:-0}" -eq 1 ] -# then -# ynh_script_progression --message="Removing $app data directory..." --weight=2 -# ynh_secure_remove --file="$datadir" -# fi +# Remove the app data directory with the command `yunohost app remove galene --purge` +if [ "${YNH_APP_PURGE:-0}" -eq 1 ] +then + ynh_script_progression --message="Removing $app data directory..." --weight=2 + ynh_secure_remove --file="$datadir" +fi #================================================= # REMOVE NGINX CONFIGURATION diff --git a/scripts/upgrade b/scripts/upgrade index d3a65e1..f3ea0c9 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -19,6 +19,7 @@ app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get --app=$app --key=domain) path_url=$(ynh_app_setting_get --app=$app --key=path) admin=$(ynh_app_setting_get --app=$app --key=admin) +password=$(ynh_app_setting_get --app=$app --key=password) final_path=$(ynh_app_setting_get --app=$app --key=final_path) group_name=$(ynh_app_setting_get --app=$app --key=group_name) port=$(ynh_app_setting_get --app=$app --key=port) @@ -99,13 +100,31 @@ if [ "$upgrade_type" == "UPGRADE_APP" ] then ynh_script_progression --message="Upgrading source files..." --weight=2 - ynh_setup_source --dest_dir="$final_path" --source_id="$architecture" --keep="$final_path/data/passwd" + ynh_setup_source --dest_dir="$final_path" --source_id="$architecture" #--keep="$final_path/data/config.json" fi chmod 750 "$final_path" chmod -R o-rwx "$final_path" chown -R $app:www-data "$final_path" +#================================================= +# UPGRADING CONFIGURATION FILE +#================================================= +ynh_script_progression --message="Upgrading configuration file..." --weight=2 + +# Create data folder +mkdir -p "$final_path/data" + +# We remove the old admin/password file if present +if [ -f "$final_path/data/passwd" ] ; then + ynh_secure_remove --file="$final_path/data/passwd" +fi + +ynh_add_config --template="../conf/config.json" --destination="$final_path/data/config.json" + +chmod 400 "$final_path/data/config.json" +chown $app:$app "$final_path/data/config.json" + #================================================= # NGINX CONFIGURATION #=================================================