From 31d033493ed512fe6dfeb3d9c4c7ae20cfbd6284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Mon, 1 Feb 2021 14:42:41 +0100 Subject: [PATCH] Testing (#8) * Repackage --- README.md | 79 +++++-- README_fr.md | 73 +++++++ check_process | 26 +-- conf/.env.example | 55 +++-- conf/.env.example.complete | 295 +++++++++++++++++++++++++ conf/app.src | 8 +- conf/nginx.conf | 40 ++-- conf/php-fpm.conf | 430 +++++++++++++++++++++++++++++++++++++ manifest.json | 42 ++-- scripts/_common.sh | 176 +++++++-------- scripts/backup | 81 ++++--- scripts/change_url | 125 +++++++++++ scripts/install | 187 +++++++--------- scripts/remove | 95 ++------ scripts/restore | 133 ++++++++---- scripts/upgrade | 145 ++++++++++--- 16 files changed, 1515 insertions(+), 475 deletions(-) create mode 100644 README_fr.md create mode 100644 conf/.env.example.complete create mode 100644 conf/php-fpm.conf create mode 100644 scripts/change_url diff --git a/README.md b/README.md index ce2aeba..b794368 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,75 @@ # BookStack for YunoHost [![Integration level](https://dash.yunohost.org/integration/bookstack.svg)](https://dash.yunohost.org/appci/app/bookstack) ![](https://ci-apps.yunohost.org/ci/badges/bookstack.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/bookstack.maintain.svg) -[![Install bookstack with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=bookstack) +[![Install BookStack with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=bookstack) -BookStack Server +*[Lire ce readme en français.](./README_fr.md)* -**Shipped version:** 0.26.3 +> *This package allows you to install BookStack quickly and simply on a YunoHost server. +If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* -- [Yunohost project](https://yunohost.org) -- [BookStack website](https://github.com/BookStackApp/BookStack/) +## Overview +BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. It is an opinionated wiki system that provides a pleasant and simple out of the box experience. -![](https://avatars1.githubusercontent.com/u/20912696?s=400&v=4) +BookStack is built using PHP, on top of the Laravel framework and it uses MySQL to store data. -### Installing guide +**Shipped version:** 0.31.4 - App can be installed by YunoHost **admin web-interface** or by **running following command**: +## Screenshots - $ sudo yunohost app install https://github.com/YunoHost-Apps/bookstack_ynh - - After install : - - 1. Login in bookstack - 2. your user : admin@admin.com and password : password +![](https://www.bookstackapp.com/images/bookstack-hero-screenshot.jpg) - -### Upgrade this package: +## Demo - $ sudo yunohost app upgrade bookstack -u https://github.com/YunoHost-Apps/bookstack_ynh +* [Official demo](https://demo.bookstackapp.com/) +## 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. + +* How to configure this app: From an admin panel, a plain file with SSH, or any other way. + +## Documentation + + * Official documentation: https://www.bookstackapp.com/docs/ + * YunoHost documentation: https://yunohost.org/#/app_bookstack + +## YunoHost specific features + +#### Multi-user support + + * Are LDAP and HTTP auth supported? **Yes** + * Can the app be used by multiple users? **Yes** + +#### Supported architectures + +* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/bookstack%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/bookstack/) +* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/bookstack%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/bookstack/) + +## Limitations + +* Any known limitations. + +## Additional information + +* Other info you would like to add about this app. + +## Links + + * Report a bug: https://github.com/YunoHost-Apps/bookstack_ynh/issues + * App website: https://www.bookstackapp.com/ + * Upstream app repository: https://github.com/BookStackApp/BookStack + * YunoHost website: https://yunohost.org/ + +--- + +## Developer info + +Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/bookstack_ynh/tree/testing). + +To try the testing branch, please proceed like that. +``` +sudo yunohost app install https://github.com/YunoHost-Apps/bookstack_ynh/tree/testing --debug +or +sudo yunohost app upgrade bookstack -u https://github.com/YunoHost-Apps/bookstack_ynh/tree/testing --debug +``` diff --git a/README_fr.md b/README_fr.md new file mode 100644 index 0000000..ba3ebd0 --- /dev/null +++ b/README_fr.md @@ -0,0 +1,73 @@ +# BookStack pour YunoHost + +[![Integration level](https://dash.yunohost.org/integration/bookstack.svg)](https://dash.yunohost.org/appci/app/bookstack) ![](https://ci-apps.yunohost.org/ci/badges/bookstack.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/bookstack.maintain.svg) +[![Installer BookStack avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=bookstack) + +*[Read this readme in english.](./README.md)* + +> *Ce package vous permet d'installer BookStack rapidement et simplement sur un serveur YunoHost. +Si vous n'avez pas YunoHost, consultez [le guide](https://yunohost.org/#/install) pour apprendre comment l'installer.* + +## Overview +BookStack est une plate-forme simple, auto-hébergée et facile à utiliser pour organiser et stocker des informations. + +**Version incluse :** 0.31.4 + +## Screenshots + +![](https://www.bookstackapp.com/images/bookstack-hero-screenshot.jpg) + +## Démo + +* [Démo officielle](https://demo.bookstackapp.com/) + +## 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. + + * How to configure this app: From an admin panel, a plain file with SSH, or any other way. + +## Documentation + + * Documentation officielle : https://www.bookstackapp.com/docs/ + * Documentation YunoHost : https://yunohost.org/#/app_bookstack_fr + +## Caractéristiques spécifiques YunoHost + +#### Support multi-utilisateur + +* L'authentification LDAP et HTTP est-elle prise en charge ? **Oui** +* L'application peut-elle être utilisée par plusieurs utilisateurs ? **Oui** + +#### Architectures supportées + +* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/bookstack%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/bookstack/) +* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/bookstack%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/bookstack/) + +## Limitations + +* Limitations connues. + +## Informations additionnelles + +* Autres informations que vous souhaitez ajouter sur cette application. + +## Liens + + * Signaler un bug : https://github.com/YunoHost-Apps/bookstack_ynh/issues + * Site de l'application : https://www.bookstackapp.com/ + * Dépôt de l'application principale : https://github.com/BookStackApp/BookStack + * Site web YunoHost : https://yunohost.org/ + +--- + +## Informations pour les développeurs + +Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/bookstack_ynh/tree/testing). + +To try the testing branch, please proceed like that. +``` +sudo yunohost app install https://github.com/YunoHost-Apps/bookstack_ynh/tree/testing --debug +or +sudo yunohost app upgrade bookstack -u https://github.com/YunoHost-Apps/bookstack_ynh/tree/testing --debug +``` diff --git a/check_process b/check_process index 0cbeae3..caa5497 100644 --- a/check_process +++ b/check_process @@ -1,42 +1,24 @@ # See here for more informations # https://github.com/YunoHost/package_check#syntax-check_process-file -# Move this file from check_process.default to check_process when you have filled it. - ;; Test complet ; Manifest domain="domain.tld" (DOMAIN) - path="/" (PATH) + path="/path" (PATH) + language="fr" is_public=1 (PUBLIC|public=1|private=0) -# password="pass" -# nextclouddomain="domain.tld" - port="9980" (PORT) ; Checks pkg_linter=1 - setup_sub_dir=0 + setup_sub_dir=1 setup_root=1 setup_nourl=0 - setup_private=0 + setup_private=1 setup_public=1 upgrade=1 backup_restore=1 multi_instance=1 - incorrect_path=1 port_already_use=0 change_url=0 -;;; Levels - Level 1=auto - Level 2=auto - Level 3=auto -# Level 4: - Level 4=1 (This app supports the Nextcloud LDAP auth) -# Level 5: - Level 5=auto - Level 6=auto - Level 7=auto - Level 8=0 - Level 9=0 - Level 10=0 ;;; Options Email= Notification=none diff --git a/conf/.env.example b/conf/.env.example index 249e668..25cac05 100644 --- a/conf/.env.example +++ b/conf/.env.example @@ -1,31 +1,62 @@ +# This file, when named as ".env" in the root of your BookStack install +# folder, is used for the core configuration of the application. +# By default this file contains the most common required options but +# a full list of options can be found in the '.env.example.complete' file. + +# NOTE: If any of your values contain a space or a hash you will need to +# wrap the entire value in quotes. (eg. MAIL_FROM_NAME="BookStack Mailer") + # Application key -# Used for encryption where needed. -# Run `php artisan key:generate` to generate a valid key. APP_KEY=SomeRandomString # Application URL -# Remove the hash below and set a URL if using BookStack behind -# a proxy, if using a third-party authentication option. -# This must be the root URL that you want to host BookStack on. -# All URL's in BookStack will be generated using this value. -#APP_URL=https://example.com +APP_URL=https://__DOMAIN____PATH__ + +# Application default language +APP_LANG=__LANGUAGE__ + +# Auto-detect language for public visitors. +APP_AUTO_LANG_PUBLIC=true + +# Application timezone +APP_TIMEZONE=UTC # Database details DB_HOST=localhost -DB_DATABASE=yunobase -DB_USERNAME=yunouser -DB_PASSWORD=yunopass +DB_DATABASE=__DB_NAME__ +DB_USERNAME=__DB_NAME__ +DB_PASSWORD=__DB_PWD__ # Mail system to use -# Can be 'smtp', 'mail' or 'sendmail' MAIL_DRIVER=smtp +# Mail sender details +MAIL_FROM_NAME="BookStack" +MAIL_FROM=bookstack@__DOMAIN__ + # SMTP mail options +# These settings can be checked using the "Send a Test Email" +# feature found in the "Settings > Maintenance" area of the system. MAIL_HOST=localhost MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null +# General auth +AUTH_METHOD=standard -# A full list of options can be found in the '.env.example.complete' file. \ No newline at end of file +# LDAP authentication configuration +# Refer to https://www.bookstackapp.com/docs/admin/ldap-auth/ +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_VERSION=false +LDAP_TLS_INSECURE=false +LDAP_ID_ATTRIBUTE=uid +LDAP_EMAIL_ATTRIBUTE=mail +LDAP_DISPLAY_NAME_ATTRIBUTE=cn +LDAP_FOLLOW_REFERRALS=true +LDAP_DUMP_USER_DETAILS=false diff --git a/conf/.env.example.complete b/conf/.env.example.complete new file mode 100644 index 0000000..e3dbdb8 --- /dev/null +++ b/conf/.env.example.complete @@ -0,0 +1,295 @@ +# Full list of environment variables that can be used with BookStack. +# Selectively copy these to your '.env' file as required. +# Each option is shown with it's default value. +# Do not copy this whole file to use as your '.env' file. + +# Application environment +# Can be 'production', 'development', 'testing' or 'demo' +APP_ENV=production + +# Enable debug mode +# Shows advanced debug information and errors. +# CAN EXPOSE OTHER VARIABLES, LEAVE DISABLED +APP_DEBUG=false + +# Application key +# Used for encryption where needed. +# Run `php artisan key:generate` to generate a valid key. +APP_KEY=SomeRandomString + +# Application URL +# This must be the root URL that you want to host BookStack on. +# All URL's in BookStack will be generated using this value. +APP_URL=https://example.com + +# Application default language +# The default language choice to show. +# May be overridden by user-preference or visitor browser settings. +APP_LANG=en + +# Auto-detect language for public visitors. +# Uses browser-sent headers to infer a language. +# APP_LANG will be used if such a header is not provided. +APP_AUTO_LANG_PUBLIC=true + +# Application timezone +# Used where dates are displayed such as on exported content. +# Valid timezone values can be found here: https://www.php.net/manual/en/timezones.php +APP_TIMEZONE=UTC + +# Application theme +# Used to specific a themes/ folder where BookStack UI +# overrides can be made. Defaults to disabled. +APP_THEME=false + +# Database details +# Host can contain a port (localhost:3306) or a separate DB_PORT option can be used. +DB_HOST=localhost +DB_PORT=3306 +DB_DATABASE=database_database +DB_USERNAME=database_username +DB_PASSWORD=database_user_password + +# Mail system to use +# Can be 'smtp', 'mail' or 'sendmail' +MAIL_DRIVER=smtp + +# Mail sending options +MAIL_FROM=mail@bookstackapp.com +MAIL_FROM_NAME=BookStack + +# SMTP mail options +MAIL_HOST=localhost +MAIL_PORT=1025 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null + +# Cache & Session driver to use +# Can be 'file', 'database', 'memcached' or 'redis' +CACHE_DRIVER=file +SESSION_DRIVER=file + +# Session configuration +SESSION_LIFETIME=120 +SESSION_COOKIE_NAME=bookstack_session +SESSION_SECURE_COOKIE=false + +# Cache key prefix +# Can be used to prevent conflicts multiple BookStack instances use the same store. +CACHE_PREFIX=bookstack + +# Memcached server configuration +# If using a UNIX socket path for the host, set the port to 0 +# This follows the following format: HOST:PORT:WEIGHT +# For multiple servers separate with a comma +MEMCACHED_SERVERS=127.0.0.1:11211:100 + +# Redis server configuration +# This follows the following format: HOST:PORT:DATABASE +# or, if using a password: HOST:PORT:DATABASE:PASSWORD +# For multiple servers separate with a comma. These will be clustered. +REDIS_SERVERS=127.0.0.1:6379:0 + +# Queue driver to use +# Queue not really currently used but may be configurable in the future. +# Would advise not to change this for now. +QUEUE_CONNECTION=sync + +# Storage system to use +# Can be 'local', 'local_secure' or 's3' +STORAGE_TYPE=local + +# Image storage system to use +# Defaults to the value of STORAGE_TYPE if unset. +# Accepts the same values as STORAGE_TYPE. +STORAGE_IMAGE_TYPE=local + +# Attachment storage system to use +# Defaults to the value of STORAGE_TYPE if unset. +# Accepts the same values as STORAGE_TYPE although 'local' will be forced to 'local_secure'. +STORAGE_ATTACHMENT_TYPE=local_secure + +# Amazon S3 storage configuration +STORAGE_S3_KEY=your-s3-key +STORAGE_S3_SECRET=your-s3-secret +STORAGE_S3_BUCKET=s3-bucket-name +STORAGE_S3_REGION=s3-bucket-region + +# S3 endpoint to use for storage calls +# Only set this if using a non-Amazon s3-compatible service such as Minio +STORAGE_S3_ENDPOINT=https://my-custom-s3-compatible.service.com:8001 + +# Storage URL prefix +# Used as a base for any generated image urls. +# An s3-format URL will be generated if not set. +STORAGE_URL=false + +# Authentication method to use +# Can be 'standard', 'ldap' or 'saml2' +AUTH_METHOD=standard + +# Social authentication configuration +# All disabled by default. +# Refer to https://www.bookstackapp.com/docs/admin/third-party-auth/ + +AZURE_APP_ID=false +AZURE_APP_SECRET=false +AZURE_TENANT=false +AZURE_AUTO_REGISTER=false +AZURE_AUTO_CONFIRM_EMAIL=false + +DISCORD_APP_ID=false +DISCORD_APP_SECRET=false +DISCORD_AUTO_REGISTER=false +DISCORD_AUTO_CONFIRM_EMAIL=false + +FACEBOOK_APP_ID=false +FACEBOOK_APP_SECRET=false +FACEBOOK_AUTO_REGISTER=false +FACEBOOK_AUTO_CONFIRM_EMAIL=false + +GITHUB_APP_ID=false +GITHUB_APP_SECRET=false +GITHUB_AUTO_REGISTER=false +GITHUB_AUTO_CONFIRM_EMAIL=false + +GITLAB_APP_ID=false +GITLAB_APP_SECRET=false +GITLAB_BASE_URI=false +GITLAB_AUTO_REGISTER=false +GITLAB_AUTO_CONFIRM_EMAIL=false + +GOOGLE_APP_ID=false +GOOGLE_APP_SECRET=false +GOOGLE_SELECT_ACCOUNT=false +GOOGLE_AUTO_REGISTER=false +GOOGLE_AUTO_CONFIRM_EMAIL=false + +OKTA_BASE_URL=false +OKTA_APP_ID=false +OKTA_APP_SECRET=false +OKTA_AUTO_REGISTER=false +OKTA_AUTO_CONFIRM_EMAIL=false + +SLACK_APP_ID=false +SLACK_APP_SECRET=false +SLACK_AUTO_REGISTER=false +SLACK_AUTO_CONFIRM_EMAIL=false + +TWITCH_APP_ID=false +TWITCH_APP_SECRET=false +TWITCH_AUTO_REGISTER=false +TWITCH_AUTO_CONFIRM_EMAIL=false + +TWITTER_APP_ID=false +TWITTER_APP_SECRET=false +TWITTER_AUTO_REGISTER=false +TWITTER_AUTO_CONFIRM_EMAIL=false + +# LDAP authentication configuration +# Refer to https://www.bookstackapp.com/docs/admin/ldap-auth/ +LDAP_SERVER=false +LDAP_BASE_DN=false +LDAP_DN=false +LDAP_PASS=false +LDAP_USER_FILTER=false +LDAP_VERSION=false +LDAP_TLS_INSECURE=false +LDAP_ID_ATTRIBUTE=uid +LDAP_EMAIL_ATTRIBUTE=mail +LDAP_DISPLAY_NAME_ATTRIBUTE=cn +LDAP_FOLLOW_REFERRALS=true +LDAP_DUMP_USER_DETAILS=false + +# LDAP group sync configuration +# Refer to https://www.bookstackapp.com/docs/admin/ldap-auth/ +LDAP_USER_TO_GROUPS=false +LDAP_GROUP_ATTRIBUTE="memberOf" +LDAP_REMOVE_FROM_GROUPS=false + +# SAML authentication configuration +# Refer to https://www.bookstackapp.com/docs/admin/saml2-auth/ +SAML2_NAME=SSO +SAML2_EMAIL_ATTRIBUTE=email +SAML2_DISPLAY_NAME_ATTRIBUTES=username +SAML2_EXTERNAL_ID_ATTRIBUTE=null +SAML2_IDP_ENTITYID=null +SAML2_IDP_SSO=null +SAML2_IDP_SLO=null +SAML2_IDP_x509=null +SAML2_ONELOGIN_OVERRIDES=null +SAML2_DUMP_USER_DETAILS=false +SAML2_AUTOLOAD_METADATA=false + +# SAML group sync configuration +# Refer to https://www.bookstackapp.com/docs/admin/saml2-auth/ +SAML2_USER_TO_GROUPS=false +SAML2_GROUP_ATTRIBUTE=group +SAML2_REMOVE_FROM_GROUPS=false + +# Disable default third-party services such as Gravatar and Draw.IO +# Service-specific options will override this option +DISABLE_EXTERNAL_SERVICES=false + +# Use custom avatar service, Sets fetch URL +# Possible placeholders: ${hash} ${size} ${email} +# If set, Avatars will be fetched regardless of DISABLE_EXTERNAL_SERVICES option. +# Example: AVATAR_URL=https://seccdn.libravatar.org/avatar/${hash}?s=${size}&d=identicon +AVATAR_URL= + +# Enable diagrams.net integration +# Can simply be true/false to enable/disable the integration. +# Alternatively, It can be URL to the diagrams.net instance you want to use. +# For URLs, The following URL parameters should be included: embed=1&proto=json&spin=1 +DRAWIO=true + +# 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 + +# Page revision limit +# Number of page revisions to keep in the system before deleting old revisions. +# If set to 'false' a limit will not be enforced. +REVISION_LIMIT=50 + +# Recycle Bin Lifetime +# The number of days that content will remain in the recycle bin before +# being considered for auto-removal. It is not a guarantee that content will +# be removed after this time. +# Set to 0 for no recycle bin functionality. +# Set to -1 for unlimited recycle bin lifetime. +RECYCLE_BIN_LIFETIME=30 + +# Allow