Pular para conteúdo

Deploy Manual

Procedimentos para deploy manual quando o CI/CD nao esta disponivel ou para servicos gerenciados por stack.

Atualizar Servico via CI/CD (forcar)

Se precisa forcar um redeploy sem mudancas de codigo:

git commit --allow-empty -m "ci: force redeploy" && git push origin main

Atualizar Stack Manual (RabbitMQ, WhatsApp)

# Editar o docker-compose.yml se necessario
nano ~/stacks/rabbitmq/docker-compose.yml

# Redeployar a stack
docker stack deploy -c ~/stacks/rabbitmq/docker-compose.yml rabbitmq

Atualizar Servico Manualmente (sem CI/CD)

1. Login no GHCR

# Necessario um PAT com read:packages ou GITHUB_TOKEN
echo "<token>" | docker login ghcr.io -u "<username>" --password-stdin

2. Pull da Imagem

docker pull ghcr.io/the-cmos/marie_ai:latest

3. Update do Service

docker service update \
  --image ghcr.io/the-cmos/marie_ai:latest \
  --with-registry-auth \
  marie_ai_backend

Criar Servico do Zero

Se o service nao existe (primeira vez ou foi removido):

Backend

docker service create \
  --name marie_ai_backend \
  --with-registry-auth \
  --network network_swarm_01 \
  --publish 3001:3001 \
  --env-file /opt/marie_ai_backend/.env \
  ghcr.io/the-cmos/marie_ai:latest

Frontend

docker service create \
  --name marie_ai_frontend \
  --with-registry-auth \
  --network network_swarm_01 \
  --publish 3001:3000 \
  --env-file /opt/marie_ai_frontend/.env \
  ghcr.io/the-cmos/marie_frontend:latest

Webhook Bridge

docker service create \
  --name webhook_whatsapp \
  --with-registry-auth \
  --network network_swarm_01 \
  --publish 3000:3000 \
  --env-file /opt/webhook_whatsapp/.env \
  ghcr.io/the-cmos/whatsapp_webhook_sqs:latest

Atualizar Variaveis de Ambiente

# 1. Editar o .env
sudo nano /opt/marie_ai_backend/.env

# 2. Forcar restart do service (o Swarm nao detecta mudancas no .env automaticamente)
docker service update --force marie_ai_backend

Atencao

docker service update --force causa downtime momentaneo. O service e recriado do zero.