Instalar Bookstack

Instalar Bookstack

Guía oficial

Installation · BookStack (bookstackapp.com)

Dependencias

Instalar Apache, PHP, MariaDB, Git

sudo apt install git unzip apache2 php8.1 curl php8.1-curl php8.1-mbstring php8.1-ldap \ 
php8.1-xml php8.1-zip php8.1-gd php8.1-mysql mariadb-server libapache2-mod-php8.1

Activar módulos necesarios de Apache.

  sudo a2enmod rewrite
  sudo a2enmod php8.1

Instalar Composer

Preinstalación

Antes de todo creamos la base de datos y usuario para BookStack.

Accedemos al usuario root con sudo su.

Accedemos a MariaDB usando el comando mysql, una vez ahí ejecutamos el siguiente código:

CREATE DATABASE IF NOT EXISTS bookstackapp;
CREATE USER 'bookstackapp_user'@'localhost' IDENTIFIED BY 'Contraseña super segura';
GRANT ALL PRIVILEGES ON bookstackapp.* TO 'bookstackapp_user'@'localhost';
FLUSH PRIVILEGES;

Una vez ejecutado, salimos escribiendo exit 2 veces, para salir de MariaDB y del usuario root.

Instalación

  1. Clonar el repositorio de BookStack.
    git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch


  2. Acceder a la carpeta y ejecutar el comando composer install --no-dev.
  3. Copiar el archivo .env.example.env y rellenar con su configuración (Configuración de ejemplo).
  4. Asegurarse de que las carpetas storagebootstrap/cachepublic/uploads puedan ser escritas por apache.
  5. En la carpeta root. Ejecutar php artisan key:generate para generar una llave de aplicación única.
  6. Ejecutar php artisan migrate para actualizar la base de datos.
  7. Configurar el servidor web.
    1. Mover la carpeta del repositorio a /var/www/bootstrap y ejecutar sudo chown -R www-data:www-data /var/www/bootstrap para der permisos a apache.
    2. Crear el archivo /etc/apache/sites-avaliable/bookstack.conf con la siguiente configuración.
    3. Activar la configuracion
      Ejecutar sudo a2ensite bookstack.conf.
      Reiniciar apache con sudo systemctl restart apache2.service.
  8. ¡Listo! Ahora puedes iniciar sesión con las credenciales admin@admin.com y la contraseña password. Es recomendable cambiar la contraseña tras el primer inicio de sesión.

Configurar Bookstack para usar smtp.gmail.com

Para poder hacer uso del servidor SMTP de Google, debemos tener una cuenta de Google con la autentificación en dos pasos activada.

Accedemos a la configuración de nuestra cuenta, una vez en el apartado de seguridad, accedemos al apartado de verificación en dos pasos.

image.png

Una vez aquí bajamos al final de la pagina, ahí deberemos ver el apartado de contraseñas de aplicación al que queremos acceder.

image.png

Para crear una contraseña de aplicación ponemos un nombre y damos en crear, esto nos dará una contraseña que es la que tendremos que usar para poder configurar el servicio SMTP.

image.png

image.png

Una vez tenemos la contraseña, la ponernos en el apartado MAIL_PASSWORD="Contraseña de aplicación" y en MAIL_USERNAME=correo@gmail.com ponemos el correo del que hemos creado la contraseña de aplicación.

Ejemplo de bookstack usando smtp.gmail.com. En el final de este archivo se puede ver como se usa smtp.gmail.com.

Archivos de ejemplo

Archivos de ejemplo

bookstack.conf

<VirtualHost *:80>


# This is a simple example of an Apache VirtualHost configuration
# file that could be used with BookStack.
# This assumes mod_php has been installed and is loaded.
#
# Change the "docs.example.com" usage in the "ServerName" directive
# to be your web domain for BookStack.
#
# Change the "/var/www/bookstack/public/", used twice below, to the
# location of the "public" folder within your BookStack installation.
#
# This configuration is only for HTTP, Not HTTPS.
# For HTTPS we recommend using https://certbot.eff.org/


ServerName docs.example.com
DocumentRoot /var/www/bookstack/public/


<Directory /var/www/bookstack/public/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>


RewriteEngine On


# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]


# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]


# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>


ErrorLog ${APACHE_LOG_DIR}/bookstack_error.log
CustomLog ${APACHE_LOG_DIR}/bookstack_access.log combined


</VirtualHost>

Archivos de ejemplo

.env

# 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
# This must be the root URL that you want to host BookStack on.
# All URLs in BookStack will be generated using this value
# to ensure URLs generated are consistent and secure.
# If you change this in the future you may need to run a command
# to update stored URLs in the database. Command example:
# php artisan bookstack:update-url https://old.example.com https://new.example.com
APP_URL=https://wiki.example.com

# Database details
DB_HOST=localhost
DB_DATABASE=basededatos
DB_USERNAME=basededatos_usuario
DB_PASSWORD="Contraseña super segura"

# Mail system to use
# Can be 'smtp' or 'sendmail'
MAIL_DRIVER=smtp

# Mail sender details
MAIL_FROM_NAME="BookStack"
MAIL_FROM=bookstack@example.com

# SMTP mail options
# These settings can be checked using the "Send a Test Email"
# feature found in the "Settings > Maintenance" area of the system.
# For more detailed documentation on mail options, refer to:
# https://www.bookstackapp.com/docs/admin/email-webhooks/#email-configuration
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=correo@gmail.com
MAIL_PASSWORD="Contraseña de aplicación"
MAIL_ENCRYPTION=tls