Instalar Discourse en macOS para desarrollo

:warning: Esta guía cubre las instrucciones de instalación para un entorno de desarrollo en macOS. Para guías de producción, consulta: Install Discourse in production with the official supported instructions

¿Quieres configurar Discourse en macOS para trabajar y desarrollar en él?

Asumiremos que no tienes Ruby/Rails/Postgres/Redis instalados en tu Mac. ¡Comencemos :rocket: !

Instalar dependencias de Discourse

Necesitarás los siguientes paquetes en tu sistema:

opcional

reinicia tu terminal

Ahora que hemos instalado las dependencias de Discourse, pasemos a instalar el propio Discourse.

Reinicia tu terminal

Salir de tu shell y reiniciarla asegura que las rutas a los paquetes instalados sean detectadas correctamente por la terminal.

Clonar Discourse

Clona el repositorio de Discourse en la carpeta ~/discourse:

git clone https://github.com/discourse/discourse.git ~/discourse

~ indica la carpeta de inicio, por lo que el código fuente de Discourse estará disponible en tu carpeta personal.

Inicializar Discourse

Cambia a la carpeta de Discourse:

cd ~/discourse

Instala las gemas necesarias:

bundle install

Instala las dependencias de JS:

pnpm install

A continuación, ejecuta estos comandos para configurar tu instancia local de Discourse:

bundle exec rake db:create
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

Inicia los servidores de Rails y Ember; tienes dos opciones aquí.

Opción 1: usando dos pestañas/ventanas de terminal separadas, ejecuta Rails y Ember CLI por separado mediante:

bundle exec rails server

y

bin/ember-cli

Opción 2: usando solo una pestaña/ventana de terminal:

bin/ember-cli -u # ejecutará el servidor Pitchfork en segundo plano

:tada: Ahora deberías poder navegar a http://localhost:4200 para ver tu instalación local de Discourse. (Ten en cuenta que la primera carga puede tardar hasta un minuto mientras el servidor se inicializa.)

También puedes probar ejecutando las pruebas:

bundle exec rake autospec

Todas (o casi todas) las pruebas deberían pasar.

Crear un nuevo administrador

Para crear un nuevo administrador, ejecuta el siguiente comando:

RAILS_ENV=development bundle exec rake admin:create

Sigue las indicaciones para crear una cuenta de administrador.

Configurar el correo

Ejecuta MailHog:

mailhog

¡Felicidades! Ahora eres el administrador de tu propia instalación de Discourse.

¡Feliz hacking! Para comenzar, consulta la Guía para principiantes sobre cómo crear plugins de Discourse.


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

