Seguí la guía oficial de Discourse para instalar plugins en un sitio autoalojado (tutorial oficial), pero data de 2014 y estoy bastante seguro de que mucha de la información está desactualizada.\n\nTambién probé algunas de las soluciones más recientes y recomendadas compartidas en las respuestas de la discusión, como montar claves SSH a través de volúmenes y configurar el acceso SSH durante el proceso de arranque. Desafortunadamente, a pesar de estos esfuerzos, todavía no pude clonar e instalar plugins de mis repositorios Git privados usando SSH.\n\nSi alguien tiene un método actualizado y funcional o una mejor práctica para usar claves SSH para instalar plugins de Discourse desde repositorios privados, su orientación sería muy apreciada.
¿Hay alguna forma de descargar los archivos del plugin directamente al servidor de antemano, para que durante el arranque de Discourse no necesite recuperarlos de GitHub?
Este sigue siendo el enfoque válido
Lo uso todo el tiempo.
Probablemente puedas clonar los archivos directamente en /plugins y luego ejecutar las migraciones necesarias, pero entonces es posible que no recibas actualizaciones para los plugins.
¡Gracias! Pero la razón por la que prefiero usar SSH es porque los tokens de OAuth no permiten separar los permisos de lectura y escritura; siempre vienen con más acceso del necesario.
Con SSH, puedo generar una clave de implementación de solo lectura, lo que es más seguro y se alinea mejor con el principio de privilegio mínimo.
¡Gracias por la sugerencia!
De hecho, intenté clonar el plugin directamente en /var/www/discourse/plugins, pero no funcionó, incluso cuando monté la carpeta del plugin desde el host a esa ruta dentro del contenedor.
Parece que durante el arranque, Discourse espera obtener los plugins a través de Git, y colocar manualmente los archivos del plugin no evita ese paso.
Si has tenido éxito con este método, me encantaría saber más detalles.
IIRC hay problemas si clonas directamente (creo que esto), por eso usar los tokens para clonar es la forma recomendada.
Pero creo que querrás probar esto, si quieres usar claves SSH:
Gracias, pero ya probé el método descrito en la guía oficial de 2014 que enlazaste, y puedo confirmar que ya no funciona para acceder a repositorios privados a través de claves SSH durante el arranque.
También probé el enfoque más reciente mencionado en una de las respuestas (montar la clave SSH en el contenedor y configurar core.sshCommand en after_code), pero lamentablemente, eso también falló en mi caso. Discourse todavía genera un error de permiso SSH al intentar clonar el plugin privado.
Si existe una forma confiable y que funcione actualmente para usar un repositorio privado con SSH en una configuración de producción, agradecería mucho una guía más actualizada.
Podrías clonarlo localmente y montarlo en el directorio de plugins o copiarlo desde un montaje temporal al directorio de plugins.
Solías poder obtener una URL de GitHub con credenciales incrustadas en la URL. Yo lo he hecho antes.