Skip to content

Instantly share code, notes, and snippets.

@barroso
Last active March 19, 2021 23:42
Show Gist options
  • Save barroso/df5a0283bc691ddbea65a2cd1f31a829 to your computer and use it in GitHub Desktop.
Save barroso/df5a0283bc691ddbea65a2cd1f31a829 to your computer and use it in GitHub Desktop.

Guia de configuração do ambiente

Este é um guia de instalação e configuração do ambiente de desenvolvimento. \

Ubuntu

Abra o terminal e execute o código abaixo:

sudo apt upgrade

Criação do Workspace

cd && mkdir workspace && cd workspace

Downloads

Instalação das dependências

Ubuntu

# dependências genéricas
sudo apt install build-essential
sudo apt install openssl
sudo apt install libssl-dev
sudo apt install libreadline8
sudo apt install libreadline-dev
sudo apt install zlib1g
sudo apt install zlib1g-dev
sudo apt install curl

# dependências nokogiri
sudo apt install libxml2-dev
sudo apt install libxslt-dev
sudo apt install pkg-config

GIT

Instalação

Ubuntu

sudo add-apt-repository ppa:git-core/ppa sudo apt update sudo apt install git


### Configurações globais do git

```bash
git config --global core.editor "vim"
git config --global user.email "seu email"
git config --global user.name "Seu Nome"

Gerar chave SSH e adicionar ao GitHub

ssh-keygen
cat ~/.ssh/id_rsa.pub

Copie o conteúdo do arquivo "~/.ssh/id_rsa.pub". Em seguida, abra os Settings da sua conta no github.com, clique na opção "SSH and GPG keys", clique em "New SSH key", e cole o conteúdo.

Node

# Instale o NVM
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Feche o terminal e abra novamente

# Instale o Node
# obs.: no WSL pode dar problema com Python, apesar de estar instalado. instale novamente "sudo apt-get install python"
nvm install 14.15.4

# instale o yarn
  # ubuntu do windows (wsl)
  sudo apt remove gpg
  sudo apt install gnupg1

  # linux
  curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
  echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
  sudo apt update
  sudo apt install --no-install-recommends yarn=1.22.5-1
  sudo apt-mark hold yarn # evitar atualização automática

Postgres

Ubuntu

sudo sh -c 'echo "deb [arch=amd64] http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
sudo apt-get update
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ??? # Substituir as '?'s pela key exibida após a execução do comando anterior.
sudo apt-get upgrade
sudo apt-get update
sudo apt install postgresql-10

# solução para instalar a gem pg mais na frente, no passo do bundle
sudo apt-get install libpq-dev

# Inicia o server postgresql
sudo service postgresql start

# Criar ROLE para o usuário atual
sudo -u postgres createuser -s $USER

# Definir senha do usuário postgres (sugestao de senha: "\q")
sudo -u postgres psql postgres
\password postgres
(digite a senha)
(confirme)
\q

sudo sh -c 'echo "local   all             all                                      peer" >> /etc/postgresql/10/main/pg_hba.conf'
sudo service postgresql restart

chruby

Instruções de: https://github.com/postmodern/chruby#install e https://github.com/postmodern/chruby#auto-switching

Ubuntu

wget -O chruby-0.3.9.tar.gz https://github.com/postmodern/chruby/archive/v0.3.9.tar.gz
tar -xzvf chruby-0.3.9.tar.gz
cd chruby-0.3.9/
sudo apt install make # <=== foi necessario no wsl
sudo make install
echo 'source /usr/local/share/chruby/chruby.sh' >> ~/.bashrc
echo 'source /usr/local/share/chruby/auto.sh' >> ~/.bashrc

ruby-install

Instruções de: https://github.com/postmodern/ruby-install#install

Ubuntu

wget -O ruby-install-0.8.1.tar.gz https://github.com/postmodern/ruby-install/archive/v0.8.1.tar.gz
tar -xzvf ruby-install-0.8.1.tar.gz
cd ruby-install-0.8.1/
sudo make install

Feche o terminal e abra novamente

Instalar ruby

Ubuntu

ruby-install --jobs=4 -c ruby 2.7.2

Feche o terminal e abra novamente

# desabilitar instalação da documentação das gems
echo 'gem: --no-document' >> ~/.gemrc

chruby ruby
gem update --system 3.2.8
gem install bundler:2.2.8

Parabéns

Não foi fácil mas você chegou até o final.

Pegue um café 0800, coloque para tocar sua playlist e conecte-se ao ambiente! Boa Sorte.

Outras documentações

Entenda a Arquitetura

Problemas comuns

CORS

CORS é uma restrição de segurança imposta pelos navegadores pra inibir ataques que usam múltiplas fontes de dados [https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Controle_Acesso_CORS]

Em tempo de desenvolvimento, a parte client usa duas fontes de dados, nas portas 8080 e 3000. Para que isso não cause CORS, há uma acordo entre as camadas de API e Webpack.

Porém, existe uma falha ainda não solucionada, verificada com WSL, que faz com que erros internos da API sejam apresentadas ao usuário do navegador como CORS, dificuldando o diagnóstico e rastreio do bug.

Causas possíveis:

  1. Algum dos serviços não foi iniciado (ex.: redis, postgres);

  2. Rota para o recurso ainda não foi registrada (execute: "bundle exec rake rex");

  3. Problemas entre o assento e o teclado (observe o output do 'rails s' ou coloque pontos de log no código).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment