Repositório que mantém o stack WordPress do projeto Defesa Climática Popular. Aqui vivem o tema dcp, o plugin de integração com serviços externos e a infraestrutura Docker usada por designers, desenvolvedores e equipe de dados. O objetivo desta base é sustentar o mapa colaborativo de riscos, o painel interno para agentes comunitários e as APIs consumidas por aplicações parceiras.
wp-root/: núcleo WordPress versionado para garantir reprodutibilidade do ambiente.themes/dcp/: tema principal, com assets emassets/, builds emdist/e lógica modular emlibrary/(dashboard, auth, integrações e importações).plugins/dcp-plugin/: plugin proprietário que expõe a API REST (/wp-json/dcp/v1/*), webhooks e rotinas de sincronização com Pods.plugins/hacklab-dev-utils: submódulo com utilidades de desenvolvimento (WP-CLI, PsySH etc.).compose/: imagens, entrypoints e configs extras de PHP, MariaDB e watcher de assets.dev-scripts/: atalhos para rotina local (./wp,./mysql,./dev.sh,./dump, entre outros).style.css: link simbólico que aponta parathemes/dcp/style.css, exigência do fluxo com o plugin git-updater.
- Git e acesso ao repositório.
- Docker e Docker Compose 2.x.
- Node 18+ e npm para builds locais do tema.
- Acesso ao repositório do submódulo
hacklab-dev-utils. - (Opcional) Chave
GOOGLE_MAPS_API_KEYpara habilitar geocoding via Google em vez do Nominatim.
git clone <ssh-do-repositorio> dcp
cd dcp
git submodule update --init --recursive
docker-compose up --buildO serviço watcher instala dependências do tema e roda npm run watch automaticamente. Caso prefira rodar localmente, entre em themes/dcp/ e execute npm install && npm run watch.
Importe um dump para compose/local/mariadb/data/ e reinicie os containers (docker-compose down -v && docker-compose up) quando precisar carregar dados reais.
- Trabalhe em branches a partir de
develop;mainacompanha o ambiente de produção. - Use
./dev-scripts/wppara comandos WP-CLI no container e./dev-scripts/mysqlpara acessar o banco com o usuáriowordpress. - Para depuração com PsySH, execute
./dev-scripts/dev.she injeteeval(\psy\sh());no ponto desejado. - Gere builds de produção com
npm run productionantes de publicar mudanças que afetem front-end ou APIs.
library/dashboard*.php: rotas e widgets do painel (/dashboard/inicio,/dashboard/riscos,/dashboard/indicadores), criação da roleagente-dcpe filtros de permissão.template-parts/: componentes PHP utilizados nas páginas públicas e no dashboard.assets/js,assets/scss: código fonte compilado pelo Laravel Mix definido emwebpack.mix.js.
O plugin dcp-plugin entrega endpoints públicos para uso em apps e integrações:
GET /wp-json/dcp/v1/riscos: lista riscos com paginação, anexos e metadados.GET /wp-json/dcp/v1/riscos-resumo: resumo das ocorrências nas últimas 24h.POST /wp-json/dcp/v1/webhook/situacao-atual: webhook para atualizar temperatura, estágio e clima.GET /wp-json/dcp/v1/situacao-atual-home: conteúdo dinâmico da home. Outros endpoints tratam de tarefas de ETL, dashboards e sincronização com Pods. Consulte o arquivoplugins/dcp-plugin/dcp-plugin.phppara detalhes de parâmetros e cargas.
O arquivo docker-compose.deploy.yml referencia a imagem nossas/dcp-wp e espera os serviços na rede externa web (compatível com Traefik). Ajuste as variáveis WORDPRESS_DB_*, GOOGLE_MAPS_API_KEY e a tag da imagem conforme o ambiente.
Este projeto se originou do boilerplate Hacklab. Para herdar melhorias, mantenha um remote apontando para o repositório base e sincronize quando necessário:
git remote add temaBase git@git.hacklab.com.br:open-source/base-wordpress-project.git
git pull temaBase developRevise os commits antes de aplicar para garantir que não revertam personalizações do DCP.
Em caso de dúvidas sobre infraestrutura ou integrações, abra uma issue no repositório ou contate a equipe Hacklab em contato@hacklab.com.br. Para novos recursos no mapa ou no dashboard, descreva o fluxo esperado, dependências externas e anexos relevantes ao abrir a issue ou pull request.