Instalar Bookstack en Unraid con MariaDB

Instalar Bookstack en Unraid con MariaDB
Photo by Patrick Fore / Unsplash

Tal como había comentado en mi statuslog, voy a comenzar con este tutorial para instalar Bookstack en Unraid usando MariaDB. He pasado por varias "note taking apps" y si bien hay varias que pueden ser mejores que Bookstack, prefiero que la información esté en mi servidor y no en el de terceros. Por otro lado, me gusta que tenga gestor de usuarios, el soporte para Markdown y que la información se organice como una biblioteca de libros (shelves, books, chapters). Con todo esto para mí es suficiente para elegirlo sobre otras opciones que también son buenas e incluso mejores para ciertos casos (joplin, notesnook, standard notes, obsidian, etc.).

El primer paso es instalar el servidor para la base de datos. Para esto, usaremos MaríaDB, el cual está disponible en Unraid. Si buscas "mariadb" es probable que te encuentres con lo siguiente:

En mi caso, prefiero usar la versión de linuxserver, pues te permite asignar un usuario root desde las mismas preferencias. Por otro lado, la versión oficial ya viene con un usuario y la contraseña se genera de forma automática una vez instalada, por lo que debes revisar los logs para acceder a la contraseña. Creo que para alguien que no está muy familiarizado con todo esto, es más conveniente la versión de linuxserver, pues es el usuario quien define la contraseña y además es un paso menos, dentro de todo el proceso.

Una vez que instalas MariaDB (linuxserver) debemos completar los siguientes campos:

WebUI: 3306

Corresponde al puerto en donde quedará alojado el container. Te sugiero dejarlo tal como está (3306)

MYSQL_ROOT_PASSWORD: fnd9NTK-wvf3hug 

Una contraseña para el usuario root. A modo de ejemplo, usemos la contraseña: fnd9NTK-wvf3hug

MYSQL_DATABASE: DBDATABASE

Un nombre para la base de datos que se crea una vez que instalas el container. En mi caso le puse el nombre: DBDATABASE

MYSQL_USER: MYSQL_USUARIO 

Nombre de superusuario que accederá a la base de datos, del punto anterior. En mi caso le coloqué: MYSQL_USUARIO

MYSQL_PASSWORD: pky9ZJY8fja2

Contraseña para el usuario del campo anterior. En este caso: pky9ZJY8fja2

La configuración, según lo anterior, luce más o menos así:

Luego le damos a instalar y esperamos a que termine. Posteriormente, ubicamos el container, en el listado, y hacemos clic con el botón derecho y seleccionamos "console" (ver imagen). Se abrirá una nueva ventana, en donde debemos identificarnos para poder seguir trabajando. Para ello escribimos:

mysql -u root -p

El sistema nos solicitará una contraseña, la cual en nuestro caso, según configuramos previamente, corresponde a:

fnd9NTK-wvf3hug

Si le haces un copiar y pegar a la contraseña en la ventana donde te solicita esta información, es probable que no veas la contraseña ni tampoco símbolos tipo ******** indicando que la ingresaste. No te preocupes, el sistema está diseñado de esa manera. Preocúpate de hacer un copiar y pegar y posteriormente presionar la tecla enter. Si todo salió bien, el sistema té dará la bienvenida y se debería ver de manera similar a esto:

Posteriormente, tenemos que hacer 3 cosas.

  1. Crear un usuario para bookstack en la base de datos.
  2. Crear una base de datos para bookstack.
  3. Decirle al sistema que le entregue permisos de edición al usuario bookstack en la base de datos de bookstack.

Usuario

Para lo anterior debemos escribir lo siguiente:

CREATE USER 'bookstack' IDENTIFIED by 'userpassword';

En donde dice userpassword debes usar una contraseña. En mi caso, voy a usar la siguiente contraseña:

zqu0nky0fmb8ctb

Entonces lo anterior quedaría de la siguiente manera:

CREATE USER 'bookstack' IDENTIFIED by 'zqu0nky0fmb8ctb';

Cuida del uso de las comillas. Fíjate cómo mi contraseña queda entre comillas.

Base de Datos

En esta sección debemos crear una base de datos para bookstack. En mi caso, esta se llamará:

bookstack_db

Y, por lo tanto, debo escribir lo siguiente:

CREATE DATABASE IF NOT EXISTS bookstack_db;

Permisos

Luego entregamos los permisos al usuario "bookstack" para que pueda gestionar la base de datos "bookstack_db". Fíjate cómo aquí tuve que volver a colocar la contraseña del usuario bookstack que use previamente. Con todo lo anterior, debemos escribir:

GRANT ALL PRIVILEGES ON bookstack_db.* TO 'bookstack' IDENTIFIED BY 'zqu0nky0fmb8ctb';

Para finalizar ejecutamos los siguientes comandos:

FLUSH PRIVILEGES;

Y luego

EXIT;

Hemos terminado con MariaDB. Ahora vamos a configurar Bookstack.

Bookstack Container

Buscamos el container de Bookstack en Unraid y luego de seleccionar instalar completamos la siguiente información:

WebUI: 6875

Puerto que usará Bookstack. El valor predeterminado es 6875, por lo que no haremos cambios aquí.

APP_URL: http://192.168.55.5:6875

Esta información se compone de dos cosas. La primera de ellas es la IP del servidor en donde está Unraid dentro de tu red y el segundo elemento es el puerto de Bookstack. Imaginemos que habitualmente accedes, dentro de tu red, a Unraid usando la dirección 192.168.55.5 y luego a eso le agregamos el puerto 6875 que de Boockstack.

DB_HOST: 192.168.55.5

IP de donde instalamos MariaDB. En nuestro caso, en el servidor de Unraid, por lo tanto, colocamos la IP de Unraid.

DB_PORT: 3306

Puerto utilizado por MariaDB.

DB_USER: bookstack

Usuario de la base de datos, el cual configuramos previamente.

DB_PASSWORD: zqu0nky0fmb8ctb

Contraseña del usuario bookstack para gestionar la base de datos.

DB_DATABASE: bookstack_db

Nombre de la base de datos de bookstack.

La configuración debería lucir más o menos así:

Finalmente, debemos esperar un momento. Si quieres ver cómo avanza el proceso, puedes ir a revisar el log de Bookstack, ubicando el container en tu listado, clic con el botón derecho del mouse y luego seleccionar "logs" (ver imagen). Si todo sale bien y no hay errores, deberías poder acceder a Bookstack colocando la siguiente dirección en tu navegador web:

http://192.168.55.5:6875

En la pantalla de bienvenida deberás ingresar un nombre de usuario y contraseña, los cuales por defecto son los siguientes:

Usuario: admin@admin.com
Contraseña: password

Para terminar, ya deberías ingresar a Bookstack y comenzar a utilizarlo. Te aconsejo que, primero, vayas directo a las opciones de editar perfil y cambies tanto el nombre de usuario y contraseña.