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.