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