Variaveis de Ambiente
As variaveis ficam no servidor em /opt/, separadas por servico. Nao sao versionadas nem passadas via GitHub Secrets.
marie_ai_backend
Arquivo: /opt/marie_ai_backend/.env
Servidor
| Variavel | Descricao | Exemplo |
|---|---|---|
PORT |
Porta do Express | 3001 |
NODE_ENV |
Ambiente | production |
LOG_LEVEL |
Nivel de log | info |
Google Gemini (IA)
| Variavel | Descricao |
|---|---|
GOOGLE_API_KEY |
API key do Google AI Studio |
GEMINI_MODEL |
Modelo padrao (ex: gemini-3-flash-preview) |
MongoDB
| Variavel | Descricao |
|---|---|
MONGODB_URI |
Connection string SRV |
MONGODB_DB_NAME |
Nome do banco |
RabbitMQ
| Variavel | Descricao |
|---|---|
RABBITMQ_URI |
Connection string AMQP (usa hostname rabbitmq da network) |
RABBITMQ_PREFETCH |
Prefetch count do consumer |
Agent
| Variavel | Descricao |
|---|---|
AGENT_MAX_ITERATIONS |
Max iteracoes do ReAct agent |
AGENT_SYSTEM_PROMPT |
System prompt padrao (fallback) |
GOWA (WhatsApp API)
| Variavel | Descricao |
|---|---|
GOWA_API_URL |
URL da API Go-Whatsmeow |
GOWA_BASIC_AUTH |
Basic auth (user:pass) |
GOWA_DEVICE_JID |
JID do dispositivo WhatsApp |
RD Station
| Variavel | Descricao |
|---|---|
RD_CRM_TOKEN |
Token da API CRM v1 |
RD_MKT_CLIENT_ID |
OAuth2 client ID (Marketing) |
RD_MKT_CLIENT_SECRET |
OAuth2 client secret |
RD_MKT_REFRESH_TOKEN |
OAuth2 refresh token (inicial — auto-renovado via MongoDB) |
Google Cloud Storage (RAG) e Google Calendar
A forma recomendada e usar o arquivo JSON da service account diretamente:
| Variavel | Descricao |
|---|---|
GCS_CREDENTIALS_FILE |
Caminho para o JSON da service account (recomendado) |
GCS_BUCKET |
Nome do bucket |
GCS_PROJECT_ID |
ID do projeto GCP |
O arquivo JSON deve ser montado no container via bind mount. Exemplo:
docker service update \
--mount-add type=bind,source=/opt/marie_ai_backend/gcs-credentials.json,target=/opt/marie_ai_backend/gcs-credentials.json,readonly \
--env-add GCS_CREDENTIALS_FILE=/opt/marie_ai_backend/gcs-credentials.json \
marie_ai_backend
Nao use variaveis individuais de private key
O docker service --env-file nao remove aspas e pode corromper chaves privadas com \n. Prefira sempre GCS_CREDENTIALS_FILE com o JSON original.
Fallback (variaveis individuais): Se GCS_CREDENTIALS_FILE nao estiver definido, o sistema monta as credenciais a partir de variaveis individuais: GCS_PRIVATE_KEY_ID, GCS_PRIVATE_KEY, GCS_CLIENT_EMAIL, GCS_CLIENT_ID, GCS_CLIENT_CERT_URL. As mesmas credenciais sao usadas pelo Google Calendar (ou variaveis GCAL_* especificas se necessario).
RD Station OAuth2
O refresh token e renovado automaticamente e salvo no MongoDB (collection rd_tokens). O valor no .env e usado apenas na primeira execucao.
webhook_whatsapp
Arquivo: /opt/webhook_whatsapp/.env
| Variavel | Descricao | Exemplo |
|---|---|---|
PORT |
Porta do servidor | 3000 |
NODE_ENV |
Ambiente | production |
RABBITMQ_URL |
Connection string AMQP | amqp://user:pass@rabbitmq:5672 |
QUEUE_NAME |
Nome da fila | events |
marie_ai_frontend
Arquivo: /opt/marie_ai_frontend/.env
| Variavel | Descricao | Exemplo |
|---|---|---|
NEXT_PUBLIC_API_URL |
URL da API backend | https://marie.exemple.com |
Build-time
NEXT_PUBLIC_* sao injetadas em build time via Docker build-arg, nao em runtime. Alteracoes nessa variavel requerem novo build.