El código de tu plugin puede definir migraciones y/o contenidos de semilla según sea necesario. También puede asegurar que la configuración del sitio tenga el valor adecuado.
Me gusta usar S3 para las copias de seguridad, de modo que todos los sitios puedan compartir el mismo conjunto de respaldos. Así, cuando realizas una copia de seguridad en producción, puedes restaurarla inmediatamente en tus entornos de staging para verificar que funciona con los datos actuales.
Solo mi opinión, y sin restar valor a los comentarios útiles aquí sobre las copias de seguridad, pero reflexionando un poco: no estoy seguro de que valga la pena mucho esfuerzo sincronizar instalaciones de Discourse.
A menos que tengas la intención de enviar contribuciones (PR) al núcleo de Discourse, desarrollar plugins o componentes de tema (TC) es lo más recomendable y te ofrece la solución más robusta y eficiente para la personalización.
Lo fundamental al desarrollar plugins y componentes de tema es que se implementarán en múltiples instancias de Discourse, sobre las cuales, en cualquier caso, es posible que no tengas control.
Por lo tanto, tener una instancia local de Discourse ligeramente única para el desarrollo está perfectamente bien (dentro de lo razonable).
El flujo de trabajo clave debería consistir en mantener el plugin o el TC actualizado en un repositorio compartido, muy probablemente en GitHub.
Estoy totalmente de acuerdo. Tengo varios clientes con personalizaciones que no se pueden verificar (o que es más fácil verificarlas) con sus datos reales, por lo que les gusta mucho ver el sitio con los datos actuales.
Sí, eso es justo. Depende de lo que intentes hacer y de cuál sea la base de clientes (un solo objetivo o varios clientes) y de cuánto control esperas tener.
Gracias a todos por sus consejos. Lo más probable es que utilice PRs directamente en el núcleo de Discourse. Por lo tanto, necesito la capacidad de subir el ensamblaje a Git y desde Git al servidor.
Si vas a enviar un PR al núcleo de Discourse, la configuración exacta de tu instalación local no es crítica (solo asegúrate de tener la versión más reciente), ya que la contribución de código es un proceso muy controlado de todos modos, especialmente con casos de prueba. Por lo tanto, es poco probable que una ligera variación en la configuración o el contenido cause problemas.
Normalmente, si trabajas en contribuciones conjuntas, ¿forklearías a un repositorio de tu organización y trabajarías allí antes de enviar el PR?
No, no estoy trabajando en contribuciones conjuntas. Lo hago para uso personal.
No quería decirlo de esa manera.
¿Cómo puedo instalar Discourse desde un fork de git?
Haré cambios en el núcleo de Discourse y los agregaré a mi repositorio en git.
Ahora tengo Discourse configurado.
Luego, cuando todo esté listo, actualizo mi compilación.
Después, continúo con el desarrollo nuevamente. Estoy cambiando algunas configuraciones en el panel de control. Puede haber muchas.
Cuando quiera actualizar mi compilación, también tendré que actualizar las configuraciones.
En este caso, tendré que establecer las configuraciones manualmente.