Este repositório contém as configurações para executar um ambiente de desenvolvimento da plataforma BONDE, utilizando Docker Compose e Git Submodules.
A plataforma utiliza compartilhamento de sessão por Cookie e isso requer uma estrutura funcional no mesmo domínio e protocolo, por isso nossos serviços serão executados como .bonde.devel e protocolo https.
├── apis/ (submódulo)
├── clients/ (submódulo)
├── data/ (volume não versionado)
├── public/ (submódulo)
├── router/ (submódulo)
├── .env.example (exemplo de configuração do Docker Compose)
├── caddy.json (exemplo de configuração do Caddy)
└── docker-compose.yml
git clone --recurse-submodules git@github.com:nossas/bonde.git
cd bondeSe já clonou o repositório sem os submódulos, execute:
git submodule update --init --recursiveCrie um arquivo .env na raiz do projeto com as configurações necessárias para os serviços. Utilize o .env.example como base.
Adicione as seguintes entradas ao seu /etc/hosts para permitir o roteamento local:
127.0.0.1 api-rest.bonde.devel
127.0.0.1 api-graphql.bonde.devel
127.0.0.1 n8n.bonde.devel
127.0.0.1 smtp.bonde.devel
127.0.0.1 accounts.bonde.devel
127.0.0.1 app.bonde.devel
127.0.0.1 admin-canary.bonde.devel
mkdir -p ./data/caddy_etc
cp caddy.json ./data/caddy_etc/caddy.jsonSe necessário, autentique-se no GitHub Container Registry para baixar a imagem privada ghcr.io/nossas/bonde-server:
echo "<SEU_GITHUB_TOKEN>" | docker login ghcr.io -u <SEU_USUARIO> --password-stdinPara gerar seu <SEU_GITHUB_TOKEN> leia essa documentação
docker compose up -dIsso iniciará os seguintes serviços:
- Caddy para gerenciar o proxy reverso e HTTPS local.
- Redis para cache e filas.
- APIs REST e GraphQL da plataforma BONDE.
- Módulos de autenticação, ativismo, domínios, pagamentos, etc.
- N8N para automação de fluxos.
- Public versão de renderização das campanhas do BONDE.
A estrutura usa o Caddy como proxy reverso, que gerencia automaticamente os certificados HTTPS para os domínios locais. Para executar os certificados locais rode o comando abaixo (para Mac):
docker compose cp \
caddy:/data/caddy/pki/authorities/local/root.crt \
/tmp/root.crt \
&& sudo security add-trusted-cert -d -r trustRoot \
-k /Library/Keychains/System.keychain /tmp/root.crtSaiba mais sobre executar HTTPS local na documentação do Caddy.
Alguns submódulos (clients/) rodam diretamente no host e utilizam o host.docker.internal para comunicação com os serviços em Docker. Configure-o seguindo a documentação do repositório.
Para visualizar logs dos serviços:
docker compose logs -f --tail=50Para acessar um serviço específico (exemplo: api-rest):
docker exec -it bonde_api-rest sh