Setup do ambiente local
TLDR:
make setupconfigura o ambiente; os scripts emrun/sobem servidor, testes, lint e migrations.
Pré-requisitos
- Ruby na versão de
.ruby-version - PostgreSQL
COMMONS_DIRexportado no shell — vem do setup de máquina da WeHive. Se omakereclamar, recarregue o shell comexec zsh. Em máquina nova, rode o setup da WeHive primeiro.
macOS com Postgres.app
Se você usa o Postgres.app, a gem pg precisa ser compilada apontando para o pg_config da versão instalada:
bash
brew install libpq
gem install pg -- --with-pg-config="/Applications/Postgres.app/Contents/Versions/15/bin/pg_config"
Ajuste o número da versão para a que você tem instalada.
Passos
1. Configurar o ambiente
bash
make setup
Reconfigura .commons, .claude e .env. Rode de novo sempre que precisar reconciliar o ambiente.
2. Preparar o banco
bash
bundle install
rake db:create
rake db:migrate
Ou, usando os scripts do projeto:
bash
run/migrate
run/seed
3. Subir a aplicação
bash
run/server.dev
O script instala as gems sem o grupo production e sobe via overmind com o Procfile.dev. Se não houver Procfile.dev, cai para ./bin/rails server.
Para o worker de jobs:
bash
run/worker
Scripts disponíveis
| Script | O que faz |
|---|---|
run/server |
Sobe o servidor |
run/server.dev |
Sobe o servidor em modo de desenvolvimento, com overmind |
run/worker |
Sobe o worker de jobs |
run/test |
Roda a suíte de testes |
run/lint |
Roda o lint |
run/migrate |
Roda as migrations |
run/seed |
Roda os seeds |
run/compile |
Compila os assets |
run/audit |
Roda a auditoria de dependências |
Alvos de make
| Alvo | O que faz |
|---|---|
make setup |
Reconfigura o ambiente |
make up / make down |
Sobe e derruba os containers |
make shell |
Abre um shell no container |
make logs |
Mostra os logs |
make run.test |
Roda os testes no ambiente conteinerizado |
Puxar dados de produção
O comando exclui os dados da tabela webhooks, que é grande demais:
bash
heroku pg:pull DATABASE_URL ibft_api_development \
--app protected-ravine-77042 \
--exclude-table-data webhooks
Dados mínimos
O sistema precisa de pelo menos uma organização viva, com ID 1:
ruby
Organization.create(name: 'IBFT', gateway: :asaas, gateway_token: '123456')
A criação de usuários admin está em operations.md.
Troubleshooting
| Sintoma | Causa provável | O que fazer |
|---|---|---|
COMMONS_DIR is not set |
O shell não carregou o ambiente da WeHive | exec zsh — ou rodar o setup da WeHive, se a máquina for nova |
Falha ao instalar a gem pg |
pg_config não encontrado |
Instalar libpq e passar --with-pg-config, como acima |
| Nenhum checkout funciona | Não existe a organização de ID 1 | Criar a organização mínima, acima |