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 bonde
Se já clonou o repositório sem os submódulos, execute:
git submodule update --init --recursive
Crie 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.json
Se 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-stdin
Para gerar seu <SEU_GITHUB_TOKEN>
leia essa documentação
docker compose up -d
Isso 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.crt
Saiba 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=50
Para acessar um serviço específico (exemplo: api-rest
):
docker exec -it bonde_api-rest sh