- Updated Dockerfile to include hardcoded environment variables for Next.js build. - Enhanced Google Calendar API integration by extracting user email from id_token and adding scopes for OpenID and email access. - Modified credential management to delete existing credentials before creating new ones in n8n. - Updated dashboard to display connected Google Calendar email and credential details. Story: 4.2 - Melhorar integração com Google Calendar e atualizar Dockerfile 🤖 Generated with [Claude Code](https://claude.com/claude-code)
86 lines
4.0 KiB
Docker
86 lines
4.0 KiB
Docker
# ========================================
|
|
# Stage 1: Builder - Instalar deps e build
|
|
# ========================================
|
|
FROM node:20-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# Copiar package files
|
|
COPY package.json package-lock.json ./
|
|
|
|
# Instalar dependências (incluindo devDependencies para build)
|
|
RUN npm ci
|
|
|
|
# Copiar código fonte
|
|
COPY . .
|
|
|
|
# Variáveis de ambiente hardcoded para build do Next.js
|
|
# Frontend - Variáveis Públicas
|
|
ENV NEXT_PUBLIC_SITE_URL=https://portal.automatizase.com.br
|
|
ENV NEXT_PUBLIC_SUPABASE_URL=https://supabase.automatizase.com.br
|
|
ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzU5NTI0OTkwLCJleHAiOjIwNzQ4ODQ5OTB9.vAXVcWzQESACqlP6UCw2_8EwQRFTRZFfLW47xRrd23o
|
|
ENV NEXT_PUBLIC_GOOGLE_CLIENT_ID=174466774807-tdsht53agf7v40suk5mmqgmfrn4iskck.apps.googleusercontent.com
|
|
|
|
# Backend - Variáveis Privadas
|
|
ENV SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaXNzIjoic3VwYWJhc2UiLCJpYXQiOjE3NTk1MjQ5OTAsImV4cCI6MjA3NDg4NDk5MH0.rkZfAs65vTceDDxWBdencfBtMH22l5ix_XPqltCk5j4
|
|
ENV GOOGLE_CLIENT_SECRET=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
|
|
|
|
# EvolutionAPI Configuration
|
|
ENV EVOLUTION_API_URL=https://evolutionapi.automatizase.com.br
|
|
ENV EVOLUTION_API_KEY=03919932dcb10fee6f28b1f1013b304c
|
|
ENV EVOLUTION_INSTANCE_NAMES="Rita,Lucia Refugio"
|
|
|
|
# n8n Configuration
|
|
ENV N8N_API_URL=https://n8n.automatizase.com.br/api/v1
|
|
ENV N8N_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4NjNjYjM1MC1hZGY3LTRiZGMtYWRlNi01OGRmYWYyNmNmYjYiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwiaWF0IjoxNzYwMjk5MjQ1fQ.pj94fvK9fI181NsGr65Orvp4iiO19qU9D_-vVRUkPbw
|
|
ENV N8N_OAUTH_URL=https://n8n.automatizase.com.br/webhook/google-oauth
|
|
|
|
# Build da aplicação Next.js
|
|
RUN npm run build
|
|
|
|
# ========================================
|
|
# Stage 2: Runner - Imagem final otimizada
|
|
# ========================================
|
|
FROM node:20-alpine AS runner
|
|
|
|
WORKDIR /app
|
|
|
|
# Criar usuário não-root para segurança
|
|
RUN addgroup --system --gid 1001 nodejs && \
|
|
adduser --system --uid 1001 nextjs
|
|
|
|
# Copiar build standalone do Next.js (já contém as dependências necessárias)
|
|
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
|
|
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
|
|
COPY --from=builder --chown=nextjs:nodejs /app/public ./public
|
|
|
|
# Trocar para usuário não-root
|
|
USER nextjs
|
|
|
|
# Expor porta 3100 (customizada conforme requisito)
|
|
EXPOSE 3100
|
|
|
|
# Variáveis de ambiente para runtime
|
|
ENV PORT=3100
|
|
ENV HOSTNAME="0.0.0.0"
|
|
ENV NEXT_PUBLIC_SITE_URL=https://portal.automatizase.com.br
|
|
ENV NEXT_PUBLIC_SUPABASE_URL=https://supabase.automatizase.com.br
|
|
ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzU5NTI0OTkwLCJleHAiOjIwNzQ4ODQ5OTB9.vAXVcWzQESACqlP6UCw2_8EwQRFTRZFfLW47xRrd23o
|
|
ENV NEXT_PUBLIC_GOOGLE_CLIENT_ID=174466774807-tdsht53agf7v40suk5mmqgmfrn4iskck.apps.googleusercontent.com
|
|
ENV SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaXNzIjoic3VwYWJhc2UiLCJpYXQiOjE3NTk1MjQ5OTAsImV4cCI6MjA3NDg4NDk5MH0.rkZfAs65vTceDDxWBdencfBtMH22l5ix_XPqltCk5j4
|
|
ENV GOOGLE_CLIENT_SECRET=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
|
|
ENV EVOLUTION_API_URL=https://evolutionapi.automatizase.com.br
|
|
ENV EVOLUTION_API_KEY=03919932dcb10fee6f28b1f1013b304c
|
|
ENV EVOLUTION_INSTANCE_NAMES="Rita,Lucia Refugio"
|
|
ENV N8N_API_URL=https://n8n.automatizase.com.br/api/v1
|
|
ENV N8N_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4NjNjYjM1MC1hZGY3LTRiZGMtYWRlNi01OGRmYWYyNmNmYjYiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwiaWF0IjoxNzYwMjk5MjQ1fQ.pj94fvK9fI181NsGr65Orvp4iiO19qU9D_-vVRUkPbw
|
|
ENV N8N_OAUTH_URL=https://n8n.automatizase.com.br/webhook/google-oauth
|
|
|
|
# Labels para rastreabilidade
|
|
LABEL org.opencontainers.image.title="AutomatizaSE Portal"
|
|
LABEL org.opencontainers.image.description="Portal de Automação AutomatizaSE"
|
|
LABEL org.opencontainers.image.vendor="AutomatizaSE"
|
|
|
|
# Comando de produção
|
|
CMD ["node", "server.js"]
|