1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/bookstack_ynh.git synced 2024-09-03 18:16:02 +02:00
* 21.11.2
This commit is contained in:
Éric Gaspar 2021-11-30 17:48:41 +01:00 committed by GitHub
parent f871fbeaa0
commit f7f8cb36de
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 128 additions and 44 deletions

View file

@ -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. 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.08.2~ynh1 **Shipped version:** 21.11.2~ynh1
**Demo:** https://demo.bookstackapp.com **Demo:** https://demo.bookstackapp.com
@ -37,7 +37,6 @@ For the first time Login, use the default credentials `admin@admin.com` and `pas
## Documentation and resources ## Documentation and resources
* Official app website: https://www.bookstackapp.com * Official app website: https://www.bookstackapp.com
* Official user documentation: https://yunohost.org/en/app_bookstack
* Official admin documentation: https://www.bookstackapp.com/docs * Official admin documentation: https://www.bookstackapp.com/docs
* Upstream app code repository: https://github.com/BookStackApp/BookStack * Upstream app code repository: https://github.com/BookStackApp/BookStack
* YunoHost documentation for this app: https://yunohost.org/app_bookstack * YunoHost documentation for this app: https://yunohost.org/app_bookstack

View file

@ -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. 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.08.2~ynh1 **Version incluse :** 21.11.2~ynh1
**Démo :** https://demo.bookstackapp.com **Démo :** https://demo.bookstackapp.com
@ -31,7 +31,6 @@ Login using the default admin details `admin@admin.com` with a password of `pass
## Documentations et ressources ## Documentations et ressources
* Site officiel de l'app : https://www.bookstackapp.com * Site officiel de l'app : https://www.bookstackapp.com
* Documentation officielle utilisateur : https://yunohost.org/en/app_bookstack
* Documentation officielle de l'admin : https://www.bookstackapp.com/docs * Documentation officielle de l'admin : https://www.bookstackapp.com/docs
* Dépôt de code officiel de l'app : https://github.com/BookStackApp/BookStack * Dépôt de code officiel de l'app : https://github.com/BookStackApp/BookStack
* Documentation YunoHost pour cette app : https://yunohost.org/app_bookstack * Documentation YunoHost pour cette app : https://yunohost.org/app_bookstack

View file

@ -52,11 +52,18 @@ LDAP_SERVER=ldap://127.0.0.1:389
LDAP_BASE_DN=ou=users,dc=yunohost,dc=org LDAP_BASE_DN=ou=users,dc=yunohost,dc=org
LDAP_DN=false LDAP_DN=false
LDAP_PASS=false LDAP_PASS=false
LDAP_USER_FILTER="(&(|(objectclass=posixAccount))(uid={{username}})(permission=cn=__APP__.main,ou=permission,dc=yunohost,dc=org))" LDAP_USER_FILTER=(&(|(objectclass=posixAccount))(uid={{username}})(permission=cn=__APP__.main,ou=permission,dc=yunohost,dc=org))
LDAP_VERSION=false LDAP_VERSION=3
LDAP_TLS_INSECURE=false LDAP_TLS_INSECURE=false
LDAP_ID_ATTRIBUTE=uid LDAP_ID_ATTRIBUTE=uid
LDAP_EMAIL_ATTRIBUTE=mail LDAP_EMAIL_ATTRIBUTE=mail
LDAP_DISPLAY_NAME_ATTRIBUTE=cn LDAP_DISPLAY_NAME_ATTRIBUTE=cn
LDAP_FOLLOW_REFERRALS=true LDAP_FOLLOW_REFERRALS=true
LDAP_DUMP_USER_DETAILS=false LDAP_DUMP_USER_DETAILS=false
# Set both the cache and session to use Redis
CACHE_DRIVER=redis
SESSION_DRIVER=redis
# Example of using a single local Redis server
REDIS_SERVERS=127.0.0.1:6379:__REDIS_DB__

View file

@ -1,5 +1,5 @@
SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.08.2.tar.gz SOURCE_URL=https://github.com/BookStackApp/BookStack/archive/refs/tags/v21.11.2.tar.gz
SOURCE_SUM=da3de3ad238596be7ef9b3ed83c745babf2844e82628cabad339643064d9a0b3 SOURCE_SUM=82f3632d2e6b0d29ce4e7806e19b678014e9c82f97356465226dbf89f2baba82
SOURCE_SUM_PRG=sha256sum SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.gz SOURCE_FORMAT=tar.gz
SOURCE_IN_SUBDIR=true SOURCE_IN_SUBDIR=true

View file

