(datato) Guida alla configurazione dell'ambiente di sviluppo Discourse - GitHub Codespace


Sviluppo tramite GitHub Codespaces

GitHub Codespace è un’ottima opzione di sviluppo. È fantastico perché è ospitato nel cloud, posso garantire facilmente che tutti coloro che sviluppano qui abbiano lo stesso ambiente, niente più installazioni docker locali, facile accesso per rendere la mia istanza di sviluppo locale disponibile pubblicamente e anche solo usare nuove tecnologie è divertente.

Attualmente sto riapprendendo lo sviluppo e ho deciso di imparare GitHub Codespaces oltre ad alcuni sviluppi di Discourse, quindi ho creato questa guida per chiunque altro desideri sviluppare su Discourse in GitHub Codespace anziché configurare un ambiente locale.

Ho deciso di scrivere questa guida dopo aver riscontrato una serie di problemi nel far funzionare questo con GitHub Codespace:

Questa guida non darà nulla per scontato, in modo da non perdere nemmeno un passaggio per essere operativi. Sospetto che alcuni di questi passaggi possano essere migliorati a livello di repository core per la configurazione di GitHub Codespace, o almeno a causa della mia mancanza di comprensione. Non esitare a segnalarli.

Fork del repository Discourse

  1. Naviga su https://github.com/discourse/discourse

  2. Fai clic sul pulsante Fork in alto a destra della pagina e fai clic sul pulsante verde Create fork nella pagina successiva.

  3. Dopo un breve momento, verrai portato al tuo nuovo fork del repository discourse/discourse:

Configura il tuo GitHub Codespace

  1. Fai clic sul pulsante verde <> Code

  2. Passa alla scheda Codespaces e fai clic sul pulsante verde Create codoespace on main.

  3. Verrai portato a una nuova finestra in cui GitHub inizierà a creare il tuo codespace. Dovrebbe richiedere 1-3 minuti:
    chrome_LYoRTOWojo

  4. Dopo qualche minuto, ti verrà presentato il tuo GitHub Codespace (che è solo VS Code nel tuo browser):

Configura il tuo ambiente Codespace

Ci sono alcune configurazioni da apportare al tuo ambiente codespace prima di essere operativi.

  1. Crea una nuova shell bash facendo clic su Ctrl + Shift + backtick su Windows/Linux, o Cmd + Shift + backtick su Mac. La tua shell dovrebbe trovarti nella directory /var/www/discourse.

  2. Naviga nella directory discourse:

cd workspace/discourse

  1. Installa tutto dal Gemfile del progetto
bundle install --gemfile ./Gemfile

Il comando è piuttosto lungo, ma vedrai qualcosa di simile:

  1. Aggiungi un nuovo config.hosts a development.rb
    1. Dalla directory in cui ti trovi attualmente (/var/www/discourse/workspace/discourse) apri il file config/environments/development.rb.
    2. Trova la riga config.hosts << /\A(([a-z0-9-]+)\.)*localhost(\:\d+)?\Z/ e crea una nuova riga sotto di essa con quanto segue, quindi salva il file:
config.hosts << /^(.*)\.app\.github\.dev$/

La parte finale del tuo file dovrebbe assomigliare a questa (nota la riga 102 nel mio screenshot):

  1. Torna nella tua console, esegui bundle exec rake admin:create per creare il tuo primo account admin. Il comando ti chiederà di scegliere un’email e una password (la password deve essere di almeno 10 caratteri)

Avvia i tuoi motori server

Ci vorranno 1-2 minuti per compilare e avviare il server. A questo punto, dovresti avere tutto il necessario per eseguire e accedere alla tua applicazione.

  1. Nella stessa console in cui ti trovi, esegui il seguente comando per avviare il tuo server:
bin/ember-cli -u

  1. Passa dalla scheda Terminal alla scheda PORTS nella tua console:

  2. Fai clic su Forwarded Address per la porta 4200 usando Ctrl + click per Windows/Linux, o Cmd + click per Mac e sarai accolto dal tuo ambiente di sviluppo!

Spero che questo aiuti qualcun altro a iniziare con GitHub Codespaces! :tada:

11 Mi Piace

Ottima, è una buona opzione quando si viaggia leggeri

2 Mi Piace

O nel mio caso, non voglio davvero sviluppare su Windows e Docker, ma non voglio nemmeno passare a un ambiente Unix a casa (anche se ne uso uno al lavoro).

Mi piace l’idea che tutto sia lì, nel mio repository GitHub.

3 Mi Piace

Penso che questa guida necessiti di alcuni aggiornamenti. Non funziona quando si esegue il passaggio 5, poiché i database non sono ancora stati creati.

1 Mi Piace

Sono riuscito a farlo funzionare eseguendo

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

Poi

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

Seguito da

bin/ember-cli -u

Poi in un terminale diviso

bin/rails admin:create
1 Mi Piace

@jordan-violet Presumo che questa sia un’installazione non supportata (unsupported-install)? Non riesco a trovare il mio app.yml, quindi non posso installare plugin.

Per installare un plugin puoi seguire i passaggi in Install plugins in your non-Docker development environment

3 Mi Piace

Crei un collegamento simbolico dalla cartella dei plugin alla cartella del codice del tuo plugin

2 Mi Piace

@jordan-violet grazie per aver creato questa guida con tutte le soluzioni alternative che erano precedentemente necessarie :pray:

Sono lieto di dire che abbiamo unito una serie di modifiche alla nostra configurazione devcontainer/codespaces, il che dovrebbe rendere molto più facile iniziare senza dover creare un fork o configurare manualmente nulla.

Ecco la guida ufficiale:

Aggiungerò una nota in cima all’OP qui, indirizzando le persone alle guide ufficiali :writing_hand:

6 Mi Piace