From 78125512e6c3f7084017da1109005b5295ee84d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 1 Feb 2022 14:30:36 +0100 Subject: [PATCH 01/19] Admin ldap (#51) Define admin during install Add LDAP Add config panel --- README.md | 9 +++-- README_fr.md | 4 +- check_process | 3 +- conf/.env.example | 14 +++++-- conf/app.src | 4 +- config_panel.toml | 35 ++++++++++++++++ doc/DISCLAIMER.md | 7 +++- doc/DISCLAIMER_fr.md | 2 - manifest.json | 12 +++++- scripts/config | 95 ++++++++++++++++++++++++++++++++++++++++++++ scripts/install | 21 +++++++--- scripts/restore | 6 +++ scripts/upgrade | 41 +++++++++++++++++-- 13 files changed, 225 insertions(+), 28 deletions(-) create mode 100644 config_panel.toml create mode 100644 scripts/config diff --git a/README.md b/README.md index 617a8f5..8bf9e0c 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. -**Shipped version:** 21.12.3~ynh1 +**Shipped version:** 21.12.4~ynh1 **Demo:** https://demo.bookstackapp.com @@ -30,9 +30,12 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out ## Configuration -For the first time Login, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. +BookStack uses LDAP authentication by default. -* How to configure this app: From an admin panel, a plain file with SSH, or any other way. +You can switch to standard authentication in the webadmin -> bookstack -> config panel setting +For the first time Login with standard authentication, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. + +* How to configure this app: From an admin panel, a plain file with SSH, or config panel. ## Documentation and resources diff --git a/README_fr.md b/README_fr.md index 59bd315..3849387 100644 --- a/README_fr.md +++ b/README_fr.md @@ -14,7 +14,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. -**Version incluse :** 21.12.3~ynh1 +**Version incluse :** 21.12.4~ynh1 **Démo :** https://demo.bookstackapp.com @@ -24,9 +24,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out ## Avertissements / informations importantes -## Configuration -Login using the default admin details `admin@admin.com` with a password of `password`. You should change these details immediately after logging in for the first time. ## Documentations et ressources diff --git a/check_process b/check_process index ba78743..3c3985e 100644 --- a/check_process +++ b/check_process @@ -2,6 +2,8 @@ ; Manifest domain="domain.tld" path="/path" + admin="john" + password="1Strong-Password" language="fr" is_public=1 ; Checks @@ -12,7 +14,6 @@ setup_private=1 setup_public=1 upgrade=1 - #Testing upgrade=1 from_commit=aaa9c9534b01a210989aceb4ad4d2b9c585be6df backup_restore=1 multi_instance=0 diff --git a/conf/.env.example b/conf/.env.example index 5c09d5f..7a89b8c 100644 --- a/conf/.env.example +++ b/conf/.env.example @@ -45,11 +45,11 @@ MAIL_FROM=bookstack@__DOMAIN__ MAIL_HOST=localhost MAIL_PORT=25 MAIL_USERNAME=bookstack -MAIL_PASSWORD="__MAIL_PWD__" +MAIL_PASSWORD=__MAIL_PWD__ MAIL_ENCRYPTION=null # General auth -AUTH_METHOD=standard +AUTH_METHOD=__AUTH_METHOD__ # LDAP authentication configuration # Refer to https://www.bookstackapp.com/docs/admin/ldap-auth/ @@ -57,7 +57,7 @@ LDAP_SERVER=ldap://127.0.0.1:389 LDAP_BASE_DN=ou=users,dc=yunohost,dc=org LDAP_DN=false LDAP_PASS=false -LDAP_USER_FILTER=(&(|(objectclass=posixAccount))(uid={{username}})(permission=cn=__APP__.main,ou=permission,dc=yunohost,dc=org)) +LDAP_USER_FILTER=(&(uid=${user})) LDAP_VERSION=3 LDAP_TLS_INSECURE=false LDAP_ID_ATTRIBUTE=uid @@ -76,3 +76,11 @@ REDIS_SERVERS=127.0.0.1:6379:__REDIS_DB__ # Storage system to use # Can be 'local', 'local_secure' or 's3' STORAGE_TYPE=local + +# Default item listing view +# Used for public visitors and user's without a preference +# Can be 'list' or 'grid' +APP_VIEWS_BOOKS=list +APP_VIEWS_BOOKSHELVES=grid + + diff --git a/conf/app.src b/conf/app.src index 3c6c530..61b5b8c 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.12.3.tar.gz -SOURCE_SUM=c6182009052069b62e1c70307bc030cc22439ef1da29baf6a315690093693557 +SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.12.4.tar.gz +SOURCE_SUM=3af6ee1dbcdcd519dc2e42b277c845678162154f7f15d37457d62e6e8f7eea5a SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/config_panel.toml b/config_panel.toml new file mode 100644 index 0000000..c27549a --- /dev/null +++ b/config_panel.toml @@ -0,0 +1,35 @@ +version = "1.0" + +[main] +name = "Bookstack configuration" + + [main.auth_config] + name = "Athentication configuration" + + [main.auth_config.auth_method] + ask = "General auth" + choices = ["standard", "ldap"] + default = "ldap" + help = "Select an authentication method to connect to BookStack." + bind = "AUTH_METHOD:__FINALPATH__/.env" + + [main.php_fpm_config] + name = "PHP-FPM configuration" + + [main.php_fpm_config.fpm_footprint] + ask = "Memory footprint of the service?" + choices = ["low", "medium", "high", "specific"] + default = "low" + help = "low <= 20Mb per pool. medium between 20Mb and 40Mb per pool. high > 40Mb per pool.
Use specific to set a value with the following option." + + [main.php_fpm_config.free_footprint] + ask = "Memory footprint of the service?" + type = "number" + default = "0" + help = "Free field to specify exactly the footprint in Mb if you don't want to use one of the three previous values." + + [main.php_fpm_config.fpm_usage] + ask = "Expected usage of the service?" + choices = ["low", "medium", "high"] + default = "low" + help = "low: Personal usage, behind the SSO. No RAM footprint when not used, but the impact on the processor can be high if many users are using the service.
medium: Low usage, few people or/and publicly accessible. Low RAM footprint, medium processor footprint when used.
high: High usage, frequently visited website. High RAM footprint, but lower on processor usage and quickly responding." diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md index 489555a..feca101 100644 --- a/doc/DISCLAIMER.md +++ b/doc/DISCLAIMER.md @@ -1,5 +1,8 @@ ## Configuration -For the first time Login, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. +BookStack uses LDAP authentication by default. -* How to configure this app: From an admin panel, a plain file with SSH, or any other way. +You can switch to standard authentication in the webadmin -> bookstack -> config panel setting +For the first time Login with standard authentication, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. + +* How to configure this app: From an admin panel, a plain file with SSH, or config panel. diff --git a/doc/DISCLAIMER_fr.md b/doc/DISCLAIMER_fr.md index 447f108..8b13789 100644 --- a/doc/DISCLAIMER_fr.md +++ b/doc/DISCLAIMER_fr.md @@ -1,3 +1 @@ -## Configuration -Login using the default admin details `admin@admin.com` with a password of `password`. You should change these details immediately after logging in for the first time. diff --git a/manifest.json b/manifest.json index e442dbc..fd6f598 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Platform to create documentation/wiki content", "fr": "Plateforme pour créer du contenu de documentation/wiki" }, - "version": "21.12.3~ynh1", + "version": "21.12.4~ynh1", "url": "https://www.bookstackapp.com/", "upstream": { "license": "MIT", @@ -26,7 +26,7 @@ "multi_instance": false, "services": [ "nginx", - "php7.3-fpm", + "php8.0-fpm", "mysql" ], "arguments": { @@ -40,6 +40,14 @@ "example": "/bookstack", "default": "/bookstack" }, + { + "name": "admin", + "type": "user" + }, + { + "name": "password", + "type": "password" + }, { "name": "language", "type": "string", diff --git a/scripts/config b/scripts/config new file mode 100644 index 0000000..8a9110c --- /dev/null +++ b/scripts/config @@ -0,0 +1,95 @@ +#!/bin/bash + +#================================================= +# GENERIC STARTING +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +ynh_abort_if_errors + +#================================================= +# RETRIEVE ARGUMENTS +#================================================= + +phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +current_fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) + +#================================================= +# SPECIFIC GETTERS FOR TOML SHORT KEY +#================================================= + +get__fpm_footprint() { + # Free footprint value for php-fpm + # Check if current_fpm_footprint is an integer + if [ "$current_fpm_footprint" -eq "$current_fpm_footprint" ] 2> /dev/null + then + echo "specific" + else + echo "$current_fpm_footprint" + fi +} + +get__free_footprint() { + # Free footprint value for php-fpm + # Check if current_fpm_footprint is an integer + if [ "$current_fpm_footprint" -eq "$current_fpm_footprint" ] 2> /dev/null + then + # If current_fpm_footprint is an integer, that's a numeric value for the footprint + echo "$current_fpm_footprint" + else + echo "0" + fi +} + +#================================================= +# SPECIFIC SETTERS FOR TOML SHORT KEYS +#================================================= + +set__fpm_footprint() { + if [ "$fpm_footprint" != "specific" ] + then + ynh_app_setting_set --app=$app --key=fpm_footprint --value="$fpm_footprint" + fi +} + +set__free_footprint() { + if [ "$fpm_footprint" == "specific" ] + then + ynh_app_setting_set --app=$app --key=fpm_footprint --value="$free_footprint" + fi +} + +#================================================= +# GENERIC FINALIZATION +#================================================= + +ynh_app_config_validate() { + _ynh_app_config_validate + + if [ "${changed[fpm_usage]}" == "true" ] || [ "${changed[fpm_footprint]}" == "true" ] || [ "${changed[free_footprint]}" == "true" ]; then + # If fpm_footprint is set to 'specific', use $free_footprint value. + if [ "$fpm_footprint" == "specific" ] + then + fpm_footprint=$free_footprint + fi + + if [ "$fpm_footprint" == "0" ] + then + ynh_print_err --message="When selecting 'specific', you have to set a footprint value into the field below." + + exit 0 + fi + fi +} + +ynh_app_config_apply() { + _ynh_app_config_apply + + ynh_add_fpm_config --phpversion=$phpversion --usage=$fpm_usage --footprint=$fpm_footprint +} + +ynh_app_config_run $1 diff --git a/scripts/install b/scripts/install index e431cb4..236d625 100644 --- a/scripts/install +++ b/scripts/install @@ -28,9 +28,14 @@ phpversion=$YNH_PHP_VERSION timezone="$(cat /etc/timezone)" redis_db=$(ynh_redis_get_free_db) mail_pwd=$(ynh_string_random --length=12) +admin=$YNH_APP_ARG_ADMIN +email=$(ynh_user_get_info --username=$admin --key=mail) +password=$YNH_APP_ARG_PASSWORD app=$YNH_APP_INSTANCE_NAME +auth_method="ldap" + #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= @@ -50,7 +55,9 @@ 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=path --value=$path_url ynh_app_setting_set --app=$app --key=language --value=$language +ynh_app_setting_set --app=$app --key=admin --value=$admin ynh_app_setting_set --app=$app --key=redis_db --value=$redis_db +ynh_app_setting_set --app=$app --key=auth_method --value=$auth_method #================================================= # INSTALL DEPENDENCIES @@ -86,11 +93,6 @@ 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" -# Set permissions to app files -chmod 755 $final_path -chmod -R o-rwx $final_path -chown -R $app:www-data $final_path - #================================================= # NGINX CONFIGURATION #================================================= @@ -105,7 +107,7 @@ ynh_add_nginx_config ynh_script_progression --message="Configuring PHP-FPM..." --weight=2 # Create a dedicated PHP-FPM config -ynh_add_fpm_config +ynh_add_fpm_config --usage=low --footprint=low #================================================= # INSTALL LYCHEE WITH COMPOSER @@ -133,8 +135,15 @@ ynh_script_progression --message="Install BookStack" --weight=5 pushd $final_path php$phpversion artisan key:generate --no-interaction --force php$phpversion artisan migrate --no-interaction --force + php$phpversion artisan bookstack:create-admin --email="$email" --name="$admin" --external-auth-id="$admin" popd +# Set permissions to app files +chmod 755 $final_path +chmod -R o-rwx $final_path +chown -R $app:www-data $final_path +chown $app:$app $final_path/.env + #================================================= # SETUP SSOWAT #================================================= diff --git a/scripts/restore b/scripts/restore index fde38c3..2264171 100644 --- a/scripts/restore +++ b/scripts/restore @@ -29,6 +29,9 @@ db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_user=$db_name phpversion=$YNH_PHP_VERSION +fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) +fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) + #================================================= # CHECK IF THE APP CAN BE RESTORED #================================================= @@ -80,6 +83,9 @@ ynh_script_progression --message="Reconfiguring PHP-FPM..." --weight=5 ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" +# Recreate a dedicated php-fpm config +ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint --phpversion=$phpversion + #================================================= # RESTORE THE MYSQL DATABASE #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index b9e2380..6db94bf 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -24,9 +24,14 @@ db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_user=$db_name db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd) phpversion=$YNH_PHP_VERSION +timezone="$(cat /etc/timezone)" redis_db=$(ynh_app_setting_get --app=$app --key=redis_db) mail_pwd=$(ynh_string_random --length=12) +fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) +fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) +auth_method=$(ynh_app_setting_get --app=$app --key=auth_method) + #================================================= # CHECK VERSION #================================================= @@ -52,6 +57,24 @@ ynh_abort_if_errors #================================================= ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 +# If fpm_footprint doesn't exist, create it +if [ -z "$fpm_footprint" ]; then + fpm_footprint=low + ynh_app_setting_set --app=$app --key=fpm_footprint --value=$fpm_footprint +fi + +# If fpm_usage doesn't exist, create it +if [ -z "$fpm_usage" ]; then + fpm_usage=low + ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage +fi + +# If auth_method doesn't exist, create it +if [ -z "$auth_method" ]; then + auth_method="standard" + ynh_app_setting_set --app=$app --key=auth_method --value=$auth_method +fi + # Cleaning legacy permissions if ynh_legacy_permissions_exists; then ynh_legacy_permissions_delete_all @@ -76,7 +99,7 @@ then ynh_script_progression --message="Upgrading source files..." --weight=1 # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --dest_dir="$final_path" --keep="$final_path/.env $final_path/public/uploads $final_path/storage/uploads" + ynh_setup_source --dest_dir="$final_path" --keep="$final_path/public/uploads $final_path/storage/uploads" fi #================================================= @@ -100,7 +123,7 @@ ynh_install_app_dependencies $pkg_dependencies ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=1 # Create a dedicated PHP-FPM config -ynh_add_fpm_config +ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint #================================================= # INSTALL LYCHEE WITH COMPOSER @@ -108,7 +131,17 @@ ynh_add_fpm_config ynh_script_progression --message="Installing BookStack with Composer..." --weight=5 # Install composer -ynh_install_composer --install_args="--no-dev" +ynh_install_composer --phpversion=$phpversion --workdir=$final_path --install_args="--no-dev" + +#================================================= +# MODIFY A CONFIG FILE +#================================================= +ynh_script_progression --message="Adding a configuration file..." --weight=1 + +app_url_domain="https://$domain${path_url%/}" + +ynh_add_config --template=../conf/.env.example --destination=$final_path/.env +chmod 600 $final_path/.env #================================================= # FINAL BOOKSTACK INSTALL @@ -126,7 +159,7 @@ popd chmod 755 $final_path chmod -R o-rwx $final_path chown -R $app:www-data $final_path -#chmod 600 $final_path/.env +chown $app:$app $final_path/.env #================================================= # RELOAD NGINX From 351e5b831ed669782d4e91c8652876f6dfefb2ab Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Tue, 1 Feb 2022 14:59:04 +0100 Subject: [PATCH 02/19] Update check_process --- check_process | 3 +++ 1 file changed, 3 insertions(+) diff --git a/check_process b/check_process index 3c3985e..e0ee37e 100644 --- a/check_process +++ b/check_process @@ -15,6 +15,7 @@ setup_public=1 upgrade=1 upgrade=1 from_commit=aaa9c9534b01a210989aceb4ad4d2b9c585be6df + upgrade=1 from_commit=12ee6097f4f48e6fb765afbe25dd10345e9c8adb backup_restore=1 multi_instance=0 change_url=1 @@ -24,4 +25,6 @@ Notification=none ;;; Upgrade options ; commit=aaa9c9534b01a210989aceb4ad4d2b9c585be6df name=Testing (#35) + ; commit=12ee6097f4f48e6fb765afbe25dd10345e9c8adb + name=Testing (#38) manifest_arg=domain=DOMAIN&path=PATH&admin=USER&language=fr&is_public=1&password=pass&port=666& From bc28859950319e905de8876539adc9b3f5e2294b Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Tue, 1 Feb 2022 16:06:47 +0100 Subject: [PATCH 03/19] Update config_panel.toml --- config_panel.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index c27549a..6638fe3 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -1,13 +1,13 @@ version = "1.0" [main] -name = "Bookstack configuration" +name = "BookStack configuration" [main.auth_config] - name = "Athentication configuration" + name = "Authentication configuration" [main.auth_config.auth_method] - ask = "General auth" + ask = "General authentication" choices = ["standard", "ldap"] default = "ldap" help = "Select an authentication method to connect to BookStack." From 51fb7e692d6971c2db8a464ce440aacd45c16a45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 1 Feb 2022 16:43:20 +0100 Subject: [PATCH 04/19] Testing (#52) - Define admin during install - Add LDAP - Add config panel --- README.md | 9 +++-- README_fr.md | 4 +- check_process | 6 ++- conf/.env.example | 14 +++++-- conf/app.src | 4 +- config_panel.toml | 35 ++++++++++++++++ doc/DISCLAIMER.md | 7 +++- doc/DISCLAIMER_fr.md | 2 - manifest.json | 12 +++++- scripts/config | 95 ++++++++++++++++++++++++++++++++++++++++++++ scripts/install | 21 +++++++--- scripts/restore | 6 +++ scripts/upgrade | 41 +++++++++++++++++-- 13 files changed, 228 insertions(+), 28 deletions(-) create mode 100644 config_panel.toml create mode 100644 scripts/config diff --git a/README.md b/README.md index 617a8f5..8bf9e0c 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. -**Shipped version:** 21.12.3~ynh1 +**Shipped version:** 21.12.4~ynh1 **Demo:** https://demo.bookstackapp.com @@ -30,9 +30,12 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out ## Configuration -For the first time Login, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. +BookStack uses LDAP authentication by default. -* How to configure this app: From an admin panel, a plain file with SSH, or any other way. +You can switch to standard authentication in the webadmin -> bookstack -> config panel setting +For the first time Login with standard authentication, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. + +* How to configure this app: From an admin panel, a plain file with SSH, or config panel. ## Documentation and resources diff --git a/README_fr.md b/README_fr.md index 59bd315..3849387 100644 --- a/README_fr.md +++ b/README_fr.md @@ -14,7 +14,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. -**Version incluse :** 21.12.3~ynh1 +**Version incluse :** 21.12.4~ynh1 **Démo :** https://demo.bookstackapp.com @@ -24,9 +24,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out ## Avertissements / informations importantes -## Configuration -Login using the default admin details `admin@admin.com` with a password of `password`. You should change these details immediately after logging in for the first time. ## Documentations et ressources diff --git a/check_process b/check_process index ba78743..e0ee37e 100644 --- a/check_process +++ b/check_process @@ -2,6 +2,8 @@ ; Manifest domain="domain.tld" path="/path" + admin="john" + password="1Strong-Password" language="fr" is_public=1 ; Checks @@ -12,8 +14,8 @@ setup_private=1 setup_public=1 upgrade=1 - #Testing upgrade=1 from_commit=aaa9c9534b01a210989aceb4ad4d2b9c585be6df + upgrade=1 from_commit=12ee6097f4f48e6fb765afbe25dd10345e9c8adb backup_restore=1 multi_instance=0 change_url=1 @@ -23,4 +25,6 @@ Notification=none ;;; Upgrade options ; commit=aaa9c9534b01a210989aceb4ad4d2b9c585be6df name=Testing (#35) + ; commit=12ee6097f4f48e6fb765afbe25dd10345e9c8adb + name=Testing (#38) manifest_arg=domain=DOMAIN&path=PATH&admin=USER&language=fr&is_public=1&password=pass&port=666& diff --git a/conf/.env.example b/conf/.env.example index 5c09d5f..7a89b8c 100644 --- a/conf/.env.example +++ b/conf/.env.example @@ -45,11 +45,11 @@ MAIL_FROM=bookstack@__DOMAIN__ MAIL_HOST=localhost MAIL_PORT=25 MAIL_USERNAME=bookstack -MAIL_PASSWORD="__MAIL_PWD__" +MAIL_PASSWORD=__MAIL_PWD__ MAIL_ENCRYPTION=null # General auth -AUTH_METHOD=standard +AUTH_METHOD=__AUTH_METHOD__ # LDAP authentication configuration # Refer to https://www.bookstackapp.com/docs/admin/ldap-auth/ @@ -57,7 +57,7 @@ LDAP_SERVER=ldap://127.0.0.1:389 LDAP_BASE_DN=ou=users,dc=yunohost,dc=org LDAP_DN=false LDAP_PASS=false -LDAP_USER_FILTER=(&(|(objectclass=posixAccount))(uid={{username}})(permission=cn=__APP__.main,ou=permission,dc=yunohost,dc=org)) +LDAP_USER_FILTER=(&(uid=${user})) LDAP_VERSION=3 LDAP_TLS_INSECURE=false LDAP_ID_ATTRIBUTE=uid @@ -76,3 +76,11 @@ REDIS_SERVERS=127.0.0.1:6379:__REDIS_DB__ # Storage system to use # Can be 'local', 'local_secure' or 's3' STORAGE_TYPE=local + +# Default item listing view +# Used for public visitors and user's without a preference +# Can be 'list' or 'grid' +APP_VIEWS_BOOKS=list +APP_VIEWS_BOOKSHELVES=grid + + diff --git a/conf/app.src b/conf/app.src index 3c6c530..61b5b8c 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.12.3.tar.gz -SOURCE_SUM=c6182009052069b62e1c70307bc030cc22439ef1da29baf6a315690093693557 +SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.12.4.tar.gz +SOURCE_SUM=3af6ee1dbcdcd519dc2e42b277c845678162154f7f15d37457d62e6e8f7eea5a SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/config_panel.toml b/config_panel.toml new file mode 100644 index 0000000..6638fe3 --- /dev/null +++ b/config_panel.toml @@ -0,0 +1,35 @@ +version = "1.0" + +[main] +name = "BookStack configuration" + + [main.auth_config] + name = "Authentication configuration" + + [main.auth_config.auth_method] + ask = "General authentication" + choices = ["standard", "ldap"] + default = "ldap" + help = "Select an authentication method to connect to BookStack." + bind = "AUTH_METHOD:__FINALPATH__/.env" + + [main.php_fpm_config] + name = "PHP-FPM configuration" + + [main.php_fpm_config.fpm_footprint] + ask = "Memory footprint of the service?" + choices = ["low", "medium", "high", "specific"] + default = "low" + help = "low <= 20Mb per pool. medium between 20Mb and 40Mb per pool. high > 40Mb per pool.
Use specific to set a value with the following option." + + [main.php_fpm_config.free_footprint] + ask = "Memory footprint of the service?" + type = "number" + default = "0" + help = "Free field to specify exactly the footprint in Mb if you don't want to use one of the three previous values." + + [main.php_fpm_config.fpm_usage] + ask = "Expected usage of the service?" + choices = ["low", "medium", "high"] + default = "low" + help = "low: Personal usage, behind the SSO. No RAM footprint when not used, but the impact on the processor can be high if many users are using the service.
medium: Low usage, few people or/and publicly accessible. Low RAM footprint, medium processor footprint when used.
high: High usage, frequently visited website. High RAM footprint, but lower on processor usage and quickly responding." diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md index 489555a..feca101 100644 --- a/doc/DISCLAIMER.md +++ b/doc/DISCLAIMER.md @@ -1,5 +1,8 @@ ## Configuration -For the first time Login, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. +BookStack uses LDAP authentication by default. -* How to configure this app: From an admin panel, a plain file with SSH, or any other way. +You can switch to standard authentication in the webadmin -> bookstack -> config panel setting +For the first time Login with standard authentication, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. + +* How to configure this app: From an admin panel, a plain file with SSH, or config panel. diff --git a/doc/DISCLAIMER_fr.md b/doc/DISCLAIMER_fr.md index 447f108..8b13789 100644 --- a/doc/DISCLAIMER_fr.md +++ b/doc/DISCLAIMER_fr.md @@ -1,3 +1 @@ -## Configuration -Login using the default admin details `admin@admin.com` with a password of `password`. You should change these details immediately after logging in for the first time. diff --git a/manifest.json b/manifest.json index e442dbc..fd6f598 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Platform to create documentation/wiki content", "fr": "Plateforme pour créer du contenu de documentation/wiki" }, - "version": "21.12.3~ynh1", + "version": "21.12.4~ynh1", "url": "https://www.bookstackapp.com/", "upstream": { "license": "MIT", @@ -26,7 +26,7 @@ "multi_instance": false, "services": [ "nginx", - "php7.3-fpm", + "php8.0-fpm", "mysql" ], "arguments": { @@ -40,6 +40,14 @@ "example": "/bookstack", "default": "/bookstack" }, + { + "name": "admin", + "type": "user" + }, + { + "name": "password", + "type": "password" + }, { "name": "language", "type": "string", diff --git a/scripts/config b/scripts/config new file mode 100644 index 0000000..8a9110c --- /dev/null +++ b/scripts/config @@ -0,0 +1,95 @@ +#!/bin/bash + +#================================================= +# GENERIC STARTING +#================================================= +# IMPORT GENERIC HELPERS +#================================================= + +source _common.sh +source /usr/share/yunohost/helpers + +ynh_abort_if_errors + +#================================================= +# RETRIEVE ARGUMENTS +#================================================= + +phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +current_fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) + +#================================================= +# SPECIFIC GETTERS FOR TOML SHORT KEY +#================================================= + +get__fpm_footprint() { + # Free footprint value for php-fpm + # Check if current_fpm_footprint is an integer + if [ "$current_fpm_footprint" -eq "$current_fpm_footprint" ] 2> /dev/null + then + echo "specific" + else + echo "$current_fpm_footprint" + fi +} + +get__free_footprint() { + # Free footprint value for php-fpm + # Check if current_fpm_footprint is an integer + if [ "$current_fpm_footprint" -eq "$current_fpm_footprint" ] 2> /dev/null + then + # If current_fpm_footprint is an integer, that's a numeric value for the footprint + echo "$current_fpm_footprint" + else + echo "0" + fi +} + +#================================================= +# SPECIFIC SETTERS FOR TOML SHORT KEYS +#================================================= + +set__fpm_footprint() { + if [ "$fpm_footprint" != "specific" ] + then + ynh_app_setting_set --app=$app --key=fpm_footprint --value="$fpm_footprint" + fi +} + +set__free_footprint() { + if [ "$fpm_footprint" == "specific" ] + then + ynh_app_setting_set --app=$app --key=fpm_footprint --value="$free_footprint" + fi +} + +#================================================= +# GENERIC FINALIZATION +#================================================= + +ynh_app_config_validate() { + _ynh_app_config_validate + + if [ "${changed[fpm_usage]}" == "true" ] || [ "${changed[fpm_footprint]}" == "true" ] || [ "${changed[free_footprint]}" == "true" ]; then + # If fpm_footprint is set to 'specific', use $free_footprint value. + if [ "$fpm_footprint" == "specific" ] + then + fpm_footprint=$free_footprint + fi + + if [ "$fpm_footprint" == "0" ] + then + ynh_print_err --message="When selecting 'specific', you have to set a footprint value into the field below." + + exit 0 + fi + fi +} + +ynh_app_config_apply() { + _ynh_app_config_apply + + ynh_add_fpm_config --phpversion=$phpversion --usage=$fpm_usage --footprint=$fpm_footprint +} + +ynh_app_config_run $1 diff --git a/scripts/install b/scripts/install index e431cb4..236d625 100644 --- a/scripts/install +++ b/scripts/install @@ -28,9 +28,14 @@ phpversion=$YNH_PHP_VERSION timezone="$(cat /etc/timezone)" redis_db=$(ynh_redis_get_free_db) mail_pwd=$(ynh_string_random --length=12) +admin=$YNH_APP_ARG_ADMIN +email=$(ynh_user_get_info --username=$admin --key=mail) +password=$YNH_APP_ARG_PASSWORD app=$YNH_APP_INSTANCE_NAME +auth_method="ldap" + #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= @@ -50,7 +55,9 @@ 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=path --value=$path_url ynh_app_setting_set --app=$app --key=language --value=$language +ynh_app_setting_set --app=$app --key=admin --value=$admin ynh_app_setting_set --app=$app --key=redis_db --value=$redis_db +ynh_app_setting_set --app=$app --key=auth_method --value=$auth_method #================================================= # INSTALL DEPENDENCIES @@ -86,11 +93,6 @@ 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" -# Set permissions to app files -chmod 755 $final_path -chmod -R o-rwx $final_path -chown -R $app:www-data $final_path - #================================================= # NGINX CONFIGURATION #================================================= @@ -105,7 +107,7 @@ ynh_add_nginx_config ynh_script_progression --message="Configuring PHP-FPM..." --weight=2 # Create a dedicated PHP-FPM config -ynh_add_fpm_config +ynh_add_fpm_config --usage=low --footprint=low #================================================= # INSTALL LYCHEE WITH COMPOSER @@ -133,8 +135,15 @@ ynh_script_progression --message="Install BookStack" --weight=5 pushd $final_path php$phpversion artisan key:generate --no-interaction --force php$phpversion artisan migrate --no-interaction --force + php$phpversion artisan bookstack:create-admin --email="$email" --name="$admin" --external-auth-id="$admin" popd +# Set permissions to app files +chmod 755 $final_path +chmod -R o-rwx $final_path +chown -R $app:www-data $final_path +chown $app:$app $final_path/.env + #================================================= # SETUP SSOWAT #================================================= diff --git a/scripts/restore b/scripts/restore index fde38c3..2264171 100644 --- a/scripts/restore +++ b/scripts/restore @@ -29,6 +29,9 @@ db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_user=$db_name phpversion=$YNH_PHP_VERSION +fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) +fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) + #================================================= # CHECK IF THE APP CAN BE RESTORED #================================================= @@ -80,6 +83,9 @@ ynh_script_progression --message="Reconfiguring PHP-FPM..." --weight=5 ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" +# Recreate a dedicated php-fpm config +ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint --phpversion=$phpversion + #================================================= # RESTORE THE MYSQL DATABASE #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index b9e2380..6db94bf 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -24,9 +24,14 @@ db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_user=$db_name db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd) phpversion=$YNH_PHP_VERSION +timezone="$(cat /etc/timezone)" redis_db=$(ynh_app_setting_get --app=$app --key=redis_db) mail_pwd=$(ynh_string_random --length=12) +fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) +fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) +auth_method=$(ynh_app_setting_get --app=$app --key=auth_method) + #================================================= # CHECK VERSION #================================================= @@ -52,6 +57,24 @@ ynh_abort_if_errors #================================================= ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 +# If fpm_footprint doesn't exist, create it +if [ -z "$fpm_footprint" ]; then + fpm_footprint=low + ynh_app_setting_set --app=$app --key=fpm_footprint --value=$fpm_footprint +fi + +# If fpm_usage doesn't exist, create it +if [ -z "$fpm_usage" ]; then + fpm_usage=low + ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage +fi + +# If auth_method doesn't exist, create it +if [ -z "$auth_method" ]; then + auth_method="standard" + ynh_app_setting_set --app=$app --key=auth_method --value=$auth_method +fi + # Cleaning legacy permissions if ynh_legacy_permissions_exists; then ynh_legacy_permissions_delete_all @@ -76,7 +99,7 @@ then ynh_script_progression --message="Upgrading source files..." --weight=1 # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --dest_dir="$final_path" --keep="$final_path/.env $final_path/public/uploads $final_path/storage/uploads" + ynh_setup_source --dest_dir="$final_path" --keep="$final_path/public/uploads $final_path/storage/uploads" fi #================================================= @@ -100,7 +123,7 @@ ynh_install_app_dependencies $pkg_dependencies ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=1 # Create a dedicated PHP-FPM config -ynh_add_fpm_config +ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint #================================================= # INSTALL LYCHEE WITH COMPOSER @@ -108,7 +131,17 @@ ynh_add_fpm_config ynh_script_progression --message="Installing BookStack with Composer..." --weight=5 # Install composer -ynh_install_composer --install_args="--no-dev" +ynh_install_composer --phpversion=$phpversion --workdir=$final_path --install_args="--no-dev" + +#================================================= +# MODIFY A CONFIG FILE +#================================================= +ynh_script_progression --message="Adding a configuration file..." --weight=1 + +app_url_domain="https://$domain${path_url%/}" + +ynh_add_config --template=../conf/.env.example --destination=$final_path/.env +chmod 600 $final_path/.env #================================================= # FINAL BOOKSTACK INSTALL @@ -126,7 +159,7 @@ popd chmod 755 $final_path chmod -R o-rwx $final_path chown -R $app:www-data $final_path -#chmod 600 $final_path/.env +chown $app:$app $final_path/.env #================================================= # RELOAD NGINX From 042725777c97a61711e21cf930225eaa314e225a Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Tue, 1 Feb 2022 19:26:24 +0100 Subject: [PATCH 05/19] Create updater.sh --- .github/workflows/updater.sh | 136 +++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100755 .github/workflows/updater.sh diff --git a/.github/workflows/updater.sh b/.github/workflows/updater.sh new file mode 100755 index 0000000..c4d53fc --- /dev/null +++ b/.github/workflows/updater.sh @@ -0,0 +1,136 @@ +#!/bin/bash + +#================================================= +# PACKAGE UPDATING HELPER +#================================================= + +# This script is meant to be run by GitHub Actions +# The YunoHost-Apps organisation offers a template Action to run this script periodically +# Since each app is different, maintainers can adapt its contents so as to perform +# automatic actions when a new upstream release is detected. + +# Remove this exit command when you are ready to run this Action +exit 1 + +#================================================= +# FETCHING LATEST RELEASE AND ITS ASSETS +#================================================= + +# Fetching information +current_version=$(cat manifest.json | jq -j '.version|split("~")[0]') +repo=$(cat manifest.json | jq -j '.upstream.code|split("https://github.com/")[1]') +# Some jq magic is needed, because the latest upstream release is not always the latest version (e.g. security patches for older versions) +version=$(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '.[] | select( .prerelease != true ) | .tag_name' | sort -V | tail -1) +assets=($(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '[ .[] | select(.tag_name=="'$version'").assets[].browser_download_url ] | join(" ") | @sh' | tr -d "'")) + +# Later down the script, we assume the version has only digits and dots +# Sometimes the release name starts with a "v", so let's filter it out. +# You may need more tweaks here if the upstream repository has different naming conventions. +if [[ ${version:0:1} == "v" || ${version:0:1} == "V" ]]; then + version=${version:1} +fi + +# Setting up the environment variables +echo "Current version: $current_version" +echo "Latest release from upstream: $version" +echo "VERSION=$version" >> $GITHUB_ENV +# For the time being, let's assume the script will fail +echo "PROCEED=false" >> $GITHUB_ENV + +# Proceed only if the retrieved version is greater than the current one +if ! dpkg --compare-versions "$current_version" "lt" "$version" ; then + echo "::warning ::No new version available" + exit 0 +# Proceed only if a PR for this new version does not already exist +elif git ls-remote -q --exit-code --heads https://github.com/$GITHUB_REPOSITORY.git ci-auto-update-v$version ; then + echo "::warning ::A branch already exists for this update" + exit 0 +fi + +# Each release can hold multiple assets (e.g. binaries for different architectures, source code, etc.) +echo "${#assets[@]} available asset(s)" + +#================================================= +# UPDATE SOURCE FILES +#================================================= + +# Here we use the $assets variable to get the resources published in the upstream release. +# Here is an example for Grav, it has to be adapted in accordance with how the upstream releases look like. + +# Let's loop over the array of assets URLs +for asset_url in ${assets[@]}; do + +echo "Handling asset at $asset_url" + +# Assign the asset to a source file in conf/ directory +# Here we base the source file name upon a unique keyword in the assets url (admin vs. update) +# Leave $src empty to ignore the asset +case $asset_url in + *"admin"*) + src="app" + ;; + *"update"*) + src="app-upgrade" + ;; + *) + src="" + ;; +esac + +# If $src is not empty, let's process the asset +if [ ! -z "$src" ]; then + +# Create the temporary directory +tempdir="$(mktemp -d)" + +# Download sources and calculate checksum +filename=${asset_url##*/} +curl --silent -4 -L $asset_url -o "$tempdir/$filename" +checksum=$(sha256sum "$tempdir/$filename" | head -c 64) + +# Delete temporary directory +rm -rf $tempdir + +# Get extension +if [[ $filename == *.tar.gz ]]; then + extension=tar.gz +else + extension=${filename##*.} +fi + +# Rewrite source file +cat < conf/$src.src +SOURCE_URL=$asset_url +SOURCE_SUM=$checksum +SOURCE_SUM_PRG=sha256sum +SOURCE_FORMAT=$extension +SOURCE_IN_SUBDIR=true +SOURCE_FILENAME= +EOT +echo "... conf/$src.src updated" + +else +echo "... asset ignored" +fi + +done + +#================================================= +# SPECIFIC UPDATE STEPS +#================================================= + +# Any action on the app's source code can be done. +# The GitHub Action workflow takes care of committing all changes after this script ends. + +#================================================= +# GENERIC FINALIZATION +#================================================= + +# Replace new version in manifest +echo "$(jq -s --indent 4 ".[] | .version = \"$version~ynh1\"" manifest.json)" > manifest.json + +# No need to update the README, yunohost-bot takes care of it + +# The Action will proceed only if the PROCEED environment variable is set to true +echo "PROCEED=true" >> $GITHUB_ENV +exit 0 From 6c9102f2d494c7fe20b8ddd2bc0686874b3b72ce Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Wed, 2 Feb 2022 15:40:12 +0100 Subject: [PATCH 06/19] Remove password --- manifest.json | 6 +----- scripts/install | 1 - 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/manifest.json b/manifest.json index fd6f598..a1dca7d 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Platform to create documentation/wiki content", "fr": "Plateforme pour créer du contenu de documentation/wiki" }, - "version": "21.12.4~ynh1", + "version": "21.12.4~ynh2", "url": "https://www.bookstackapp.com/", "upstream": { "license": "MIT", @@ -44,10 +44,6 @@ "name": "admin", "type": "user" }, - { - "name": "password", - "type": "password" - }, { "name": "language", "type": "string", diff --git a/scripts/install b/scripts/install index 236d625..75927da 100644 --- a/scripts/install +++ b/scripts/install @@ -30,7 +30,6 @@ redis_db=$(ynh_redis_get_free_db) mail_pwd=$(ynh_string_random --length=12) admin=$YNH_APP_ARG_ADMIN email=$(ynh_user_get_info --username=$admin --key=mail) -password=$YNH_APP_ARG_PASSWORD app=$YNH_APP_INSTANCE_NAME From 864aca620eb903e26ecb439a73a852502548737f Mon Sep 17 00:00:00 2001 From: Yunohost-Bot <> Date: Wed, 2 Feb 2022 14:40:22 +0000 Subject: [PATCH 07/19] Auto-update README --- README.md | 2 +- README_fr.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8bf9e0c..36bc8a7 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. -**Shipped version:** 21.12.4~ynh1 +**Shipped version:** 21.12.4~ynh2 **Demo:** https://demo.bookstackapp.com diff --git a/README_fr.md b/README_fr.md index 3849387..0a9be43 100644 --- a/README_fr.md +++ b/README_fr.md @@ -14,7 +14,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. -**Version incluse :** 21.12.4~ynh1 +**Version incluse :** 21.12.4~ynh2 **Démo :** https://demo.bookstackapp.com From a76647c382992abc774468863a2cfce1d52806a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Wed, 2 Feb 2022 17:53:22 +0100 Subject: [PATCH 08/19] Testing (#53) * Remove password --- .github/workflows/updater.sh | 136 +++++++++++++++++++++++++++++++++++ README.md | 2 +- README_fr.md | 2 +- manifest.json | 6 +- scripts/install | 1 - 5 files changed, 139 insertions(+), 8 deletions(-) create mode 100755 .github/workflows/updater.sh diff --git a/.github/workflows/updater.sh b/.github/workflows/updater.sh new file mode 100755 index 0000000..c4d53fc --- /dev/null +++ b/.github/workflows/updater.sh @@ -0,0 +1,136 @@ +#!/bin/bash + +#================================================= +# PACKAGE UPDATING HELPER +#================================================= + +# This script is meant to be run by GitHub Actions +# The YunoHost-Apps organisation offers a template Action to run this script periodically +# Since each app is different, maintainers can adapt its contents so as to perform +# automatic actions when a new upstream release is detected. + +# Remove this exit command when you are ready to run this Action +exit 1 + +#================================================= +# FETCHING LATEST RELEASE AND ITS ASSETS +#================================================= + +# Fetching information +current_version=$(cat manifest.json | jq -j '.version|split("~")[0]') +repo=$(cat manifest.json | jq -j '.upstream.code|split("https://github.com/")[1]') +# Some jq magic is needed, because the latest upstream release is not always the latest version (e.g. security patches for older versions) +version=$(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '.[] | select( .prerelease != true ) | .tag_name' | sort -V | tail -1) +assets=($(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '[ .[] | select(.tag_name=="'$version'").assets[].browser_download_url ] | join(" ") | @sh' | tr -d "'")) + +# Later down the script, we assume the version has only digits and dots +# Sometimes the release name starts with a "v", so let's filter it out. +# You may need more tweaks here if the upstream repository has different naming conventions. +if [[ ${version:0:1} == "v" || ${version:0:1} == "V" ]]; then + version=${version:1} +fi + +# Setting up the environment variables +echo "Current version: $current_version" +echo "Latest release from upstream: $version" +echo "VERSION=$version" >> $GITHUB_ENV +# For the time being, let's assume the script will fail +echo "PROCEED=false" >> $GITHUB_ENV + +# Proceed only if the retrieved version is greater than the current one +if ! dpkg --compare-versions "$current_version" "lt" "$version" ; then + echo "::warning ::No new version available" + exit 0 +# Proceed only if a PR for this new version does not already exist +elif git ls-remote -q --exit-code --heads https://github.com/$GITHUB_REPOSITORY.git ci-auto-update-v$version ; then + echo "::warning ::A branch already exists for this update" + exit 0 +fi + +# Each release can hold multiple assets (e.g. binaries for different architectures, source code, etc.) +echo "${#assets[@]} available asset(s)" + +#================================================= +# UPDATE SOURCE FILES +#================================================= + +# Here we use the $assets variable to get the resources published in the upstream release. +# Here is an example for Grav, it has to be adapted in accordance with how the upstream releases look like. + +# Let's loop over the array of assets URLs +for asset_url in ${assets[@]}; do + +echo "Handling asset at $asset_url" + +# Assign the asset to a source file in conf/ directory +# Here we base the source file name upon a unique keyword in the assets url (admin vs. update) +# Leave $src empty to ignore the asset +case $asset_url in + *"admin"*) + src="app" + ;; + *"update"*) + src="app-upgrade" + ;; + *) + src="" + ;; +esac + +# If $src is not empty, let's process the asset +if [ ! -z "$src" ]; then + +# Create the temporary directory +tempdir="$(mktemp -d)" + +# Download sources and calculate checksum +filename=${asset_url##*/} +curl --silent -4 -L $asset_url -o "$tempdir/$filename" +checksum=$(sha256sum "$tempdir/$filename" | head -c 64) + +# Delete temporary directory +rm -rf $tempdir + +# Get extension +if [[ $filename == *.tar.gz ]]; then + extension=tar.gz +else + extension=${filename##*.} +fi + +# Rewrite source file +cat < conf/$src.src +SOURCE_URL=$asset_url +SOURCE_SUM=$checksum +SOURCE_SUM_PRG=sha256sum +SOURCE_FORMAT=$extension +SOURCE_IN_SUBDIR=true +SOURCE_FILENAME= +EOT +echo "... conf/$src.src updated" + +else +echo "... asset ignored" +fi + +done + +#================================================= +# SPECIFIC UPDATE STEPS +#================================================= + +# Any action on the app's source code can be done. +# The GitHub Action workflow takes care of committing all changes after this script ends. + +#================================================= +# GENERIC FINALIZATION +#================================================= + +# Replace new version in manifest +echo "$(jq -s --indent 4 ".[] | .version = \"$version~ynh1\"" manifest.json)" > manifest.json + +# No need to update the README, yunohost-bot takes care of it + +# The Action will proceed only if the PROCEED environment variable is set to true +echo "PROCEED=true" >> $GITHUB_ENV +exit 0 diff --git a/README.md b/README.md index 8bf9e0c..36bc8a7 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. -**Shipped version:** 21.12.4~ynh1 +**Shipped version:** 21.12.4~ynh2 **Demo:** https://demo.bookstackapp.com diff --git a/README_fr.md b/README_fr.md index 3849387..0a9be43 100644 --- a/README_fr.md +++ b/README_fr.md @@ -14,7 +14,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. -**Version incluse :** 21.12.4~ynh1 +**Version incluse :** 21.12.4~ynh2 **Démo :** https://demo.bookstackapp.com diff --git a/manifest.json b/manifest.json index fd6f598..a1dca7d 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Platform to create documentation/wiki content", "fr": "Plateforme pour créer du contenu de documentation/wiki" }, - "version": "21.12.4~ynh1", + "version": "21.12.4~ynh2", "url": "https://www.bookstackapp.com/", "upstream": { "license": "MIT", @@ -44,10 +44,6 @@ "name": "admin", "type": "user" }, - { - "name": "password", - "type": "password" - }, { "name": "language", "type": "string", diff --git a/scripts/install b/scripts/install index 236d625..75927da 100644 --- a/scripts/install +++ b/scripts/install @@ -30,7 +30,6 @@ redis_db=$(ynh_redis_get_free_db) mail_pwd=$(ynh_string_random --length=12) admin=$YNH_APP_ARG_ADMIN email=$(ynh_user_get_info --username=$admin --key=mail) -password=$YNH_APP_ARG_PASSWORD app=$YNH_APP_INSTANCE_NAME From f6a913710470abb0da07400159fbd63dbca7b991 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Wed, 2 Feb 2022 21:41:12 +0100 Subject: [PATCH 09/19] Fix --- doc/DESCRIPTION.md | 7 +++++++ doc/DISCLAIMER.md | 2 -- manifest.json | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md index 4683449..df0b2ca 100644 --- a/doc/DESCRIPTION.md +++ b/doc/DESCRIPTION.md @@ -1 +1,8 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. + +### Features +- Multi-Factor Authentication +- Dark & Light Modes +- LDAP Authentication +- Optional Markdown Editor +- Multi-Lingual diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md index feca101..672bf5e 100644 --- a/doc/DISCLAIMER.md +++ b/doc/DISCLAIMER.md @@ -4,5 +4,3 @@ BookStack uses LDAP authentication by default. You can switch to standard authentication in the webadmin -> bookstack -> config panel setting For the first time Login with standard authentication, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. - -* How to configure this app: From an admin panel, a plain file with SSH, or config panel. diff --git a/manifest.json b/manifest.json index a1dca7d..b38b780 100644 --- a/manifest.json +++ b/manifest.json @@ -12,7 +12,8 @@ "license": "MIT", "website": "https://www.bookstackapp.com", "demo": "https://demo.bookstackapp.com", - "admindoc": "https://www.bookstackapp.com/docs", + "admindoc": "https://www.bookstackapp.com/docs/admin/", + "userdoc": "https://www.bookstackapp.com/docs/user/", "code": "https://github.com/BookStackApp/BookStack" }, "license": "MIT", From 0362bd579bc32400589375df555cbaef86641299 Mon Sep 17 00:00:00 2001 From: Yunohost-Bot <> Date: Wed, 2 Feb 2022 20:41:22 +0000 Subject: [PATCH 10/19] Auto-update README --- README.md | 12 +++++++++--- README_fr.md | 10 +++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 36bc8a7..233bba8 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,13 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. +### Features +- Multi-Factor Authentication +- Dark & Light Modes +- LDAP Authentication +- Optional Markdown Editor +- Multi-Lingual + **Shipped version:** 21.12.4~ynh2 @@ -35,12 +42,11 @@ BookStack uses LDAP authentication by default. You can switch to standard authentication in the webadmin -> bookstack -> config panel setting For the first time Login with standard authentication, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. -* How to configure this app: From an admin panel, a plain file with SSH, or config panel. - ## Documentation and resources * Official app website: https://www.bookstackapp.com -* Official admin documentation: https://www.bookstackapp.com/docs +* Official user documentation: https://www.bookstackapp.com/docs/user/ +* Official admin documentation: https://www.bookstackapp.com/docs/admin/ * Upstream app code repository: https://github.com/BookStackApp/BookStack * YunoHost documentation for this app: https://yunohost.org/app_bookstack * Report a bug: https://github.com/YunoHost-Apps/bookstack_ynh/issues diff --git a/README_fr.md b/README_fr.md index 0a9be43..54bc329 100644 --- a/README_fr.md +++ b/README_fr.md @@ -13,6 +13,13 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. +### Features +- Multi-Factor Authentication +- Dark & Light Modes +- LDAP Authentication +- Optional Markdown Editor +- Multi-Lingual + **Version incluse :** 21.12.4~ynh2 @@ -29,7 +36,8 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out ## Documentations et ressources * Site officiel de l'app : https://www.bookstackapp.com -* Documentation officielle de l'admin : https://www.bookstackapp.com/docs +* Documentation officielle utilisateur : https://www.bookstackapp.com/docs/user/ +* Documentation officielle de l'admin : https://www.bookstackapp.com/docs/admin/ * Dépôt de code officiel de l'app : https://github.com/BookStackApp/BookStack * Documentation YunoHost pour cette app : https://yunohost.org/app_bookstack * Signaler un bug : https://github.com/YunoHost-Apps/bookstack_ynh/issues From 6620717232fd6a0cf33a32f0d9458ab31a77d4ae Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Wed, 2 Feb 2022 21:47:31 +0100 Subject: [PATCH 11/19] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index b38b780..bef0e98 100644 --- a/manifest.json +++ b/manifest.json @@ -52,7 +52,7 @@ "en": "Choose the application language", "fr": "Choisissez la langue de l'application" }, - "choices": ["de", "en", "es", "fr", "it", "nl", "pt"], + "choices": ["de", "en", "es_ES", "fa", "fr", "it", "lt", "nl", "pl", "pt_PT", "uk", "zh_CN"], "default": "en" }, { From 04e45755fb3792e892f315a0a88ab4fa2fd231fe Mon Sep 17 00:00:00 2001 From: Yunohost-Bot <> Date: Sun, 6 Feb 2022 19:16:08 +0000 Subject: [PATCH 12/19] Auto-update README --- README.md | 1 + README_fr.md | 1 + 2 files changed, 2 insertions(+) diff --git a/README.md b/README.md index c84e77e..233bba8 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out - Optional Markdown Editor - Multi-Lingual + **Shipped version:** 21.12.4~ynh2 **Demo:** https://demo.bookstackapp.com diff --git a/README_fr.md b/README_fr.md index 59ac722..54bc329 100644 --- a/README_fr.md +++ b/README_fr.md @@ -20,6 +20,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out - Optional Markdown Editor - Multi-Lingual + **Version incluse :** 21.12.4~ynh2 **Démo :** https://demo.bookstackapp.com From b14c537292e87eb5a319bcdfd729a039d1963f21 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Sun, 6 Feb 2022 20:17:27 +0100 Subject: [PATCH 13/19] 21.12.5 --- conf/app.src | 4 ++-- manifest.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/app.src b/conf/app.src index 61b5b8c..bc18688 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.12.4.tar.gz -SOURCE_SUM=3af6ee1dbcdcd519dc2e42b277c845678162154f7f15d37457d62e6e8f7eea5a +SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.12.5.tar.gz +SOURCE_SUM=ca2213ebfd453db4b7692edffdbdf38fd6e116f2aa97cc23bbecac2c94745b9c SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index bef0e98..d0eac65 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Platform to create documentation/wiki content", "fr": "Plateforme pour créer du contenu de documentation/wiki" }, - "version": "21.12.4~ynh2", + "version": "21.12.5~ynh1", "url": "https://www.bookstackapp.com/", "upstream": { "license": "MIT", From 6524d62041dd510b77c6592e1f217609069d4c25 Mon Sep 17 00:00:00 2001 From: Yunohost-Bot <> Date: Sun, 6 Feb 2022 19:19:10 +0000 Subject: [PATCH 14/19] Auto-update README --- README.md | 2 +- README_fr.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 233bba8..2b0d4b7 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out - Multi-Lingual -**Shipped version:** 21.12.4~ynh2 +**Shipped version:** 21.12.5~ynh1 **Demo:** https://demo.bookstackapp.com diff --git a/README_fr.md b/README_fr.md index 54bc329..032801c 100644 --- a/README_fr.md +++ b/README_fr.md @@ -21,7 +21,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out - Multi-Lingual -**Version incluse :** 21.12.4~ynh2 +**Version incluse :** 21.12.5~ynh1 **Démo :** https://demo.bookstackapp.com From 3d530fb8fe2e11be2ef746a0d9a44dd9d83d4f54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Mon, 7 Feb 2022 19:29:35 +0100 Subject: [PATCH 15/19] Testing (#54) * 21.12.5 --- README.md | 14 ++++++++++---- README_fr.md | 12 ++++++++++-- conf/app.src | 4 ++-- doc/DESCRIPTION.md | 7 +++++++ doc/DISCLAIMER.md | 2 -- manifest.json | 7 ++++--- 6 files changed, 33 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 36bc8a7..2b0d4b7 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,15 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. +### Features +- Multi-Factor Authentication +- Dark & Light Modes +- LDAP Authentication +- Optional Markdown Editor +- Multi-Lingual -**Shipped version:** 21.12.4~ynh2 + +**Shipped version:** 21.12.5~ynh1 **Demo:** https://demo.bookstackapp.com @@ -35,12 +42,11 @@ BookStack uses LDAP authentication by default. You can switch to standard authentication in the webadmin -> bookstack -> config panel setting For the first time Login with standard authentication, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. -* How to configure this app: From an admin panel, a plain file with SSH, or config panel. - ## Documentation and resources * Official app website: https://www.bookstackapp.com -* Official admin documentation: https://www.bookstackapp.com/docs +* Official user documentation: https://www.bookstackapp.com/docs/user/ +* Official admin documentation: https://www.bookstackapp.com/docs/admin/ * Upstream app code repository: https://github.com/BookStackApp/BookStack * YunoHost documentation for this app: https://yunohost.org/app_bookstack * Report a bug: https://github.com/YunoHost-Apps/bookstack_ynh/issues diff --git a/README_fr.md b/README_fr.md index 0a9be43..032801c 100644 --- a/README_fr.md +++ b/README_fr.md @@ -13,8 +13,15 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. +### Features +- Multi-Factor Authentication +- Dark & Light Modes +- LDAP Authentication +- Optional Markdown Editor +- Multi-Lingual -**Version incluse :** 21.12.4~ynh2 + +**Version incluse :** 21.12.5~ynh1 **Démo :** https://demo.bookstackapp.com @@ -29,7 +36,8 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out ## Documentations et ressources * Site officiel de l'app : https://www.bookstackapp.com -* Documentation officielle de l'admin : https://www.bookstackapp.com/docs +* Documentation officielle utilisateur : https://www.bookstackapp.com/docs/user/ +* Documentation officielle de l'admin : https://www.bookstackapp.com/docs/admin/ * Dépôt de code officiel de l'app : https://github.com/BookStackApp/BookStack * Documentation YunoHost pour cette app : https://yunohost.org/app_bookstack * Signaler un bug : https://github.com/YunoHost-Apps/bookstack_ynh/issues diff --git a/conf/app.src b/conf/app.src index 61b5b8c..bc18688 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.12.4.tar.gz -SOURCE_SUM=3af6ee1dbcdcd519dc2e42b277c845678162154f7f15d37457d62e6e8f7eea5a +SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.12.5.tar.gz +SOURCE_SUM=ca2213ebfd453db4b7692edffdbdf38fd6e116f2aa97cc23bbecac2c94745b9c SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md index 4683449..df0b2ca 100644 --- a/doc/DESCRIPTION.md +++ b/doc/DESCRIPTION.md @@ -1 +1,8 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out of the box experience. New users to an instance should find the experience intuitive and only basic word-processing skills should be required to get involved in creating content on BookStack. The platform should provide advanced power features to those that desire it but they should not interfere with the core simple user experience. + +### Features +- Multi-Factor Authentication +- Dark & Light Modes +- LDAP Authentication +- Optional Markdown Editor +- Multi-Lingual diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md index feca101..672bf5e 100644 --- a/doc/DISCLAIMER.md +++ b/doc/DISCLAIMER.md @@ -4,5 +4,3 @@ BookStack uses LDAP authentication by default. You can switch to standard authentication in the webadmin -> bookstack -> config panel setting For the first time Login with standard authentication, use the default credentials `admin@admin.com` and `password`. You should change these details immediately after logging in for the first time. - -* How to configure this app: From an admin panel, a plain file with SSH, or config panel. diff --git a/manifest.json b/manifest.json index a1dca7d..d0eac65 100644 --- a/manifest.json +++ b/manifest.json @@ -6,13 +6,14 @@ "en": "Platform to create documentation/wiki content", "fr": "Plateforme pour créer du contenu de documentation/wiki" }, - "version": "21.12.4~ynh2", + "version": "21.12.5~ynh1", "url": "https://www.bookstackapp.com/", "upstream": { "license": "MIT", "website": "https://www.bookstackapp.com", "demo": "https://demo.bookstackapp.com", - "admindoc": "https://www.bookstackapp.com/docs", + "admindoc": "https://www.bookstackapp.com/docs/admin/", + "userdoc": "https://www.bookstackapp.com/docs/user/", "code": "https://github.com/BookStackApp/BookStack" }, "license": "MIT", @@ -51,7 +52,7 @@ "en": "Choose the application language", "fr": "Choisissez la langue de l'application" }, - "choices": ["de", "en", "es", "fr", "it", "nl", "pt"], + "choices": ["de", "en", "es_ES", "fa", "fr", "it", "lt", "nl", "pl", "pt_PT", "uk", "zh_CN"], "default": "en" }, { From 6a05f37459d4e23a821fb01b677a4dd29b276013 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Sat, 26 Feb 2022 23:30:51 +0100 Subject: [PATCH 16/19] 22.02 (#55) * 22.02 * Auto-update README * Auto-update README Co-authored-by: Yunohost-Bot <> --- README.md | 2 +- README_fr.md | 2 +- conf/app.src | 4 ++-- manifest.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2b0d4b7..449bf9f 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out - Multi-Lingual -**Shipped version:** 21.12.5~ynh1 +**Shipped version:** 22.02~ynh1 **Demo:** https://demo.bookstackapp.com diff --git a/README_fr.md b/README_fr.md index 032801c..4c29506 100644 --- a/README_fr.md +++ b/README_fr.md @@ -21,7 +21,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out - Multi-Lingual -**Version incluse :** 21.12.5~ynh1 +**Version incluse :** 22.02~ynh1 **Démo :** https://demo.bookstackapp.com diff --git a/conf/app.src b/conf/app.src index bc18688..6cc6bb6 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.12.5.tar.gz -SOURCE_SUM=ca2213ebfd453db4b7692edffdbdf38fd6e116f2aa97cc23bbecac2c94745b9c +SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v22.02.tar.gz +SOURCE_SUM=b13b339f456105836f941cdb6cba7f9dcfd2d21d43c6ef3f7073f114c26ff285 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index d0eac65..53e0b9d 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Platform to create documentation/wiki content", "fr": "Plateforme pour créer du contenu de documentation/wiki" }, - "version": "21.12.5~ynh1", + "version": "22.02~ynh1", "url": "https://www.bookstackapp.com/", "upstream": { "license": "MIT", From 846713e655eb9fdf251347caabef37bed711beb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Sat, 26 Feb 2022 23:35:20 +0100 Subject: [PATCH 17/19] Testing (#56) * 22.02 --- README.md | 2 +- README_fr.md | 2 +- conf/app.src | 4 ++-- manifest.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2b0d4b7..449bf9f 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out - Multi-Lingual -**Shipped version:** 21.12.5~ynh1 +**Shipped version:** 22.02~ynh1 **Demo:** https://demo.bookstackapp.com diff --git a/README_fr.md b/README_fr.md index 032801c..4c29506 100644 --- a/README_fr.md +++ b/README_fr.md @@ -21,7 +21,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out - Multi-Lingual -**Version incluse :** 21.12.5~ynh1 +**Version incluse :** 22.02~ynh1 **Démo :** https://demo.bookstackapp.com diff --git a/conf/app.src b/conf/app.src index bc18688..6cc6bb6 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.12.5.tar.gz -SOURCE_SUM=ca2213ebfd453db4b7692edffdbdf38fd6e116f2aa97cc23bbecac2c94745b9c +SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v22.02.tar.gz +SOURCE_SUM=b13b339f456105836f941cdb6cba7f9dcfd2d21d43c6ef3f7073f114c26ff285 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index d0eac65..53e0b9d 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Platform to create documentation/wiki content", "fr": "Plateforme pour créer du contenu de documentation/wiki" }, - "version": "21.12.5~ynh1", + "version": "22.02~ynh1", "url": "https://www.bookstackapp.com/", "upstream": { "license": "MIT", From 5ad456651d102e0a3d3a56a325edb91cfbc8a55c Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Sun, 27 Feb 2022 19:03:43 +0100 Subject: [PATCH 18/19] 22.02.1 --- conf/app.src | 4 ++-- manifest.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/app.src b/conf/app.src index 6cc6bb6..954888d 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v22.02.tar.gz -SOURCE_SUM=b13b339f456105836f941cdb6cba7f9dcfd2d21d43c6ef3f7073f114c26ff285 +SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v22.02.1.tar.gz +SOURCE_SUM=af2e816a3b78058f97de167c36560f2d3fa7cb4c680221a0f9d0a0b7a39fcd52 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index 53e0b9d..bcbe4c3 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Platform to create documentation/wiki content", "fr": "Plateforme pour créer du contenu de documentation/wiki" }, - "version": "22.02~ynh1", + "version": "22.02.1~ynh1", "url": "https://www.bookstackapp.com/", "upstream": { "license": "MIT", From 5f30a96bd64b492badc85c3d0d1a2cefa9356633 Mon Sep 17 00:00:00 2001 From: Yunohost-Bot <> Date: Sun, 27 Feb 2022 18:03:50 +0000 Subject: [PATCH 19/19] Auto-update README --- README.md | 2 +- README_fr.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 449bf9f..3f0bbc5 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out - Multi-Lingual -**Shipped version:** 22.02~ynh1 +**Shipped version:** 22.02.1~ynh1 **Demo:** https://demo.bookstackapp.com diff --git a/README_fr.md b/README_fr.md index 4c29506..b7904e3 100644 --- a/README_fr.md +++ b/README_fr.md @@ -21,7 +21,7 @@ BookStack is an opinionated wiki system that provides a pleasant and simple out - Multi-Lingual -**Version incluse :** 22.02~ynh1 +**Version incluse :** 22.02.1~ynh1 **Démo :** https://demo.bookstackapp.com