diff --git a/dashboard/Dockerfile b/dashboard/Dockerfile new file mode 100644 index 0000000..de90de7 --- /dev/null +++ b/dashboard/Dockerfile @@ -0,0 +1,25 @@ +# Stage 1: Build +FROM node:22-alpine AS builder +WORKDIR /app +COPY package*.json ./ +RUN npm install +COPY . . +# Variáveis dummy para o build não falhar (se necessário) +ENV ZITADEL_ISSUER=http://localhost:8080 +ENV ZITADEL_CLIENT_ID=dummy +ENV ZITADEL_CLIENT_SECRET=dummy +ENV NEXTAUTH_SECRET=dummy +RUN npm run build + +# Stage 2: Run +FROM node:22-alpine AS runner +WORKDIR /app +ENV NODE_ENV=production +COPY --from=builder /app/public ./public +COPY --from=builder /app/.next ./.next +COPY --from=builder /app/node_modules ./node_modules +COPY --from=builder /app/package.json ./package.json +COPY --from=builder /app/.env.local ./.env.local + +EXPOSE 3000 +CMD ["npm", "start"] diff --git a/deploy-core.sh b/deploy-core.sh new file mode 100755 index 0000000..a7492e4 --- /dev/null +++ b/deploy-core.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +# Configurações +PROJECT_NAME="rede5-core" +NETWORK_NAME="core-network" +DB_CONTAINER="ghj-db-dev" # Usando o banco existente conforme solicitado +ZITADEL_IMAGE="ghcr.io/zitadel/zitadel:v2.42.2" +DASHBOARD_IMAGE="rede5-dashboard:latest" +MASTERKEY="MasterkeyNeedsToHave32Characters" + +echo "🚀 Iniciando Deploy do Core ($PROJECT_NAME)" + +# 1. Criar rede se não existir +docker network inspect $NETWORK_NAME >/dev/null 2>&1 || \ + docker network create $NETWORK_NAME + +# 2. Conectar o banco existente à rede (se ainda não estiver) +docker network connect $NETWORK_NAME $DB_CONTAINER 2>/dev/null || true + +# 3. Setup do Zitadel (Passo inicial) +echo "⚙️ Executando Setup do Zitadel..." +docker run --rm \ + --network $NETWORK_NAME \ + -v /root/zitadel-config.yaml:/zitadel-config.yaml:ro \ + $ZITADEL_IMAGE \ + setup --masterkey "$MASTERKEY" --config /zitadel-config.yaml + +# 4. Iniciar Zitadel +echo "🔐 Iniciando Zitadel..." +docker stop zitadel 2>/dev/null || true +docker rm zitadel 2>/dev/null || true +docker run -d \ + --name zitadel \ + --network $NETWORK_NAME \ + -p 8080:8080 \ + -v /root/zitadel-config.yaml:/zitadel-config.yaml:ro \ + -e ZITADEL_MASTERKEY="$MASTERKEY" \ + $ZITADEL_IMAGE \ + start-from-setup --masterkey "$MASTERKEY" --config /zitadel-config.yaml + +# 5. Build do Dashboard +echo "🏗️ Building Dashboard Image..." +cd dashboard +docker build -t $DASHBOARD_IMAGE . +cd .. + +# 6. Iniciar Dashboard +echo "🖥️ Iniciando Dashboard..." +docker stop core-dashboard 2>/dev/null || true +docker rm core-dashboard 2>/dev/null || true +docker run -d \ + --name core-dashboard \ + --network $NETWORK_NAME \ + -p 3005:3000 \ + --env-file dashboard/.env.local \ + $DASHBOARD_IMAGE + +echo "✅ Deploy Concluído!" +echo "Auth: http://auth.rede5.com.br (Porta 8080)" +echo "Dashboard: http://dashboard.rede5.com.br (Porta 3005)"