33800 Docs

← Retour

Proposition : Deploiement API YOLO

Date : 08/01/2026 18:57 Statut : En attente de validation


Contexte

Le container yolo-api tourne actuellement en mode standby (sleep infinity) sans API exposee. Une API FastAPI complete existe deja dans /stock_8to/33800-stack/docker/yolo-api/ mais n'est pas deployee.

Actions proposees

1. Mettre a jour la stack yolo-api

Modifier /stock_8to/33800-stack/docker/stacks/yolo-api/docker-compose.yml pour :

Nouvelle configuration :

services:
  yolo-api:
    build:
      context: /mnt/stock_8to/33800-stack/docker/yolo-api
    container_name: yolo-api
    ports:
      - "9200:9200"
    restart: unless-stopped
    environment:
      - YOLO_MODEL=yolov8n.pt
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9200/health"]
      interval: 30s
      timeout: 10s
      retries: 3
    networks:
      - ai-services

networks:
  ai-services:
    driver: bridge

2. Copier les sources sur prod-portainer

Transferer les fichiers de l'API :

Vers /mnt/stock_8to/33800-stack/docker/yolo-api/ sur prod-portainer

3. Recreer le container

docker compose down
docker compose up -d --build

4. Creer config nginx

Fichier : /etc/nginx/sites-available/yolo.33800.nowhere84.com.conf

server {
    listen 443 ssl http2;
    server_name yolo.33800.nowhere84.com;

    ssl_certificate /etc/letsencrypt/live/33800.nowhere84.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/33800.nowhere84.com/privkey.pem;

    access_log /var/log/nginx/yolo.33800.nowhere84.com.access.log;
    error_log /var/log/nginx/yolo.33800.nowhere84.com.error.log;

    client_max_body_size 50M;

    location / {
        proxy_pass http://192.168.1.12:9200;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # Timeout pour upload d'images
        proxy_read_timeout 120s;
        proxy_send_timeout 120s;
    }
}

server {
    listen 80;
    server_name yolo.33800.nowhere84.com;
    return 301 https://$host$request_uri;
}

5. Activer et tester

# Sur nginx
sudo ln -s /etc/nginx/sites-available/yolo.33800.nowhere84.com.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Endpoints disponibles apres deploiement

Endpoint Methode Description
/ GET Info service
/health GET Health check
/detect POST Detection objets -> JSON
/detect/image POST Detection -> Image annotee
/classes GET Liste des 80 classes COCO

Test

# Verifier sante
curl https://yolo.33800.nowhere84.com/health

# Tester detection
curl -X POST https://yolo.33800.nowhere84.com/detect \
  -F "file=@image.jpg" \
  -F "confidence=0.5"

Risques


Attente validation pour executer.