Installa Discourse su macOS per lo sviluppo

:warning: Questa guida tratta le istruzioni per l’installazione di un ambiente di sviluppo su macOS; per le guide relative alla produzione, consultare: Install Discourse in production with the official supported instructions

Quindi vuoi configurare Discourse su macOS per sviluppare e lavorare sul codice?

Assumiamo che non abbiate già installato Ruby/Rails/Postgres/Redis sul vostro Mac. Cominciamo :rocket: !

Installare le dipendenze di Discourse

Sul vostro sistema saranno necessari i seguenti pacchetti:

** opzionale

Riavviate il terminale

Ora che abbiamo installato le dipendenze di Discourse, procediamo con l’installazione dello stesso Discourse.

Riavviare il Terminale

Uscire dalla shell e riavviarla garantisce che i percorsi dei pacchetti installati vengano correttamente rilevati dal Terminale.

Clonare Discourse

Clonate il repository di Discourse nella cartella ~/discourse:

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

~ indica la cartella home, quindi il codice sorgente di Discourse sarà disponibile nella vostra cartella home.

Avviare Discourse

Passate alla cartella di Discourse:

cd ~/discourse

Installate le gemme necessarie

bundle install

Installate le dipendenze JS

pnpm install

Quindi eseguite questi comandi per configurare la vostra istanza locale di Discourse:

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

Avviate i server Rails ed Ember; avete due opzioni a disposizione.

Opzione 1: utilizzando due schede/finestre separate del terminale, eseguite Rails e il bundler del frontend separatamente tramite

bundle exec rails server

e

bin/dev --only ember

Opzione 2: utilizzando una sola scheda/finestra del terminale:

bin/dev # esegue Pitchfork e il bundler del frontend insieme

:tada: Dovreste ora essere in grado di accedere a http://localhost:3000 per vedere la vostra installazione locale di Discourse. (Nota: il primo caricamento può richiedere fino a un minuto mentre il server si avvia.)

Potete anche provare a eseguire gli spec:

bundle exec rake autospec

Tutti (o quasi tutti) i test dovrebbero passare.

Creare un nuovo amministratore

Per creare un nuovo amministratore, eseguite il seguente comando:

RAILS_ENV=development bundle exec rake admin:create

Seguite le indicazioni per creare un account amministratore.

Configurare la posta

Avviate MailHog:

mailhog

Congratulazioni! Ora siete gli amministratori della vostra installazione di Discourse!

Buon hacking! Per iniziare, consultate la Guida per principianti alla creazione di plugin per Discourse.


Questo documento è sottoposto a controllo di versione: suggerite modifiche su GitHub.

78 Mi Piace
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?
Migrate a NodeBB forum with Redis to Discourse
Starting discourse fails with bootstrap error
Please help, how do I install Discourse on macOS?
MacOS Installation Gem::FilePermissionError
Help me setup my Discourse development environment
Error after cleaning tmp folder
UndefinedTable: ERROR: relation "web_hook_event_types" when trying to run rspec test
Local installation internal use only
Discourse standalone
Ember-cli error on local MacOS development
Importing / migrating from Zendesk Community to Discourse
Change unicorn port from 3000 in development
Redis version error when I run bundle exec db:create
Category option: max topics per user (2 use-case examples)
Dev environment setup failed on bundle install
Set up a local Discourse Development Environment?
[Need help][MacOS M1 dev installation] ArgumentError unknown keywords
How to connect to an external database running on localhost
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
Migrate a MyBB forum to Discourse
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
Vagrant based server failing on db:migrate
Please help, how do I install Discourse on macOS?
Can't start localhost server -- file was built for x86_64 which is not the architecture being linked (i386)
Discourse Connect on Local instance is not working
Local development and deploying from same repo
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"
Disabling SSO in development environment
Install on macOS – Failure: Scheduler::Defer can pause and resume
Stuck in infinite loop in Mac terminal after source ~/.bashrc
Can't set up dev environment due to cppjieba_rb failing to install
Override profile background via SSO
Installing Discourse for macOS Development Using asdf and docker-compose
How to relax Content Security Policy
How to add a new language
How to edit the discourse files? A development box?
Can't set up dev environment due to cppjieba_rb failing to install
Install error : Protocol violation
Cannot Backup my Development Instance (Fails)
Update PhantomJS to latest for Ubuntu dev guide?
Rake aborted message is showing when installing vagrant development
[PAID] Import from Legacy Postgres DB
Nginx Performance Report plugin incompatible with development environment setup script
Discourse as Your First Rails App
Installing problem - bundle install
Migrate from GetSatisfaction to Discourse
Case study of an amateur plugin author
Upgrading Mathjax to version 4
Windows server publish method
Rails server --daemon and plugins
Moderation Tools
Can't deploy to heroku
Topic List Previews (TLP)
Global messages on 94632 timed out, restarting process, 95535 successfully terminated by `TERM` signal
How can I include discourse in my local dev stack?
Cannot get embedding to work
/admin/config/emoji non responsive/locks up
App.yml file does not exist when installing Discourse locally
I want to build a debug version of discourse

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 Mi Piace

Is it possible to reset a discourse completely?

2 Mi Piace

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 Mi Piace

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

/launcher rebuild app

returns an error.

1 Mi Piace

./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 Mi Piace

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 Mi Piace

Seguendo la guida del forum di Ruby on Rails, sono attualmente bloccato al passaggio 7.

