Instala Discourse en un servidor CentOS 7 aislado

Nuestro Discourse interno ha estado funcionando felizmente con la misma versión durante bastante tiempo, pero finalmente nos estamos despidiendo de IE9, por lo que una actualización estaba más que debida.
Puedo confirmar que esta guía sigue siendo válida con las últimas versiones de Discourse. Incluso con RHEL8 en lugar de 7 :slight_smile:

Mientras experimentaba, encontré una forma de hacer que los plugins discourse-prometheus y discourse-calendar funcionen también sin conexión, a pesar de las dependencias adicionales. El truco consistió en extraer las gemas de Ruby del directorio de plugins del servidor de compilación, así como las que se encuentran en /var/www/discourse/vendor/bundle/ruby.

docker run -it -v ~/local/rubygems.org:/local-rubygems local_discourse/app /bin/bash -c "cp -rv /var/www/discourse/vendor/bundle/ruby /local-rubygems"
docker run -it -v ~/local/rubygems.org/plugin-gems/discourse-calendar:/local-rubygems local_discourse/app /bin/bash -c "cp -rv /var/www/discourse/plugins/discourse-calendar/gems /local-rubygems"
docker run -it -v ~/local/rubygems.org/plugin-gems/discourse-prometheus:/local-rubygems local_discourse/app /bin/bash -c "cp -rv /var/www/discourse/plugins/discourse-prometheus/gems /local-rubygems"

Y luego, en /templates/web.template.yml:

  - exec:
      cd: $home
      hook: bundle_exec
      cmd:
        # copiar caché local de Ruby
        - cp -rv /local-rubygems.org/ruby/* $home/vendor/bundle/ruby/
        - cp -rv /local-rubygems.org/plugin-gems/* $home/plugins/
        - su discourse -c 'bundle install --local --deployment --retry 3 --jobs 4 --verbose --without test development'

Por cierto, parece que el tema sobre Active Directory IIS SSO se perdió en algún momento, pero el código sigue disponible en GitHub - laktak/discourse-sso: Single Sign On for Discourse with Active Directory · GitHub y sigue funcionando con el ahora renombrado DiscourseConnect SSO.