Instalar Discourse en Windows para desarrollo

:information_source: Este tutorial ha sido probado en Windows 10 y 11.

Para configurar un entorno de desarrollo para Discourse en Windows, puedes hacerlo utilizando la característica Windows Subsystem for Linux.

Esta configuración requiere la instalación de WSL 2. Solo está disponible en las compilaciones de Windows 10 18917 o superiores. Asumiremos que ya has instalado Windows Subsystem for Linux 2 (Ubuntu) en tu sistema Windows 10. ADVERTENCIA: Instala Ubuntu 18.04, y no 20.04, ya que algunas instalaciones fallarán en 20.04. Para más información, consulta las notas del 30 de junio de 2020 al final de esta publicación.

¡Comencemos!

Instalación de Discourse

  1. Inicialmente, sigue los pasos del tema Guía para principiantes para instalar Discourse en Ubuntu para desarrollo hasta el paso Clonar Discourse.
  1. Antes de configurar la base de datos, debes iniciar manualmente el servicio de PostgreSQL y el servidor de Redis usando los siguientes comandos:

    sudo service postgresql start
    redis-server --daemonize yes
    
  2. Luego, sigue todos los pasos restantes de la guía de Ubuntu.

Crear un comando para iniciar Discourse

Ahora tu entorno de desarrollo está casi listo. El único problema es que cada vez que abres Ubuntu en Windows, tienes que iniciar manualmente el servicio de PostgreSQL y el servidor de Redis. No te preocupes, podemos tener una solución creando un comando personalizado :wink:

cd ~

Crea un nuevo archivo usando el comando nano start-discourse y pega el contenido a continuación, luego guarda y sal.

#!/bin/bash

# para iniciar PostgreSQL
sudo service postgresql start

# para iniciar el servidor de Redis
redis-server --daemonize yes

Ahora modifica los permisos CHMOD usando el siguiente comando:

chmod +x start-discourse

Y copia el archivo a tu carpeta bin:

sudo cp start-discourse /usr/bin/

Listo. Ahora, cada vez que abras la terminal bash de Ubuntu, simplemente ejecuta el siguiente comando y comienza a desarrollar :+1:

start-discourse

Alternativamente, si estás utilizando Windows 10 Enterprise, Pro o Education, puedes crear una máquina virtual Linux en Hyper-V para configurar el entorno de desarrollo de Discourse.

Notas sobre el entorno de Windows

A partir del 30 de junio de 2020:
A partir del 1 de julio de 2020

Última revisión por @SaraDev el 2022-06-16T02:00:00Z


Este documento está controlado por versiones: sugiere cambios en GitHub.

52 Me gusta
How to install Discourse on windows
Help installing Discourse for Developer
Database connection error when setting up Discourse development environment using Linux Bash Shell on Windows 10
Restoring backup fails in Win10/Ubuntu development environment
How to Install Discourse on LocalHost in Windows?
How can i install Discourse forum on my win 10 dedicated server OVH
Error installing `bullseye-backports` when trying to install for Development
How to install on localhost
Restoring backup fails in Win10/Ubuntu development environment
Trying to set up Discourse on my website
Help with setting up discourse An error occurred while installing xorcist (1.1.2), and Bundler cannot continue
Migrate a MyBB forum to Discourse
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Phorum forum to Discourse
Migrate a PunBB forum to Discourse
Migrate from another forum to Discourse
Unable to setup discourse in my windows 10
Self hosting discourse with WSL shows an error, the command shown also doesnt work
No such file or directory - convert (Errno::ENOENT)
PG::UndefinedTable: ERROR: relation "pg_range" does not exist
I'm having trouble installing a local Discourse instance on Windows 11
Issues while installing Discourse on WSL
Guide to Setting Up Discourse Development Environment - Windows 11
Need help integrating code wrote on Edittext to the Discourse
Problem in development Installation
Contributing to Discourse development
Subscribe to post an ad
Restoring backup fails in Win10/Ubuntu development environment
Migrate a Ning forum to Discourse
Windows server publish method
Use the Discourse API ruby gem
Topics which users cannot directly reply to, but can create a linked topic?
How to add a new language
How to Start Sidekiq When Using Puma
Discourse-webpack: A boilerplate for developing JS-heavy Discourse components
How can I directly edit Discourse database from a GUI?
Can't set up dev environment due to cppjieba_rb failing to install
Cloning and making our own Discourse community
How to Add Ngrok to Allowed Hosts
»vagrant up« hangs
Discourse installation end to end on Windows Server 2016
No connection to db issue
How to Install Discourse on LocalHost in Windows?
WSL environment deadlocks
Problem with development on Windows with Docker and mounted volume
Please help, how do I install Discourse on macOS?
Discourse standalone
Set up a local Discourse Development Environment?
Migrate a NodeBB forum with Redis to Discourse

Bien, encontré una solución.

Noté que reemplazar 127.0.0.1 con localhost solucionaba las imágenes.

Después de buscar un poco, este es el comando que puedes usar para iniciar Discourse:

DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/ember-cli -u


Intentaré actualizar la guía más tarde.

4 Me gusta

¿Hay alguna posibilidad de revisar esta PR?

Eso haría esta guía un poco más amigable.

3 Me gusta

¿Alguna idea de por qué obtengo “Desafortunadamente, ocurrió un error inesperado y Bundler no puede continuar”. Después de bundle install?

1 me gusta

mismo problema

¿Puede proporcionar una captura de pantalla del error? ¿Qué versión de Ruby tiene instalada?

Tengo problemas con las dependencias:

ux430uq@Asus-UX430UQ:~/discourse$ bundle install
Debes usar Bundler 2 o superior con este lockfile.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Versión de Bundler 1.16.1