@ -4,11 +4,6 @@ location __PATH__/ {
# Path to source # Path to source
alias __FINALPATH__/public/; alias __FINALPATH__/public/;
# Force usage of https
if ($scheme = http) {
rewrite ^ https://$server_name$request_uri? permanent;
}
client_max_body_size 100m; client_max_body_size 100m;
client_body_timeout 120s; # Default is 60, May need to be increased for very large uploads client_body_timeout 120s; # Default is 60, May need to be increased for very large uploads

View file

@ -4,16 +4,15 @@
"packaging_format": 1, "packaging_format": 1,
"description": { "description": {
"en": "Platform to create documentation/wiki content", "en": "Platform to create documentation/wiki content",
"fr": "Plateforme pour créer du contenu de documentation/wiki " "fr": "Plateforme pour créer du contenu de documentation/wiki"
}, },
"version": "21.08.2~ynh1", "version": "21.11.2~ynh1",
"url": "https://www.bookstackapp.com/", "url": "https://www.bookstackapp.com/",
"upstream": { "upstream": {
"license": "MIT", "license": "MIT",
"website": "https://www.bookstackapp.com", "website": "https://www.bookstackapp.com",
"demo": "https://demo.bookstackapp.com", "demo": "https://demo.bookstackapp.com",
"admindoc": "https://www.bookstackapp.com/docs", "admindoc": "https://www.bookstackapp.com/docs",
"userdoc": "https://yunohost.org/en/app_bookstack",
"code": "https://github.com/BookStackApp/BookStack" "code": "https://github.com/BookStackApp/BookStack"
}, },
"license": "MIT", "license": "MIT",
@ -22,12 +21,12 @@
"email": "liberodark@gmail.com" "email": "liberodark@gmail.com"
}, },
"requirements": { "requirements": {
"yunohost": ">= 4.2.4" "yunohost": ">= 4.3.0"
}, },
"multi_instance": false, "multi_instance": false,
"services": [ "services": [
"nginx", "nginx",
"php8.0-fpm", "php7.3-fpm",
"mysql" "mysql"
], ],
"arguments": { "arguments": {

View file

@ -4,9 +4,9 @@
# COMMON VARIABLES # COMMON VARIABLES
#================================================= #=================================================
YNH_PHP_VERSION="8.0" YNH_PHP_VERSION="7.3"
extra_php_dependencies="php${YNH_PHP_VERSION}-curl php${YNH_PHP_VERSION}-mysql php${YNH_PHP_VERSION}-ldap php${YNH_PHP_VERSION}-mbstring php${YNH_PHP_VERSION}-tidy php${YNH_PHP_VERSION}-xml php${YNH_PHP_VERSION}-zip php${YNH_PHP_VERSION}-gd" pkg_dependencies="php${YNH_PHP_VERSION}-curl php${YNH_PHP_VERSION}-mysql php${YNH_PHP_VERSION}-ldap php${YNH_PHP_VERSION}-mbstring php${YNH_PHP_VERSION}-tidy php${YNH_PHP_VERSION}-xml php${YNH_PHP_VERSION}-zip php${YNH_PHP_VERSION}-gd"
YNH_COMPOSER_VERSION=2.1.1 YNH_COMPOSER_VERSION=2.1.1
@ -21,3 +21,45 @@ YNH_COMPOSER_VERSION=2.1.1
#================================================= #=================================================
# FUTURE OFFICIAL HELPERS # FUTURE OFFICIAL HELPERS
#================================================= #=================================================
#=================================================
# REDIS HELPERS
#=================================================
# get the first available redis database
#
# usage: ynh_redis_get_free_db
# | returns: the database number to use
ynh_redis_get_free_db() {
local result max db
result="$(redis-cli INFO keyspace)"
# get the num
max=$(cat /etc/redis/redis.conf | grep ^databases | grep -Eow "[0-9]+")
db=0
# default Debian setting is 15 databases
for i in $(seq 0 "$max")
do
if ! echo "$result" | grep -q "db$i"
then
db=$i
break 1
fi
db=-1
done
test "$db" -eq -1 && ynh_die --message="No available Redis databases..."
echo "$db"
}
# Create a master password and set up global settings
# Please always call this script in install and restore scripts
#
# usage: ynh_redis_remove_db database
# | arg: database - the database to erase
ynh_redis_remove_db() {
local db=$1
redis-cli -n "$db" flushall
}

View file

@ -24,6 +24,7 @@ domain=$YNH_APP_ARG_DOMAIN
path_url=$YNH_APP_ARG_PATH path_url=$YNH_APP_ARG_PATH
is_public=$YNH_APP_ARG_IS_PUBLIC is_public=$YNH_APP_ARG_IS_PUBLIC
language=$YNH_APP_ARG_LANGUAGE language=$YNH_APP_ARG_LANGUAGE
phpversion=$YNH_PHP_VERSION
app=$YNH_APP_INSTANCE_NAME app=$YNH_APP_INSTANCE_NAME
@ -46,6 +47,14 @@ ynh_script_progression --message="Storing installation settings..." --weight=1
ynh_app_setting_set --app=$app --key=domain --value=$domain ynh_app_setting_set --app=$app --key=domain --value=$domain
ynh_app_setting_set --app=$app --key=path --value=$path_url ynh_app_setting_set --app=$app --key=path --value=$path_url
ynh_app_setting_set --app=$app --key=language --value=$language ynh_app_setting_set --app=$app --key=language --value=$language
ynh_app_setting_set --app=$app --key=phpversion --value=$phpversion
#=================================================
# INSTALL DEPENDENCIES
#=================================================
ynh_script_progression --message="Installing dependencies..." --weight=1
ynh_install_app_dependencies $pkg_dependencies
#================================================= #=================================================
# CREATE A MYSQL DATABASE # CREATE A MYSQL DATABASE
@ -93,8 +102,7 @@ ynh_add_nginx_config
ynh_script_progression --message="Configuring PHP-FPM..." --weight=2 ynh_script_progression --message="Configuring PHP-FPM..." --weight=2
# Create a dedicated PHP-FPM config # Create a dedicated PHP-FPM config
ynh_add_fpm_config --package="$extra_php_dependencies" ynh_add_fpm_config
phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
#================================================= #=================================================
# INSTALL LYCHEE WITH COMPOSER # INSTALL LYCHEE WITH COMPOSER
@ -108,7 +116,11 @@ ynh_install_composer --phpversion=$phpversion --workdir=$final_path --install_ar
# MODIFY A CONFIG FILE # MODIFY A CONFIG FILE
#================================================= #=================================================
# Configure redis
redis_db=$(ynh_redis_get_free_db)
ynh_app_setting_set --app="$app" --key=redis_db --value="$redis_db"
mail_pwd=$(ynh_string_random --length=12) mail_pwd=$(ynh_string_random --length=12)
ynh_add_config --template=../conf/.env.example --destination=$final_path/.env ynh_add_config --template=../conf/.env.example --destination=$final_path/.env
chmod 600 $final_path/.env chmod 600 $final_path/.env

View file

@ -20,6 +20,7 @@ domain=$(ynh_app_setting_get --app=$app --key=domain)
db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_name=$(ynh_app_setting_get --app=$app --key=db_name)
db_user=$db_name db_user=$db_name
final_path=$(ynh_app_setting_get --app=$app --key=final_path) final_path=$(ynh_app_setting_get --app=$app --key=final_path)
redis_db=$(ynh_app_setting_get --app=$app --key=redis_db)
#================================================= #=================================================
# REMOVE THE MYSQL DATABASE # REMOVE THE MYSQL DATABASE
@ -29,6 +30,13 @@ ynh_script_progression --message="Removing the MySQL database..." --weight=1
# Remove a database if it exists, along with the associated user # Remove a database if it exists, along with the associated user
ynh_mysql_remove_db --db_user=$db_user --db_name=$db_name ynh_mysql_remove_db --db_user=$db_user --db_name=$db_name
#=================================================
# REMOVE THE REDIS DATABASE
#=================================================
ynh_script_progression --message="Removing the redis database..."
ynh_redis_remove_db "$redis_db"
#================================================= #=================================================
# REMOVE APP MAIN DIR # REMOVE APP MAIN DIR
#================================================= #=================================================
@ -53,6 +61,14 @@ ynh_script_progression --message="Removing PHP-FPM configuration..." --weight=2
# Remove the dedicated PHP-FPM config # Remove the dedicated PHP-FPM config
ynh_remove_fpm_config ynh_remove_fpm_config
#=================================================
# REMOVE DEPENDENCIES
#=================================================
ynh_script_progression --message="Removing dependencies..." --weight=1
# Remove metapackage and its dependencies
ynh_remove_app_dependencies
#================================================= #=================================================
# GENERIC FINALIZATION # GENERIC FINALIZATION
#================================================= #=================================================

View file

@ -34,8 +34,7 @@ phpversion=$YNH_PHP_VERSION
#================================================= #=================================================
ynh_script_progression --message="Validating restoration parameters..." --weight=1 ynh_script_progression --message="Validating restoration parameters..." --weight=1
test ! -d $final_path \ test ! -d $final_path || ynh_die --message="There is already a directory: $final_path "
|| ynh_die --message="There is already a directory: $final_path "
#================================================= #=================================================
# STANDARD RESTORATION STEPS # STANDARD RESTORATION STEPS
@ -66,6 +65,14 @@ chown -R $app:www-data $final_path
chmod -R o-rwx $final_path chmod -R o-rwx $final_path
chmod 600 $final_path/.env chmod 600 $final_path/.env
#=================================================
# REINSTALL DEPENDENCIES
#=================================================
ynh_script_progression --message="Reinstalling dependencies..." --weight=1
# Define and install dependencies
ynh_install_app_dependencies $pkg_dependencies
#================================================= #=================================================
# RESTORE THE PHP-FPM CONFIGURATION # RESTORE THE PHP-FPM CONFIGURATION
#================================================= #=================================================
@ -73,8 +80,6 @@ ynh_script_progression --message="Reconfiguring PHP-FPM..." --weight=5
ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf"
ynh_add_fpm_config --package="$extra_php_dependencies"
#================================================= #=================================================
# RESTORE THE MYSQL DATABASE # RESTORE THE MYSQL DATABASE
#================================================= #=================================================

View file

@ -62,29 +62,31 @@ then
ynh_script_progression --message="Upgrading source files..." --weight=1 ynh_script_progression --message="Upgrading source files..." --weight=1
# Create a temporary directory # Create a temporary directory
#tmpdir="$(mktemp -d)" tmpdir="$(mktemp -d)"
# Backup the config file in the temp dir
#cp -a "$final_path/.env" "$tmpdir/.env"
cp -a "$final_path/.env " "$tmpdir/.env "
cp -a "$final_path/public/uploads" "$tmpdir/public/uploads"
cp -a "$final_path/storage/uploads" "$tmpdir/storage/uploads"
# Remove the app directory securely # Remove the app directory securely
#ynh_secure_remove --file="$final_path"
ynh_secure_remove --file=$final_path
# Download, check integrity, uncompress and patch the source from app.src # Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$final_path" --keep="$final_path/.env" ynh_setup_source --dest_dir="$final_path"
# Copy the admin saved settings from tmp directory to final path cp -a "$tmpdir/.env " "$final_path/.env "
#cp -a "$tmpdir/.env" "$final_path/.env" cp -a "$tmpdir/public/uploads" "$final_path/public/uploads"
cp -a "$tmpdir/storage/uploads" "$final_path/storage/uploads"
# Remove the tmp directory securely # Remove the tmp directory securely
#ynh_secure_remove --file="$tmpdir" ynh_secure_remove --file="$tmpdir"
# 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"
fi fi
# Set permissions on app files
chmod 755 $final_path chmod 755 $final_path
chmod -R o-rwx $final_path chmod -R o-rwx $final_path
chown -R $app:www-data $final_path chown -R $app:www-data $final_path
chmod 600 $final_path/.env
#================================================= #=================================================
# NGINX CONFIGURATION # NGINX CONFIGURATION
@ -94,13 +96,20 @@ ynh_script_progression --message="Upgrading NGINX web server configuration..." -
# Create a dedicated NGINX config # Create a dedicated NGINX config
ynh_add_nginx_config ynh_add_nginx_config
#=================================================
# UPGRADE DEPENDENCIES
#=================================================
ynh_script_progression --message="Upgrading dependencies..." --weight=1
ynh_install_app_dependencies $pkg_dependencies
#================================================= #=================================================
# PHP-FPM CONFIGURATION # PHP-FPM CONFIGURATION
#================================================= #=================================================
ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=1 ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=1
# Create a dedicated PHP-FPM config # Create a dedicated PHP-FPM config
ynh_add_fpm_config --package="$extra_php_dependencies" ynh_add_fpm_config
#================================================= #=================================================
# INSTALL LYCHEE WITH COMPOSER # INSTALL LYCHEE WITH COMPOSER
@ -116,9 +125,10 @@ ynh_install_composer --phpversion=$phpversion --workdir=$final_path --install_ar
ynh_script_progression --message="Install BookStack" --weight=5 ynh_script_progression --message="Install BookStack" --weight=5
pushd $final_path pushd $final_path
php$phpversion artisan migrate --no-interaction \ php$phpversion artisan migrate --no-interaction
&& php$phpversion artisan cache:clear --no-interaction \ php$phpversion artisan cache:clear --no-interaction
&& php$phpversion artisan view:clear --no-interaction php$phpversion artisan config:clear --no-interaction
php$phpversion artisan view:clear --no-interaction
popd popd
#================================================= #=================================================