Repositório backend-only com Flask como servidor principal, além de estrutura base para LangGraph, Telegram, PostgreSQL e Redis.
Pré-requisitos:
- Google Cloud SDK (
gcloud) autenticado. - Projeto e billing ativos.
Build da imagem com Cloud Build:
gcloud builds submit --tag gcr.io/SEU_PROJECT_ID/obralog-backendDeploy no Cloud Run:
gcloud run deploy obralog-backend \
--image gcr.io/SEU_PROJECT_ID/obralog-backend \
--platform managed \
--region southamerica-east1 \
--allow-unauthenticated \
--set-env-vars TELEGRAM_POLLING_IN_DEV=falseVariáveis recomendadas no serviço:
GOOGLE_API_KEYTELEGRAM_TOKENTELEGRAM_WEBHOOK_SECRET_TOKENDATABASE_URLCORS_ORIGINSAUTH_SECRET_KEY
Observações:
- O
Dockerfileinicia comgunicornembackend.main:appna portaPORTdo Cloud Run. - Em Cloud Run, use webhook do Telegram. Não use polling.
O webhook do Telegram está em POST /telegram/webhook. Ele recebe updates do bot, usa thread_id por chat para manter o contexto e responde via API do Telegram.
Variáveis mínimas:
GOOGLE_API_KEYpara o modelo Gemini.TELEGRAM_TOKENpara enviar mensagens de volta ao chat.TELEGRAM_WEBHOOK_SECRET_TOKENpara validar chamadas do webhook do Telegram.DATABASE_URLpara o checkpointer do LangGraph.
Depois de subir o backend em uma URL pública HTTPS, aponte o webhook do bot para /telegram/webhook.