ux430uq@Asus-UX430UQ:~/discourse$ gem install bundler

Fetching: bundler-2.4.20.gem (100%)
ERROR:  Mientras se ejecutaba gem ... (Gem::FilePermissionError)
    No tienes permisos de escritura para el directorio /var/lib/gems/2.5.0.
ux430uq@Asus-UX430UQ:~/discourse$
ux430uq@Asus-UX430UQ:~/discourse$ sudo gem install bundler
[sudo] contraseña para ux430uq:
Fetching: bundler-2.4.20.gem (100%)
ERROR:  Error al instalar bundler:
        La última versión de bundler (>= 0) que admitía tu Ruby y RubyGems fue la 2.3.26. Intenta instalarla con `gem install bundler -v 2.3.26`
        bundler requiere la versión de Ruby >= 2.6.0. La versión actual de ruby es 2.5.0.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Versión de Bundler 1.16.1
ux430uq@Asus-UX430UQ:~/discourse$

¿Cómo puedo solucionarlo fácilmente? Estaba intentando instalar 2.6.0, luego 2.7.0, pero siempre hay otros problemas con esto.

Según algunos de los comentarios anteriores, yo también tuve algunas dificultades y errores al intentar seguir esta guía; probé tanto en un escritorio con Windows 10 como con Windows 11.

Después de un poco de prueba y error, finalmente tengo los pasos que resultan en un entorno de desarrollo completamente funcional en Windows 11, probado en la última compilación 22H2 y también en la próxima vista previa de lanzamiento 23H2 (supongo que también funcionará en la compilación más reciente de Windows 10).

Si a alguien le sirve, acabo de publicar la guía aquí:-

Espero que esto ayude a personas como yo que intentan ejecutar Discourse en Windows :smiley:

2 Me gusta

Revisé esta guía oficial completa nuevamente para asegurarme de que nada se rompiera desde mi último intento.
Instalé Ubuntu (versión no especificada) a través de WSL en Windows 11, lo que instaló la última versión LTS, 22.04 en este caso.

No encontré ningún problema; todo fue sencillo, sin errores, y la instalación de desarrollo funciona.

Si tienes problemas para instalar algo usando una de nuestras guías oficiales en el futuro, por favor anota los errores y repórtalos, ¡siempre es útil! :smile:


Dos advertencias, sin embargo:

Al instalar Node.js:

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

                           ADVERTENCIA DE DESAPROBACIÓN DE SCRIPT


  Este script, ubicado en https://deb.nodesource.com/setup_X, que se usaba para
  instalar Node.js, ahora está obsoleto y eventualmente se desactivará.

  Por favor, visita el repositorio de Github de distribuciones de NodeSource y sigue las
  instrucciones para migrar tu repositorio.
  https://github.com/nodesource/distributions

  El repositorio de Github de distribuciones de Linux de NodeSource para Node.js contiene
  información sobre qué versiones de Node.js y qué distribuciones de Linux
  son compatibles y cómo instalarlo.
  https://github.com/nodesource/distributions


                          ADVERTENCIA DE DESAPROBACIÓN DE SCRIPT

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

PARA EVITAR ESTA ESPERA, MIGRAR EL SCRIPT
Continuando en 60 segundos (presiona Ctrl-C para abortar) ...

Al ejecutar redis-server --daemonize yes:

# ¡ADVERTENCIA! El overcommit de memoria debe estar habilitado. Sin él, un guardado en segundo plano o la replicación pueden fallar en condiciones de poca memoria. Al estar deshabilitado, también puede causar fallos sin condiciones de poca memoria, ver https://github.com/jemalloc/jemalloc/issues/1328. Para solucionar este problema, agrega 'vm.overcommit_memory = 1' a /etc/sysctl.conf y luego reinicia o ejecuta el comando 'sysctl vm.overcommit_memory=1' para que tenga efecto.

¡No estaba seguro de por qué tuve tantos problemas entonces! ¡Quizás había algo extraño en mi instalación de Windows que logré arreglar durante mi solución de problemas sin darme cuenta! :stuck_out_tongue:

Aún así, todavía estoy contento con lo que he aprendido hasta ahora y espero seguir trabajando en la migración de mis foros a Discourse.

2 Me gusta

Tuve que reinstalar Windows y ahora tengo una instalación limpia de Windows 11.
Seguiré la guía y reportaré más tarde. Tendré en cuenta la guía de @AliBenBongo también.

1 me gusta

Aquí tienes un seguimiento.

La guía seguramente necesita una actualización, pero todavía funciona de maravilla en una instalación limpia de Windows 11 22H2. :+1:

El único problema que tuve fue que, aunque el comando wsl funcionaba en una terminal, la característica WSL en realidad no estaba habilitada por defecto:

3 Me gusta

Creo que esta guía está desactualizada. Los pasos mencionados en la guía de Ubuntu/Debian ya no existen.

¿Hay alguna forma de deshacer todos estos pasos, por ejemplo, revertir el script de instalación de paquetes, gems y clonación?

¿Sigue siendo necesario instalar 18.04 sobre 20.04?

Recibo un error al instalar nodejs:

# apt install nodejs

Leyendo lista de paquetes... Hecho
Creando árbol de dependencias

Instalación en 24.04 fallida; el host no puede conectarse al puerto 3000.

Lo tengo ejecutándose en 24.04. Recomiendo compartir más información sobre cómo se ven las cosas al iniciar el servidor.

Prueba FORCE_HOSTNAME=localhost bin/ember-cli -u, lo cual ejecutará simultáneamente los servidores de backend y frontend.

(De camino: de memoria)