Setup do ambiente local

TLDR: make setup configura o ambiente; os scripts em run/ sobem servidor, testes, lint e migrations.

Pré-requisitos

  • Ruby na versão de .ruby-version
  • PostgreSQL
  • COMMONS_DIR exportado no shell — vem do setup de máquina da WeHive. Se o make reclamar, recarregue o shell com exec 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