Esta guía explica cómo restaurar una copia de seguridad de Discourse desde la línea de comandos sin usar la interfaz de usuario web de Discourse.
Nivel de usuario requerido: Administrador
Se requiere acceso a la consola
Así es como se restaura una copia de seguridad de Discourse desde la línea de comandos, sin arrancar nunca la interfaz de usuario web de Discourse. Esto es útil cuando se están moviendo servidores.
Prerrequisitos
Antes de comenzar, asegúrese de completar los siguientes pasos:
- Descargue el archivo de copia de seguridad más reciente de la instancia de Discourse de origen.
- Configure la instancia de Discourse de destino ejecutando
./discourse-setupo copiando suapp.ymlexistente. - Asegúrese de que la instancia de Discourse de destino esté en la última versión. Actualícela si es necesario.
Transferir la copia de seguridad
- Inicie sesión mediante SSH en el servidor de destino, o cree la carpeta de copia de seguridad allí:
mkdir -p /var/discourse/shared/standalone/backups/default
- Suba su archivo de copia de seguridad al servidor de destino.
scp /path/to/backup/backup.tar.gz root@192.168.1.1:/var/discourse/shared/standalone/backups/default
Asegúrese de reemplazar las rutas, los nombres de archivo y los nombres de servidor con los que está utilizando, pero sí desea que el archivo de copia de seguridad termine en:
/var/discourse/shared/standalone/backups/default
También puede cargar y descargar su archivo de copia de seguridad de Discourse desde sitios populares de almacenamiento web como Google Drive, Dropbox, OneDrive, etc. Necesitará buscar las instrucciones específicas de la línea de comandos en función de su proveedor de almacenamiento web preferido.
¡NO CAMBIE EL NOMBRE DEL ARCHIVO DE LA COPIA DE SEGURIDAD! Discourse trata el nombre del archivo de copia de seguridad como metadatos, por lo que si cambia el nombre del archivo, la restauración no funcionará. Quédese con el nombre de archivo original.
Reemplace /path/to/backup/discourse-xyz.tar.gz con la ruta local de su archivo de copia de seguridad y reemplace \u003cserver_ip_address\u003e con la dirección IP del servidor de destino.
Si se utiliza Nginx como proxy inverso (Running other websites on the same machine as Discourse) asegúrese de que el contenedor pueda leer todas las rutas a la copia de seguridad y que Nginx pueda leer el archivo
.sock.
Restaurar la copia de seguridad
- Acceda a su servidor de destino y navegue a la carpeta de Discourse:
cd /var/discourse
- Ingrese al contenedor de la aplicación Docker de Discourse:
./launcher enter app
- Habilite la funcionalidad de restauración:
discourse enable_restore
- Restaure el archivo de copia de seguridad:
discourse restore sitename-2019-02-03-042252-v20190130013015.tar.gz
Consejo: Si ejecuta
discourse restoresin un nombre de archivo, se enumerarán todos los archivos de copia de seguridad disponibles.
Si la configuración
backup_locationde su sitio está configurada para usar S3, pero cargó manualmente el archivo de copia de seguridad al sistema de archivos local, debe especificar--location local:discourse restore --location local sitename-2019-02-03-042252-v20190130013015.tar.gzDe manera similar, use
--location s3para restaurar directamente desde una copia de seguridad de S3 sin descargarla primero.
- Salga del contenedor de la aplicación Docker de Discourse:
exit
Recompilar
Después de restaurar la copia de seguridad, puede optar por reconstruir la instancia de destino para asegurar que toda la configuración y ajustes se apliquen correctamente.
Ahora es un buen momento para actualizar
/var/discourse/containers/app.ymlcon HTTPS completo, complementos adicionales o configuración de CDN. ¡Compare la configuración deapp.ymlde ambas instancias para asegurarse!
cd /var/discourse
./launcher rebuild app
Habilitar el correo electrónico
Cuando se restaura una copia de seguridad, el correo saliente para los no administradores se deshabilita. ¡No querrá que su servidor de pruebas, servidor nuevo o el servidor para el que acaba de restaurar una copia de seguridad por alguna otra razón comience a enviar correos electrónicos a sus usuarios! Cambie la configuración del sitio disable_emails a “no” para volver a habilitar el correo electrónico.
Eso es todo. Su servidor Discourse se ha restaurado con éxito.