Estrutura:
leitor-medidores/
├── backend/ → API Node (OCR digital + fatura + WhatsApp)
│ └── analog-api/ → Serviço Python separado (leitura de ponteiros)
├── frontend/ → Dashboard (index.html) — deploy no Cloudflare Pages
└── docs/README.md → Detalhes técnicos e limites reais de cada módulo
No seu computador, dentro da pasta leitor-medidores:
git init
git add .
git commit -m "Motor de leitura de medidores: OCR, fatura e WhatsApp"
Crie o repositório vazio em https://github.com/new (sem README, sem .gitignore — já temos os nossos), depois:
git remote add origin https://github.com/SEU-USUARIO/leitor-medidores.git
git branch -M main
git push -u origin main
backendProcfile e o package.json automaticamenteJWT_SECRET — uma string aleatória forteWHATSAPP_PHONE_ID — Phone Number ID da MetaWHATSAPP_TOKEN — token de acesso da Metahttps://leitor-backend.up.railway.app(Render.com funciona de forma equivalente, se preferir.)
Mesmo processo, mas com Root Directory = backend/analog-api. Railway detecta o requirements.txt e o Procfile (gunicorn app:app) sozinho.
Esse sim fica perfeito no Cloudflare, porque é 100% estático:
frontendecho "sem build"/leitor-medidores.pages.devDepois, abra frontend/index.html e troque a linha:
const API_URL = 'https://SEU-BACKEND-NODE.exemplo.com';
pela URL real do Railway do passo 2, e descomente o bloco de fetch real (está marcado no arquivo).
Qualquer novo git push para main já dispara build e deploy automático nos três serviços — não precisa repetir os passos acima.