78 Me gusta
Setup discourse on Mac OS
Running Discourse on Docker for Mac
Localhost:3000/users gives no-results
How to install Discourse on windows
How to install Discourse locally?
Best dev installation method for running on macOS?
Please help, how do I install Discourse on macOS?
Local installation internal use only
Help me setup my Discourse development environment
Discourse standalone
Migrate a NodeBB forum with Redis to Discourse
Starting discourse fails with bootstrap error
Error after cleaning tmp folder
MacOS Installation Gem::FilePermissionError
UndefinedTable: ERROR: relation "web_hook_event_types" when trying to run rspec test
[Need help][MacOS M1 dev installation] ArgumentError unknown keywords
Migrate a PunBB forum to Discourse
Migrate a phpBB3 forum to Discourse
Migrate a FluxBB forum to Discourse
Migrate a vBulletin 3 forum to Discourse via XenForo
Regarding the installation - docker
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Ning forum to Discourse
Migrate a Phorum forum to Discourse
Migrate from another forum to Discourse
Migrate a Kunena 3 forum to Discourse
Migrate a bbPress WordPress plugin forum to Discourse
Install Discourse for development using Docker
Use the Discourse API ruby gem
Enable CORS on localhost for DiscourseConnect
Set Environmental Variables
Need help integrating code wrote on Edittext to the Discourse
Keyboard navigation messes up the search menu
WP-Discourse not connected and admin email not recognized
Contributing to Discourse development
How to install discussions on localhost in my mac?
How to install Discourse for Wordpress locally running on MAMP
Error when building: "Runtime Error: discourse does not support compiling scss/sass files via sprockets"
Discourse as Your First Rails App
Migrate from GetSatisfaction to Discourse
Upgrading Mathjax to version 4
Windows server publish method
Migrate a MyBB forum to Discourse
Category option: max topics per user (2 use-case examples)
Can't deploy to heroku
[PAID] Import from Legacy Postgres DB
Vagrant based server failing on db:migrate
Change unicorn port from 3000 in development
I want to build a debug version of discourse
Moderation Tools
Rails server --daemon and plugins
Installing problem - bundle install
Nginx Performance Report plugin incompatible with development environment setup script
Rake aborted message is showing when installing vagrant development
Update PhantomJS to latest for Ubuntu dev guide?
Cannot Backup my Development Instance (Fails)
Install error : Protocol violation
Can't set up dev environment due to cppjieba_rb failing to install
How to edit the discourse files? A development box?
How to add a new language
How to relax Content Security Policy
Installing Discourse for macOS Development Using asdf and docker-compose
Override profile background via SSO
Can't set up dev environment due to cppjieba_rb failing to install
Stuck in infinite loop in Mac terminal after source ~/.bashrc
Install on macOS – Failure: Scheduler::Defer can pause and resume
Disabling SSO in development environment
Local development and deploying from same repo
Discourse Connect on Local instance is not working
Can't start localhost server -- file was built for x86_64 which is not the architecture being linked (i386)
Please help, how do I install Discourse on macOS?
How to connect to an external database running on localhost
How can I include discourse in my local dev stack?
Topic List Previews (TLP)
Global messages on 94632 timed out, restarting process, 95535 successfully terminated by `TERM` signal
Cannot get embedding to work
/admin/config/emoji non responsive/locks up
App.yml file does not exist when installing Discourse locally
Ember-cli error on local MacOS development
Importing / migrating from Zendesk Community to Discourse
Redis version error when I run bundle exec db:create
Dev environment setup failed on bundle install
Set up a local Discourse Development Environment?

If anyone is getting failing specs with most of them being .count errors, then try the following:

RAILS_ENV=test bundle exec rake db:reset

I had a problem where development data somehow got into my test database and was causing lots of failures.

7 Me gusta

Is it possible to reset a discourse completely?

2 Me gusta

Yes, do:

rake db:drop db:create db:migrate

Note that this will wipe everything and you will have to create your Admin user account again.

11 Me gusta

Can someone assist me in how I can update my discourse?

/launcher rebuild app

returns an error.

1 me gusta

./launcher rebuild app is for discourse_docker based production setup. To update local/development Discourse instance you need:

cd ~/discourse
git pull origin master
8 Me gusta

I get this error @techAPJ,

error: Your local changes to the following files would be overwritten by merge:
	.gitignore
Please commit your changes or stash them before you merge.
Aborting

The error message is pretty clear:

Please commit your changes or stash them before you merge.

If you want to ignore your local changes, do:

git fetch origin
git reset --hard origin/master
7 Me gusta

Utilizando la guía del foro de Ruby on Rails, actualmente estoy atascado en el paso 7.

Esta es probablemente una pregunta muy de “principiante”, pero ¿cómo “apunto” a la rama experimental que se vinculó en ese tema? Probé varias cosas y cada vez me daba el mensaje Unknown command mini_racer.

1 me gusta

Están bien preguntando aquí.

Hay algunas instrucciones específicas para m1 que escribimos y que referenciamos en el foro de Rails en esta guía.

Tendría que revisar mi m1 Air más tarde, y quizás mis compañeros de trabajo que configuraron recientemente nuevos Macs podrían saber mejor si esto aún es necesario, pero hay un ejemplo de cómo apuntar a una rama en el paso 7:

gem 'mini_racer', github: 'rubyjs/mini_racer', branch: 'refs/pull/186/head'

Entonces, deberías editar esta línea en tu versión local de discourse/Gemfile:

y luego ejecutar bundle install.

4 Me gusta

Está enlazado justo en la parte superior de la publicación original.

El tema del foro de Ruby on Rails lleva meses inactivo. El autor original (OP) no ha estado activo desde febrero y no ha respondido a ningún comentario allí pidiendo ayuda.

Aquí hay más personas que pueden ayudarme. Solo digo. :wink:

