Packaging et déploiement Aquila PRO V1¶
Cette page décrit la manière de packager et déployer Aquila PRO V1 en environnement entreprise.
Image Docker¶
L’édition PRO est distribuée sous forme d’image Docker. Exemple de tag :
ghcr.io/<organisation>/aquila-pro:pro-v1.0.0
L’image ne contient aucune configuration client. Tous les fichiers sensibles (licence, configuration de projets) sont montés en volume.
Exemple de docker-compose.yml¶
version: "3.8"
services:
aquila-pro:
image: ghcr.io/<organisation>/aquila-pro:pro-v1.0.0
container_name: aquila-pro
ports:
- "8100:8100"
environment:
- AQUILA_PRO_DB_URL=sqlite:////data/aquila_pro.sqlite
volumes:
- ./config/global_policy.json:/app/config/global_policy.json:ro
- ./config/projects.json:/app/config/projects.json:ro
- ./config/licence.json:/app/config/licence.json:ro
- ./config/licence_public.pem:/app/config/licence_public.pem:ro
- ./data:/data
Intégration avec un reverse proxy¶
Il est recommandé de placer Aquila derrière un reverse proxy HTTPS. Exemple Caddy (simplifié) :
aquila.example.com {
reverse_proxy aquila-pro:8100
}
Intégration CI/CD¶
Dans un workflow GitHub Actions, un job de garde peut ressembler à :
jobs:
guard:
runs-on: ubuntu-latest
steps:
- name: Call Aquila PRO
run: |
STATUS=$(curl -s -X POST \
https://aquila.example.com/agent/publish \
-H "Content-Type: application/json" \
-d '{
"repository": "${{ github.repository }}",
"branch": "${{ github.ref_name }}",
"pipeline": "deploy-prod",
"metadata": {
"run_id": "${{ github.run_id }}"
}
}' | jq -r '.status')
if [ "$STATUS" != "accepted" ]; then
echo "Aquila PRO a refusé cette exécution."
exit 1
fi
Ce pattern peut être adapté à d’autres orchestrateurs (GitLab CI, Jenkins, etc.).