Administradores y moderadores: siéntanse libres de mover este tema a otro lugar o editarlo si es necesario.
Estas son instrucciones detalladas, paso a paso, sobre cómo instalé rclone y configuré todo para hacer una copia de seguridad de mi Discourse en Dropbox. Para los usuarios de Google Drive, creo que la mayoría de estos pasos también se aplicarán.
Seguí algunas de las instrucciones proporcionadas originalmente por Christoph (@tophee) aquí:
Como no soy un experto en absoluto, me parecieron muy limitadas y eventualmente fallaría, ¡así que obtuve ayuda de ChatGPT y todo funciona! Documenté todo, paso a paso, para aquellos de ustedes que probablemente no son usuarios avanzados como yo, y necesitan esa ayuda adicional en el camino.
Instalar rclone remotamente y preparar para Dropbox
Conéctate por SSH a tu servidor:
ssh root@xxx.xxx.xxx.xxx
Cuando estés en tu servidor:
root@ServerNameHere:~#
Instala rclone:
sudo curl https://rclone.org/install.sh | sudo bash
Si tiene éxito, ejecuta:
sudo rclone config
Cuando muestre:
2025/08/13 11:29:31 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q>
… escribe n. Presiona Enter.
Cuando se te presente:
Enter name for new remote.
name>
Dale un nombre, por ejemplo dropbox_backup. Presiona Enter.
Te mostrará una lista en rojo y verde (a mí me la mostró), y una de esas opciones es Dropbox. Cada opción tiene un número asociado. La mía fue:
14 / Dropbox
\ (dropbox)
En la parte inferior, donde dice Storage>, agrega el número de Dropbox. Entonces, en mi caso, terminé con Storage>14. Presiona Enter.
Mostrará:
Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id>
Simplemente presiona Enter para dejarlo en blanco. Haz lo mismo cuando muestre:
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret>
Cuando muestre:
Edit advanced config?
y) Yes
n) No (default)
y/n>
Escribe n y presiona Enter.
Cuando muestre:
Use web browser to automatically authenticate rclone with remote?
* Say Y if the machine running rclone has a web browser you can use
* Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
y/n>
Escribe n y presiona Enter.
Cuando muestre:
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "dropbox"
Then paste the result.
Enter a value.
config_token>
…
¡Detente!
Instalar rclone localmente y autorizar Dropbox
Instala rclone en tu computadora. En mi caso, abrí una nueva ventana de Terminal en mi Mac para poder instalar rclone sin interferir con el proceso anterior, porque necesito continuar después de obtener el token de Dropbox.
Primero verifiqué si lo tenía instalado en mi Mac ejecutando:
rclone version
No lo tenía, así que tuve que instalarlo. En mi caso particular, estoy usando MacPorts, porque Homebrew no funciona bien con Catalina; elige tu opción preferida.
Comando de Homebrew:
brew install rclone
Comando de MacPorts:
sudo port install rclone
Una vez instalado, en esa misma ventana, ejecuta:
rclone authorize "dropbox"
Este nombre dropbox NO está relacionado con el nombre dropbox_backup que elegimos antes.
Una vez que ejecutes eso, el navegador abrirá la ventana de autorización.
Si no lo hace, pega esta URL en tu navegador: http://127.0.0.1:53682/auth (según estas instrucciones).
Inicia sesión en Dropbox. Haz clic en el botón Allow. Si todo va bien, obtendrás el mensaje:
Success!
All done. Please go back to rclone.
Cierra esa ventana.
Finalizar la configuración de Dropbox
Vuelve a Terminal, y mostrará un token largo (será súper largo, aquí lo hice más corto):
{"access_token":"sl.u.AF5VJTs.................ZvNhniOToyQG","token_type":"bearer","refresh_token":"jygyhExsHRgAAAAAAAAAAfeHd8D0l5jzLvuiZ1onH2nXP2YeC2ycrbm5eQ5Y3uc6","expiry":"2025-08-13T16:58:41.072138+01:00","expires_in":14400}
Copia todo, desde el { de apertura hasta el } de cierre, incluidos los corchetes, y pégalo en la otra ventana:
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "dropbox"
Then paste the result.
Enter a value.
config_token> PASTE_TOKEN_HERE
Presiona Enter.
Si todo es exitoso, verás algo como:
Configuration complete.
Options:
- type: dropbox
- token: {"access_token":"sl.u.AF5VJTs7..........ToyQG","token_type":"bearer","refresh_token":"jygyhExsHRgAAAAAAAAAAfeHd8D0l5jzLvuiZ1onH2nXP2YeC2ycrbm5eQ5Y3uc6","expiry":"2025-08-13T16:58:41.072138+01:00","expires_in":14400}
Keep this "dropbox_backup" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d>
Elige y para conservarlo. Esto guardará el remoto como dropbox_backup en tu servidor, y podrás usarlo para comandos de rclone. Presiona Enter.
Mostrará:
Current remotes:
Name Type
==== ====
dropbox_backup dropbox
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>
Escribe q para salir de la configuración. Tu remoto dropbox_backup está listo para usarse. Presiona Enter.
Mientras sigues en root@, ejecuta rclone lsd dropbox_backup:
Esto listará todos los directorios de nivel superior en tu Dropbox para confirmar que la conexión funciona.
Copias de seguridad
Manual
Para hacer una copia de seguridad manual, asumiendo que tienes una configuración típica (no una configuración de dos contenedores), ejecuta:
sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ dropbox_backup:backups
/var/discourse/shared/standalone/backups/default→ carpeta de origen en tu servidor (confirmo que esta ruta es precisa en una configuración típica – no en una configuración de dos contenedores – al menos a partir de agosto de 2025).--exclude tmp/→ omite archivos temporales.dropbox_backup:backups→ nombre del remoto (dropbox_backup) y carpeta en Dropbox (backups).
Esto subirá todos los archivos de copia de seguridad (excepto tmp/) a tu Dropbox, a una carpeta llamada backups, usando el nombre que elegimos antes: dropbox_backup.
Si quieres una carpeta con espacios, por ejemplo Discourse Backups, ejecuta esto en su lugar:
sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"
Si todo va según lo planeado, ahora verás una carpeta Discourse Backups (o el nombre que hayas elegido) en tu Dropbox con todos tus archivos de copia de seguridad.
Dado que llegaste a este punto, ve y cierra la segunda ventana de Terminal, la que se usó para instalar rclone en tu computadora, para evitar confusiones en el futuro.
Tarea Cron
Ahora, creemos una tarea cron para automatizar este proceso:
crontab -e
Se te presentará:
no crontab for root - using an empty one
Select an editor. To change later, run select-editor again.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/ed
Choose 1-4 [1]:
Elige 1. Presiona Enter.
Verás algo como:
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
Al final de todo eso, agrega la tarea cron. Para copiar las copias de seguridad todos los días a las 6 p.m., agrega lo siguiente:
0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"
Así que tu “lista” terminará con:
(TEXTO INICIAL AQUÍ)
# m h dom mon dow command
0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ "dropbox_backup:Discourse Backups"
Presiona Ctrl+X. En la parte inferior de la ventana, te preguntará si deseas guardar. Presiona Y y luego Enter.
¡Ya terminaste!
Puedes ejecutar la tarea cron con más frecuencia si lo deseas, ya que solo se copiarán los archivos nuevos de todos modos.
Ten en cuenta que la opción copy agregará más y más copias de seguridad a tu Dropbox incluso cuando las del servidor se eliminen. Si solo deseas conservar las que también se conservan en tu servidor, usa sync en lugar de copy.