(desatualizado) Guia para configurar o ambiente de desenvolvimento do Discourse - GitHub Codespace


Desenvolvendo Usando GitHub Codespaces

GitHub Codespace é uma ótima opção de desenvolvimento. É ótimo porque é hospedado na nuvem, posso garantir facilmente que todos que desenvolvem aqui tenham o mesmo ambiente, sem lidar com instalações locais do docker, acesso fácil para tornar minha instância de desenvolvimento local publicamente disponível e também é divertido usar novas tecnologias.

Atualmente estou reaprendendo desenvolvimento e decidi aprender GitHub Codespaces além de aprender um pouco sobre desenvolvimento Discourse, então criei este guia para qualquer outra pessoa que queira desenvolver no Discourse no GitHub Codespace em vez de configurar um ambiente local.

Decidi escrever este guia depois de passar por uma série de problemas para fazer isso funcionar com o GitHub Codespace:

Este guia não assumirá nada, para que não percamos nenhum passo para colocá-lo em funcionamento. Suspeito que parte deste processo pode ser melhorada no nível do repositório principal para a configuração do GitHub Codespace, ou pelo menos devido à minha falta de compreensão. Não hesite em apontar isso.

Fork do repositório Discourse

  1. Navegue até https://github.com/discourse/discourse

  2. Clique no botão Fork no canto superior direito da página e clique no botão verde Create fork na página seguinte.

  3. Após um breve momento, você será levado ao seu novo fork do repositório discourse/discourse:

Configurar seu GitHub Codespace

  1. Clique no botão verde \u003c\u003e Code

  2. Mude para a aba Codespaces e clique no botão verde Create codoespace on main.

  3. Você será levado a uma nova janela onde o GitHub começará a criar seu codespace. Isso deve levar de 1 a 3 minutos:
    chrome_LYoRTOWojo

  4. Após alguns minutos, você verá seu GitHub Codespace (que é apenas o VS Code no seu navegador):

Configurar seu Ambiente Codespace

Existem algumas configurações a serem feitas no seu ambiente codespace antes de você estar pronto para começar.

  1. Crie um novo shell bash clicando em Ctrl + Shift + backtick no Windows/Linux, ou Cmd + Shift + backtick no Mac. Seu shell deve começar no diretório /var/www/discourse.

  2. Navegue até o diretório discourse:

cd workspace/discourse

  1. Instale tudo do Gemfile do projeto
bundle install --gemfile ./Gemfile

O comando é bastante longo, mas você verá algo como isto:

  1. Adicione um novo config.hosts ao development.rb
    1. Do diretório em que você está atualmente (/var/www/discourse/workspace/discourse) abra o arquivo config/environments/development.rb.
    2. Encontre a linha config.hosts \u003c\u003c /\\A(([a-z0-9-]+)\\.)*localhost(\\:\\d+)?\\Z/ e crie uma nova linha abaixo dela com o seguinte, depois salve o arquivo:
config.hosts \u003c\u003c /^(.*)\\.app\\.github\\.dev$/

O final do seu arquivo deve se parecer com isto (observe a linha 102 na minha captura de tela):

  1. De volta ao seu terminal, execute bundle exec rake admin:create para criar sua primeira conta de administrador. O comando pedirá para você escolher um e-mail e uma senha (a senha deve ter pelo menos 10 caracteres)

Inicie seus Motores Servidor

Levará de 1 a 2 minutos para construir e iniciar o servidor. Neste ponto, você já deve ter tudo o que precisa para executar e acessar seu aplicativo.

  1. No mesmo terminal em que você está, execute o seguinte comando para iniciar seu servidor:
bin/ember-cli -u

  1. Mude da aba Terminal para a aba PORTS no seu console:

  2. Clique no Forwarded Address para a porta 4200 usando Ctrl + clique para Windows/Linux, ou Cmd + clique para Mac e você será recebido com seu ambiente de desenvolvimento!

Espero que isso ajude alguém a começar com o GitHub Codespaces! :tada:

11 curtidas

Ótimo, é uma boa opção quando se viaja com pouca bagagem

2 curtidas

Ou, no meu caso, eu realmente não quero desenvolver no Windows e Docker, mas também não quero mudar para um ambiente Unix em casa (embora eu use um no trabalho).

Eu simplesmente gosto da ideia de que tudo está ali no meu repositório GitHub.

3 curtidas

Acho que este guia precisa de algumas atualizações. Ele não funciona ao executar a etapa 5, pois os bancos de dados ainda não foram criados.

1 curtida

Consegui fazer funcionar executando

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

Em seguida

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

Seguido por

bin/ember-cli -u

Então, em um terminal dividido

bin/rails admin:create
1 curtida

@jordan-violet Presumo que esta seja uma #instalação-não-suportada? Não consigo encontrar meu app.yml, então não consigo instalar plugins.

Para instalar um plugin, você pode seguir as etapas em Install plugins in your non-Docker development environment

3 curtidas

Você cria um link simbólico da sua pasta de plugins para a pasta do código do seu plugin.

2 curtidas

@jordan-violet obrigado por criar este guia com todas as soluções alternativas que eram necessárias anteriormente :pray:

Tenho o prazer de dizer que agora mesclamos várias alterações em nossa configuração devcontainer/codespaces, o que deve facilitar muito as coisas sem a necessidade de fazer fork ou configurar manualmente qualquer coisa.

Aqui está o guia oficial:

Vou adicionar uma nota no topo do OP aqui, direcionando as pessoas para os guias oficiais :writing_hand:

6 curtidas