(desactualizado) Guía para configurar el entorno de desarrollo de Discourse - GitHub Codespace


Desarrollo usando GitHub Codespaces

GitHub Codespace es una excelente opción de desarrollo. Es genial porque está alojado en la nube, puedo asegurar fácilmente que todos los que desarrollan aquí tengan el mismo entorno, no hay que lidiar con instalaciones locales de Docker, fácil acceso para hacer que mi instancia de desarrollo local esté disponible públicamente, y además, usar nueva tecnología es divertido.

Actualmente estoy re-aprendiendo desarrollo y decidí aprender GitHub Codespaces además de aprender algo de desarrollo de Discourse, así que hice esta guía para cualquiera que busque desarrollar en Discourse en GitHub Codespace en lugar de configurar un entorno local.

Decidí escribir esta guía después de pasar por una serie de problemas para que esto funcionara con GitHub Codespace:

Esta guía no asumirá nada, para que no nos perdamos ningún paso para ponerte en marcha. Sospecho que parte de este proceso se puede mejorar a nivel del repositorio principal para la configuración de GitHub Codespace, o al menos debido a mi falta de comprensión. No dudes en señalarlo.

Bifurcar el repositorio de Discourse

  1. Navega a https://github.com/discourse/discourse

  2. Haz clic en el botón Fork en la esquina superior derecha de la página y haz clic en el botón verde Create fork en la página siguiente.

  3. Después de un breve momento, serás llevado a tu nueva bifurcación del repositorio discourse/discourse:

Configurar tu GitHub Codespace

  1. Haz clic en el botón verde <> Code

  2. Cambia a la pestaña Codespaces y haz clic en el botón verde Create codoespace on main.

  3. Serás llevado a una nueva ventana donde GitHub comenzará a crear tu codespace. Esto debería tomar de 1 a 3 minutos:
    chrome_LYoRTOWojo

  4. Después de unos minutos, se te presentará tu GitHub Codespace (que es solo VS Code en tu navegador):

Configurar tu entorno de Codespace

Hay algunas configuraciones que hacer en tu entorno de codespace antes de que estés en funcionamiento.

  1. Crea un nuevo shell bash haciendo clic en Ctrl + Shift + backtick en Windows/Linux, o Cmd + Shift + backtick en Mac. Tu shell debería iniciarte en el directorio /var/www/discourse.

  2. Navega al directorio de discourse:

cd workspace/discourse

  1. Instala todo desde el Gemfile del proyecto
bundle install --gemfile ./Gemfile

El comando es bastante largo, pero verás algo como esto:

  1. Agrega un nuevo config.hosts a development.rb
    1. Desde el directorio en el que te encuentras actualmente (/var/www/discourse/workspace/discourse) abre el archivo config/environments/development.rb.
    2. Encuentra la línea config.hosts << /\A(([a-z0-9-]+)\.)*localhost(\:\d+)?\Z/ y crea una nueva línea debajo con lo siguiente, luego guarda el archivo:
config.hosts << /^(.*)\.app\.github\.dev$/

La parte final de tu archivo debería verse así (nota la línea 102 en mi captura de pantalla):

  1. De vuelta en tu terminal, ejecuta bundle exec rake admin:create para crear tu primera cuenta de administrador. El comando te pedirá que elijas un correo electrónico y una contraseña (la contraseña debe tener al menos 10 caracteres).

Inicia tus motores servidor

Tomará de 1 a 2 minutos compilar e iniciar el servidor. En este punto, deberías tener todo lo que necesitas para ejecutar y acceder a tu aplicación.

  1. En la misma terminal en la que te encuentras, ejecuta el siguiente comando para iniciar tu servidor:
bin/ember-cli -u

  1. Cambia de la pestaña Terminal a la pestaña PORTS en tu consola:

  2. Haz clic en la Dirección reenviada para el puerto 4200 usando Ctrl + clic para Windows/Linux, o Cmd + clic para Mac y serás recibido con tu entorno de desarrollo.

¡Espero que esto ayude a alguien más a comenzar con GitHub Codespaces! :tada:

11 Me gusta

Genial, es una buena opción cuando se viaja ligero.

2 Me gusta

O en mi caso, realmente no quiero desarrollar en Windows y Docker, pero tampoco quiero cambiar a un entorno Unix en casa (aunque uso uno en el trabajo).

Simplemente me gusta la idea de que todo esté ahí mismo en mi repositorio de GitHub.

3 Me gusta

Creo que esta guía necesita una actualización. No funciona al ejecutar el paso 5, ya que las bases de datos aún no se han creado.

1 me gusta

Logré que funcionara ejecutando

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/main/linux)

Luego

bin/rails db:create
bin/rails db:migrate
RAILS_ENV=test bin/rails db:create db:migrate

Seguido de

bin/ember-cli -u

Luego en una terminal dividida

bin/rails admin:create
1 me gusta

@jordan-violet Asumo que esta es una #instalación-no-soportada. No puedo encontrar mi app.yml, así que no puedo instalar plugins.

Para instalar un plugin, puedes seguir los pasos en Install plugins in your non-Docker development environment

3 Me gusta

Creas un enlace simbólico desde tu carpeta de plugins a la carpeta de tu código de plugin.

2 Me gusta

@jordan-violet gracias por crear esta guía con todas las soluciones alternativas que antes eran necesarias :pray:

Me complace decir que ahora hemos fusionado una serie de cambios en nuestra configuración de devcontainer/codespaces, lo que debería facilitar mucho las cosas sin necesidad de bifurcar o configurar manualmente nada.

Aquí está la guía oficial:

Voy a añadir una nota en la parte superior del OP aquí, dirigiendo a la gente a las guías oficiales :writing_hand:

6 Me gusta