Intenté copiar eso en la Terminal y recibí el mismo error Unknown command mini_racer, que antes.

Admito que la guía del foro de Ruby on Rails no es tan clara como esperaba en ese sentido.

Mis disculpas de antemano… :pray:

2 Me gusta

No es un comando para ejecutar. Necesitarás EDITAR el archivo de texto real llamado “Gemfile” ubicado dentro del directorio de Discourse.

1 me gusta

¡Doh! :facepalm:

¡Gracias! Lo intentaré ahora mismo.

En mi opinión, alguien debería editar la guía del foro de Ruby on Rails y proporcionar mayor claridad sobre el paso 7. Solo son mis dos centavos, aunque.

Vuelvo enseguida. Un momento…

1 me gusta

Lo siento, tengo que irme, pero creo que la corrección de mini_racer para Macs M1 ya ha sido integrada. Acabo de verificar mi Gemfile en mi Mac M1 y no ha sido editado. Así que creo que puedes omitir el paso 7.

3 Me gusta

Ejecuté el paso 8 y recibí el error Could not locate Gemfile.

(Pienso) que pude resolver el paso 7, pero el paso 8 sigue dándome problemas y muestra el error mencionado anteriormente.

Debes estar dentro del directorio de Discourse cuando ejecutes bundle install.

Hola @merefield: ¿Puedes describir un poco más tu configuración remota?

Si bien desarrollar un tema me permite aplicar cambios en un sitio en vivo, para desarrollar un plugin no veo otra forma que hacerlo en mi máquina local, teniendo todo el código base de Discourse allí (con mi plugin encima).

El resultado es que para cualquier cambio (que no sea de CSS) al codificar un plugin, cuando lo recargo 1) se encienden los ventiladores de mi computadora y 2) tarda unos sólidos 30 segundos en recargarse. Y si necesito reiniciar el servidor, tarda varios minutos.

Esos retrasos se acumulan, con el resultado de que podría tardar una hora en codificar algo que, con mi flujo de codificación normal (donde hay recarga en caliente o como máximo 2-3 segundos por cambio), tardaría 15 minutos.

Por lo tanto, agradecería cualquier sugerencia para acelerar las cosas.

1 me gusta

Esto, argumentablemente, estaría mejor en el tema de Ubuntu, ya que solo estoy ejecutando esa instalación en un servidor en la nube, con nginx y un DNS completo (sin docker), por lo que en realidad estoy abordando el dominio. Ejecutando todo desde la terminal. Incluso he conseguido que Ember CLI funcione bien en esa configuración ahora.

Tampoco es tan rápido, pero lo suficientemente rápido. Tiene el beneficio de poder ejecutar y probar servicios completos de devolución de llamadas https.

El entorno de desarrollo de plugins más rápido con el que estoy familiarizado es Docker Dev en WSL2, que funciona a la perfección. También es extremadamente fácil de mantener. Desafortunadamente, discourse_theme aún no funciona en ese entorno, hasta donde sé, así que he vuelto a mi servidor en la nube para ese trabajo.

Es un poco extraño por qué Apple se está quedando atrás aquí. Los ingenieros de Microsoft han demostrado ser muy astutos.

3 Me gusta

En caso de que alguien reciba errores al intentar instalar ruby 2.7.3, aparentemente algo cambió después de Xcode 12 que rompe el proceso de instalación con rbenv:

Seguí recibiendo esto, a pesar de tener las últimas versiones de psych y libyaml instaladas:

Parece que a tu instalación de ruby le falta psych (para la salida YAML).
Para eliminar esta advertencia, por favor instala libyaml y reinstala tu ruby.

Intenté la solución alternativa que sugieren en la guía, pero seguí recibiendo el mismo error y terminé teniendo que usar rvm:

rvm install 2.7.3
1 me gusta

En cuanto a cómo programar más rápido al crear un plugin, recientemente he cambiado mi enfoque. Y está funcionando muy bien. Básicamente, mueve todo el contenido del frontend a un componente temático y solo codifica las cosas del backend en el propio plugin. Sé que otros ya lo han descubierto antes. Pero ahora que lo estoy haciendo, la programación es mucho más rápida y agradable. Detalles aquí.

3 Me gusta