Probabilmente è una domanda molto da “principiante”, ma come faccio a “puntare” al ramo sperimentale a cui si faceva riferimento in quell’argomento? Ho provato alcune cose e ogni volta ricevevo il messaggio Unknown command mini_racer.

1 Mi Piace

Va bene chiedere qui.

Ci sono alcune istruzioni specifiche per m1 che abbiamo scritto e a cui facciamo riferimento sul forum di Rails in questa guida.

Dovrei controllare più tardi sul mio m1 Air, e forse i miei colleghi che hanno configurato di recente nuovi Mac potrebbero sapere meglio se è ancora necessario, ma c’è un esempio di come puntare a un ramo al punto 7:

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

Quindi dovresti modificare questa riga nella tua versione locale di discourse/Gemfile:

e poi eseguire bundle install.

4 Mi Piace

È collegato proprio in cima al post originale.

L’argomento del forum di Ruby on Rails è fermo da molti mesi. L’autore originale non è attivo da febbraio e non ha risposto a nessun commento lì che chiedeva aiuto.

Qui ci sono più persone che possono aiutarmi. Solo per dirlo. :wink:

Ho provato a copiarlo nel Terminale e ho ricevuto lo stesso errore Unknown command mini_racer, di prima.

Ammetto che la guida del forum di Ruby on Rails non è chiara come speravo in quel senso.

Scusate in anticipo… :pray:

2 Mi Piace

Non è un comando da eseguire. Dovrai MODIFICARE il file di testo effettivo chiamato “Gemfile” situato all’interno della directory di Discourse.

1 Mi Piace

Doh! :facepalm:

Grazie! Provo subito.

A mio parere, qualcuno dovrebbe modificare la guida del forum di Ruby on Rails e fornire ulteriori chiarimenti riguardo al passaggio 7. Ma questa è solo la mia opinione.

Torno subito. Aspettate un attimo…

1 Mi Piace

Scusa, devo scappare, ma penso che la correzione per mini_racer sui Mac M1 sia già stata unita. Ho appena controllato il mio Gemfile sul mio Mac M1 e non è stato modificato. Quindi penso che tu possa saltare il passaggio 7.

3 Mi Piace

Ho eseguito il passaggio 8 e ho ricevuto l’errore Could not locate Gemfile.

Penso di aver risolto il passaggio 7, ma il passaggio 8 continua a darmi problemi e restituisce l’errore menzionato sopra.

Devi trovarti all’interno della directory di Discourse quando esegui bundle install.

Ciao @merefield: puoi descrivere un po’ più nel dettaglio il tuo ambiente di sviluppo remoto?

Mentre lo sviluppo di un tema mi consente di apportare modifiche a un sito live, per lo sviluppo di un plugin non vedo alternative allo sviluppo sulla mia macchina locale, con l’intero codice di Discourse presente (con il mio plugin sovrapposto).

Il risultato è che per ogni modifica (non CSS) durante la codifica di un plugin, quando lo ricarico: 1) fa partire le ventole del mio computer e 2) impiega ben 30 secondi per il ricaricamento. E se devo riavviare il server, ci vogliono diversi minuti.

Questi ritardi si accumulano davvero, al punto che potrei impiegare un’ora per realizzare qualcosa che con il mio normale flusso di lavoro (dove c’è il hot reload o al massimo 2-3 secondi per modifica) richiederebbe 15 minuti.

Quindi, apprezzerei qualsiasi suggerimento per velocizzare le cose.

1 Mi Piace

Questo, a quanto pare, sarebbe più adatto al topic di Ubuntu, dato che sto eseguendo quell’installazione su un server cloud, con nginx e un DNS completo (senza Docker) davanti, quindi sto effettivamente indirizzando il dominio. Tutto viene eseguito dal terminale. Ora ho anche Ember CLI che funziona bene in questa configurazione.

Non è nemmeno così veloce, ma abbastanza rapido. Ha il vantaggio di poter eseguire e testare servizi di callback HTTPS completi.

L’ambiente di sviluppo per plugin più veloce di gran lunga che io conosca è il Docker Dev locale su WSL2, che vola. È anche estremamente semplice da mantenere. Purtroppo, per quanto ne sappia, discourse_theme non funziona ancora in quell’ambiente, quindi sono tornato al mio server cloud per quel lavoro.

È un po’ strano il motivo per cui Apple è in ritardo qui? Gli ingegneri Microsoft si sono dimostrati molto astuti.

3 Mi Piace

Nel caso in cui qualcuno riscontri errori durante l’installazione di ruby 2.7.3, apparentemente qualcosa è cambiato dopo Xcode 12 che interrompe il processo di installazione con rbenv:

Ho continuato a ricevere questo messaggio, anche se ho le ultime versioni di psych e libyaml installate:

Sembra che alla tua installazione di ruby manchi psych (per l'output YAML).
Per eliminare questo avviso, installa libyaml e reinstalla il tuo ruby.

Ho provato la soluzione alternativa che suggeriscono nella guida, ma ho continuato a ricevere lo stesso errore e alla fine ho dovuto usare rvm:

rvm install 2.7.3
1 Mi Piace

Per quanto riguarda la programmazione più veloce quando si sviluppa un plugin, ho recentemente cambiato il mio approccio. E sta funzionando alla grande. In sostanza, sposta tutte le cose di front-end in un componente del tema e codifica solo le cose di back-end nel plugin stesso. So che altri l’hanno già capito. Ma ora che lo sto facendo, la programmazione è molto più veloce e piacevole. Dettagli qui.

3 Mi Piace