Este é um guia de instalação e configuração do ambiente de desenvolvimento. \
Abra o terminal e execute o código abaixo:
sudo apt upgrade
cd && mkdir workspace && cd workspace
- Google Chrome - https://www.google.com.br/chrome/browser/desktop/index.html
- Visual Studio Code - https://code.visualstudio.com
# 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
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.
# 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
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
Instruções de: https://github.com/postmodern/chruby#install e https://github.com/postmodern/chruby#auto-switching
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
Instruções de: https://github.com/postmodern/ruby-install#install
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
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
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.
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:
-
Algum dos serviços não foi iniciado (ex.: redis, postgres);
-
Rota para o recurso ainda não foi registrada (execute: "bundle exec rake rex");
-
Problemas entre o assento e o teclado (observe o output do 'rails s' ou coloque pontos de log no código).