Files
mic-after-work-server-impl-…/QUICK_DEPLOY.md

4.5 KiB

🚀 Déploiement Rapide AfterWork API

Commandes de Déploiement (Copier-Coller)

Option 1 : Déploiement Automatique via Script PowerShell

cd C:\Users\dadyo\PersonalProjects\mic-after-work-server-impl-quarkus-main

# Déploiement complet (build + push + deploy)
.\scripts\deploy.ps1 -Action all -Version 1.0.0

# Ou étape par étape
.\scripts\deploy.ps1 -Action build    # Build Maven + Docker
.\scripts\deploy.ps1 -Action push     # Push vers registry
.\scripts\deploy.ps1 -Action deploy   # Déploiement K8s

# Vérifier le statut
.\scripts\deploy.ps1 -Action status

Option 2 : Déploiement Manuel

cd C:\Users\dadyo\PersonalProjects\mic-after-work-server-impl-quarkus-main

# 1. Build Maven (tests non-bloquants)
mvn clean package -DskipTests

# 2. Build Docker
docker build -f docker/Dockerfile.prod -t registry.lions.dev/afterwork-api:1.0.0 -t registry.lions.dev/afterwork-api:latest .

# 3. Push vers Registry
docker login registry.lions.dev
docker push registry.lions.dev/afterwork-api:1.0.0
docker push registry.lions.dev/afterwork-api:latest

# 4. Déploiement Kubernetes
kubectl create namespace applications --dry-run=client -o yaml | kubectl apply -f -
kubectl apply -f kubernetes/afterwork-configmap.yaml
kubectl apply -f kubernetes/afterwork-secrets.yaml
kubectl apply -f kubernetes/afterwork-deployment.yaml
kubectl apply -f kubernetes/afterwork-service.yaml
kubectl apply -f kubernetes/afterwork-ingress.yaml

# 5. Vérification
kubectl get pods -n applications -l app=afterwork-api
kubectl logs -n applications -l app=afterwork-api -f

Option 3 : Déploiement via lionesctl

cd C:\Users\dadyo\PersonalProjects\mic-after-work-server-impl-quarkus-main

# Build local
mvn clean package -DskipTests
docker build -f docker/Dockerfile.prod -t registry.lions.dev/afterwork-api:1.0.0 .
docker push registry.lions.dev/afterwork-api:1.0.0

# Déploiement
lionesctl pipeline deploy -f kubernetes/

⚠️ IMPORTANT : Modifier les Secrets AVANT le Déploiement

# Éditer le fichier de secrets
notepad kubernetes/afterwork-secrets.yaml

# Changer la ligne:
# DB_PASSWORD: "CHANGE_ME_IN_PRODUCTION"
# Par le vrai mot de passe

Vérifications Post-Déploiement

# 1. Pods en cours d'exécution
kubectl get pods -n applications -l app=afterwork-api

# 2. Health check
curl https://api.lions.dev/afterwork/q/health/ready
curl https://api.lions.dev/afterwork/q/health/live

# 3. Logs
kubectl logs -n applications -l app=afterwork-api --tail=50

# 4. Ingress
kubectl get ingress -n applications afterwork-api

🔧 Configuration Frontend

Une fois l'API déployée, builder l'application Flutter :

cd C:\Users\dadyo\PersonalProjects\lions-workspace\afterwork

# Build APK production
.\build-prod.ps1 -Target apk

# Ou Build AAB pour Play Store
.\build-prod.ps1 -Target appbundle

# Les APKs seront dans:
# build/app/outputs/flutter-apk/

🐛 Troubleshooting Rapide

Si les pods ne démarrent pas :

kubectl describe pod <pod-name> -n applications
kubectl logs <pod-name> -n applications

Si l'API n'est pas accessible :

# Vérifier l'Ingress
kubectl describe ingress afterwork-api -n applications

# Vérifier les certificats TLS
kubectl get certificate -n applications

# Port-forward pour test direct
kubectl port-forward -n applications svc/afterwork-api 8080:8080
curl http://localhost:8080/afterwork/q/health

Si la base de données est inaccessible :

# Tester la connexion DB depuis un pod
kubectl run -it --rm debug --image=postgres:15 --restart=Never -- \
  psql -h postgres -U afterwork -d afterwork_db

📋 Checklist Pré-Déploiement

  • PostgreSQL est installé et accessible sur le cluster
  • La base de données afterwork_db existe
  • L'utilisateur afterwork a les droits sur la base
  • Le mot de passe DB est configuré dans kubernetes/afterwork-secrets.yaml
  • Docker est installé et fonctionnel
  • Accès au registry registry.lions.dev configuré
  • kubectl configuré et accès au cluster K8s
  • Ingress Controller (nginx) installé sur le cluster
  • Cert-Manager installé pour les certificats SSL

🎯 Résumé des URLs

  • API Production : https://api.lions.dev/afterwork
  • Health Check : https://api.lions.dev/afterwork/q/health
  • Métriques : https://api.lions.dev/afterwork/q/metrics
  • WebSocket : wss://api.lions.dev/afterwork/ws/notifications/{userId}

Temps estimé de déploiement : 5-10 minutes Dernière mise à jour : 2026-01-09