Cuáles son las formas más básicas pero fiables de garantizar que un foro de Discourse siempre pueda recuperarse?

A lo largo de los años he ayudado a amigos a alojar su propio foro.

Les he hecho alquilar un servidor de Hetzner, configurar copias de seguridad automatizadas en Discourse y las sincronizo con mi Google Drive usando rclone y una tarea cron. Cada administrador de cada foro tiene acceso a sus propias copias de seguridad en mi Drive. Es la solución más simple y segura que puedo imaginar siendo un no administrador de sistemas.

En varias ocasiones, noté que los tokens no se actualizaban en rClone (al menos en una instancia) y tuve que reconfigurarlo. Como no tengo ninguna alerta si una sincronización falla, simplemente reviso manualmente mi Drive de vez en cuando para asegurarme de que las últimas copias de seguridad sean recientes.

Si quisieras ayudar voluntariamente a alguien o a una asociación a alojar un foro, ¿qué solución configurarías para garantizar que siempre haya copias de seguridad en algún lugar que puedan recuperarse de forma segura si el foro explota por alguna razón)?

Los respaldos se extraen mediante rsync a través de ssh, con una cuenta restringida, desde un cronjob. Bueno, no lo hago yo, pero uno de mis moderadores sí. Yo tomo y descargo un respaldo cuando realizo una actualización. Así, en un caso podríamos perder unos pocos días de actividad del foro, y en el otro, un mes o más.

Probablemente debería configurar mi propio crontab. También podría aumentar la frecuencia de los respaldos; actualmente está establecida en 2 días.

En ambos casos, debemos ser administradores razonablemente competentes de nuestros propios sistemas. Solo deberíamos perder el foro si ambos perdiéramos nuestras copias descargadas y nuestros propios respaldos, además del propio servidor.

Edición: buen punto, es necesario tener alguna verificación positiva de que el proceso esté funcionando y alguna idea, por superficial que sea, de que los respaldos descargados sean válidos.

No he tomado precauciones especiales con el dominio: idealmente, este también debería tener una administración dual y una propiedad conjunta de algún tipo. Si perdiéramos el control, el foro tendría que reaparecer en un dominio nuevo; podría enviar resúmenes y notificaciones a los miembros por correo electrónico, de modo que, con un poco de confianza, podrían volver a unirse.

Para las copias de seguridad, recomendaría S3. Copias de seguridad diarias del foro si quieres estar a salvo. Copias de seguridad del VPS, si quieres estar extra seguro.

También hay:

Bueno, hago una copia de seguridad de la base de datos cada hora :man_shrugging: Es el mismo principio que en el comercio electrónico: hay que considerar cuál es el mayor intervalo de tiempo que se puede y/o se desea recuperar.

Copia de seguridad en S3 y en un disco externo con restic

De acuerdo. Si tienes los archivos YML con la configuración de S3 y las copias de seguridad almacenadas en S3, entonces lo único que necesitas para restaurar el foro en un servidor nuevo son los archivos YML. Esto tiene la ventaja adicional de no llenar tu disco con copias de seguridad.

ADVERTENCIA: Debes recordar pagar la factura del bucket de S3, además de la de la VM. Creo que la de Cloudflare es la más barata, ¿no?

He tenido un caso en el que alguien perdió el control de su cuenta de AWS y perdió todas sus imágenes. Así que solo recordar pagar la factura es un coste que no debe subestimarse.

Exactamente: no tengas todas las copias de tus datos con un solo proveedor.

Me gusta tener tres copias cifradas: una en el host, otra en la nube (compatible con S3) y la última en un disco óptico o en una unidad USB.

Estoy planeando realizar copias de seguridad en almacenamiento descentralizado, por lo que actualmente estoy explorando también la fiabilidad de las opciones disponibles.

Actualmente ejecuto una copia de seguridad diaria y la subo.
La base de datos se respalda mediante la función de copia de seguridad integrada de Discourse, y las imágenes originales se suben mediante una copia de seguridad incremental diaria con restic.
Todo se sube a un servicio de almacenamiento en la nube, pero la desventaja actual es que solo se sube a un servicio. Sería mejor poder subirlo a varios servicios en el futuro.

Usa copias de seguridad externas y almacenamiento de objetos. Yo uso Cloudflare R2 (compatible con S3) y he realizado restauraciones en diferentes servidores en varias ocasiones. Es fácil de gestionar y restaurar. Además, utiliza una compilación de contenedor dual.

Una táctica útil para este tipo de preguntas es considerar el modelo de amenazas.

Ya hemos visto algunas de estas:

  • un incendio destruye el edificio que contiene tu servidor
  • pierdes el control de la cuenta con tu proveedor
  • la persona que tiene el control sobre tu dominio no está disponible de forma permanente
  • pierdes el acceso a una cuenta de correo electrónico
  • tus copias de seguridad resultan estar desactualizadas porque algo dejó de funcionar
  • no puedes restaurar tus copias de seguridad por alguna razón técnica
  • tu administrador del foro no está disponible de forma permanente o no coopera

En resumen:

  • los edificios arden o se inundan
  • las personas se pelean entre sí o mueren
  • las empresas cambian sus políticas y toman decisiones arbitrarias
  • cualquier copia única de datos puede resultar defectuosa o inaccesible

Considera cada uno de estos puntos, para cada persona, empresa y copia, y observa cómo se ve tu vulnerabilidad.

git-annex puedes echarle un vistazo si los aspectos técnicos no te asustan