Existe un plugin que te permite sincronizar tus copias de seguridad de Discourse con varios proveedores de almacenamiento en la nube. Desafortunadamente, actualmente no funciona con Dropbox ni Google Drive. Si de todos modos deseas almacenar tu copia de seguridad en Dropbox o Google Drive, sigue los pasos a continuación. Usaré Dropbox como ejemplo, pero las instrucciones también funcionarán con cualquier otro backend compatible con rclone.
Aviso: Las instrucciones se han probado en Ubuntu 16.04 y funcionan para mí, pero no soy un experto en esto, por lo que podría haber mejores formas de hacerlo. Siéntete libre de corregirme y estaré encantado de actualizar esta publicación.
Instalar rclone
sudo curl https://rclone.org/install.sh | sudo bash
Si el comando anterior falla, es posible que se te pida instalar una herramienta de descompresión:
sudo apt-get install unzip
Otorgar acceso a Dropbox
Esta es la parte más complicada porque necesitas un navegador para otorgar a rclone acceso a tu Dropbox, lo cual no es fácil, por decir lo menos, cuando estás accediendo mediante SSH a un VPS. Por lo tanto, debes proceder en dos pasos:
En tu servidor, ejecuta:
sudo rclone config
y sigue las instrucciones. En algún momento se te preguntará:
Use auto config?
Y responderás N.
Ahora debes cambiar a tu equipo de escritorio para obtener el token de autenticación. Esto significa que necesitas instalar rclone en tu equipo de escritorio (Rclone para Windows está aquí: Rclone downloads) y seguir las instrucciones de Remote Setup.
Una vez que hayas obtenido tu token y lo hayas pegado en el prompt de SSH que lo estaba esperando, puedes verificar que todo funcionó como se esperaba obteniendo una lista de todos los directorios en tu Dropbox:
rclone lsd drobo:
donde drobo es el nombre que asignaste a tu Dropbox anteriormente.
Copiar tus copias de seguridad a Dropbox
Localiza tus archivos de copia de seguridad. Por lo general, los encontrarás en /var/discourse/shared/standalone/backups/default. Si estás utilizando una configuración de dos contenedores, probablemente estarán en /var/discourse/shared/web-only/backups/default.
El comando para copiar tus copias de seguridad al directorio de copias de seguridad en tu Dropbox será:
sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ drobo:backups
Configurar un trabajo cron para copiar tus copias de seguridad a Dropbox
Para copiar las copias de seguridad todos los días a las 6 p. m., agrega lo siguiente a tu crontab:
crontab -e
y agrega:
0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ drobo:backups
Puedes ejecutarlo con más frecuencia si lo deseas, ya que de todos modos solo se copiarán los archivos nuevos.
Ten en cuenta que la opción copy agregará más y más copias de seguridad a tu Dropbox, incluso cuando las que están en tu servidor se eliminen. Si solo deseas conservar las que también se mantienen en tu servidor, utiliza sync en lugar de copy.