Aller au contenu

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.).