Skip to main content

Paso 4: Restore de BBDD y el resto de archivos + consideraciones para dejarlo todo como estaba

Empezamos con el restore de la BBDD:

sudo mysql -u root bookstack < bookstack.backup.sql

Después de esto, ir a /var/www/bookstack y ejecutar php artisan migrate como se indica en los docs. por si acaso. Lo normal es que diga que no hay nada que migrar.


Copiar los archivos de la carpeta BACKUP que habíamos pasado antes (excepto el archivo .env) a /var/www/bookstack.

image.png


Modificar el archivo .env con las modificaciones que tuviese al final del archivo origen y además tener en cuenta:

  • APP_KEY debe tener el mismo valor que el .env origen. 
  • APP_URL dejarlo en http por ahora (no tenemos todavía el certificado generado en esta instancia)
  • DB_PASSWORD dejar el nuevo (no hay que poner la password de la BBDD origen)

Modificar los permisos según se indica en la documentación:

sudo chown -R <usuario_local>:www-data /var/www/bookstack
sudo chmod -R 755 /var/www/bookstack
sudo chmod -R 775 /var/www/bookstack/storage /var/www/bookstack/bootstrap/cache /var/www/bookstack/public/uploads
sudo chmod 640 /var/www/bookstack/.env

Restart del servicio apache (sudo service apache2 restart)

En este punto puedo acceder a la instancia de Bookstack en http://sergio-jimenez.net sin embargo veo que no cargan muchas imagenes. Esto es porque esas imágenes se cargaron cuando el dominio tenia activado https en el antiguo sistema Ubuntu. Hay que activar https para corregirlo y ejecutar un comando (lo pongo a continuación).

A tener en cuenta que para poder acceder correctamente desde el PC necesito añadir al archivo host una línea para la IP de la nueva Raspberry que asocie a sergio-jimenez.net


Para activar HTTPS (sacado del vídeo que tiene Dan Brown en YT para la instalación de Bookstack en Debian 12 'bookworm', apartado "Adding HTTPS"):

apt install certbot
apt install python3-certbot-apache

Ejecutar sudo certbot: (por lo que sea hay que pulsar Intro dos veces después de poner el email, sino se queda pillado y da timeout)

sergio@bookstack:~ $ sudo certbot
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): redacted


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: (Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.

Which names would you like to activate HTTPS for?
We recommend selecting either all domains, or all domains in a VirtualHost/server block.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: sergio-jimenez.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Requesting a certificate for sergio-jimenez.net

Successfully received certificate.
Certificate is saved at: /redacted/fullchain.pem
Key is saved at:         /redacted/privkey.pem
This certificate expires on 2024-03-25.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for sergio-jimenez.net to /etc/apache2/sites-available/bookstack-le-ssl.conf
Added an HTTP->HTTPS rewrite in addition to other RewriteRules; you may wish to check for overall consistency.
Congratulations! You have successfully enabled HTTPS on https://sergio-jimenez.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Después de lanzar el certbot, actualizar el .env poniendo https en APP_URL.

Además hay que ejecutar el siguiente comando para actualizar todos aquellos sitios donde pudiera hacerse referencia a la URL en HTTP:

php artisan bookstack:update-url http://sergio-jimenez.net https://sergio-jimenez.net

Añadir la linea Redirect permanent / https://sergio-jimenez.net/ en /etc/apache2/sites-available/bookstack.conf justo debajo de DocumentRoot.

Crear la tarea en crontab para el chequeo de DynU (link a la página donde lo explico)


Otra modificación que he tenido que hacer ha sido asignar al usuario Guest el rol Public (se había desconfigurado). Sin esto, nadie de fuera puede ver los artículos.


Con esto, quedaría la migración completada. Faltaría renombrar de nuevo Shelves a Categories y Books a lo que sea. Esto se hace modificando el archivo /var/www/bookstack/lang/en/entities.php