129 lines
4.2 KiB
Markdown
129 lines
4.2 KiB
Markdown
# Imago Hub v2.0.0
|
|
|
|
Imago est un hub Backend & Traitement IA multi-tenant open-source dédié à la gestion d'images. Conçu pour propulser des applications frontend riches, il offre un stockage média hautement concurrent, des traitements asynchrones planifiés, une observabilité complète du pipeline et des intégrations poussées avec l'Intelligence Artificielle.
|
|
|
|
## Fonctionnalités
|
|
|
|
| Catégorie | Détails |
|
|
|---|---|
|
|
| **Upload & Stockage** | Multi-tenant, miniatures auto, stockage local ou S3 (MinIO/AWS/Cloudflare R2) |
|
|
| **Métadonnées** | EXIF, GPS, résolution |
|
|
| **OCR** | Tesseract + fallback IA |
|
|
| **Vision IA** | Description de scènes + tags (OpenRouter / Gemini) |
|
|
| **Temps réel** | WebSocket via Redis Pub/Sub |
|
|
| **Sécurité** | API Key SHA-256+pepper, scopes, rate limiting par plan |
|
|
| **Admin Panel** | Interface React : clients, galerie, métriques, logs |
|
|
| **SDK Python** | `imago-client` pour intégration programmatique |
|
|
|
|
## Structure du projet
|
|
|
|
```
|
|
imago/
|
|
├── docker-compose/ # Fichiers Docker Compose
|
|
│ ├── docker-compose.yml # Développement local (build + S3)
|
|
│ ├── docker-compose.prod.yml # Production (images pré-buildées)
|
|
│ └── .env.example # Template de configuration
|
|
├── scripts/
|
|
│ ├── setup.sh # Préparation unique du serveur
|
|
│ └── deploy.sh # Déploiement / mise à jour
|
|
├── app/ # Code backend FastAPI
|
|
├── imago-admin/ # Frontend admin React
|
|
├── sdk/ # SDK Python
|
|
└── docs/ # Documentation
|
|
```
|
|
|
|
## Déploiement rapide
|
|
|
|
### Sur un nouveau serveur (2 commandes)
|
|
|
|
```bash
|
|
git clone https://git.dracodev.net/Projets/Imago.git /opt/imago
|
|
cd /opt/imago
|
|
|
|
# 1. Préparer le serveur (une seule fois)
|
|
sudo ./scripts/setup.sh
|
|
|
|
# Déconnectez/reconnectez-vous (groupe docker)
|
|
```
|
|
|
|
```bash
|
|
# 2. Déployer
|
|
cd /opt/imago
|
|
./scripts/deploy.sh
|
|
```
|
|
|
|
Le script interactif vous guidera : création du `.env`, saisie des clés API, démarrage des services. Au premier lancement, la clé admin bootstrap s'affiche.
|
|
|
|
### Commandes au quotidien
|
|
|
|
```bash
|
|
./scripts/deploy.sh -u # Mise à jour (pull + recréation)
|
|
./scripts/deploy.sh -s # État des conteneurs
|
|
./scripts/deploy.sh -l # Logs en temps réel
|
|
```
|
|
|
|
### URLs d'accès
|
|
|
|
| Service | URL |
|
|
|---|---|
|
|
| Admin UI | `http://<serveur>:3001` |
|
|
| API Docs | `http://<serveur>:8001/docs` |
|
|
| Health | `http://<serveur>:8001/health` |
|
|
|
|
## Développement local
|
|
|
|
```bash
|
|
# Stack Docker complète (build from source)
|
|
docker compose -f docker-compose/docker-compose.yml up -d --build
|
|
|
|
# Récupérer la clé admin
|
|
docker compose -f docker-compose/docker-compose.yml logs backend | grep "Bootstrap client"
|
|
```
|
|
|
|
```bash
|
|
# Sans Docker
|
|
python3 -m venv .venv && source .venv/bin/activate
|
|
pip install -r requirements.txt
|
|
cp .env.example .env # Configurer DATABASE_URL, clés AI
|
|
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
|
|
python worker.py # Terminal séparé
|
|
```
|
|
|
|
## Build des images
|
|
|
|
```powershell
|
|
# Depuis Windows (WSL Debian requis)
|
|
|
|
# Backend
|
|
cd C:\dev\git\python\imago
|
|
docker build --no-cache -t docker-registry.dev.home:5000/imago-backend:latest -f Dockerfile .
|
|
|
|
# Admin
|
|
cd imago-admin
|
|
docker build --no-cache -t docker-registry.dev.home:5000/imago-admin:latest .
|
|
|
|
# Push
|
|
docker push docker-registry.dev.home:5000/imago-backend:latest
|
|
docker push docker-registry.dev.home:5000/imago-admin:latest
|
|
```
|
|
|
|
## Tests
|
|
|
|
```bash
|
|
pip install -r requirements-dev.txt
|
|
pytest tests/ -v
|
|
```
|
|
|
|
## Documentation
|
|
|
|
- **[Guide d'Utilisation](docs/USER_GUIDE.md)** — Utilisation et portail admin
|
|
- **[Architecture](docs/ARCHITECTURE.md)** — Stack technique et flux
|
|
- **[Guide API](docs/API_GUIDE.md)** — Endpoints REST + WebSocket
|
|
- **[Guide SDK Python](docs/SDK.md)** — Intégration programmatique
|
|
- **[Guide Déploiement](docs/DEPLOYMENT.md)** — Procédure détaillée
|
|
- **[Roadmap](docs/ROADMAP.md)** — 107 fonctionnalités planifiées
|
|
- **[Checklist Production](docs/PRODUCTION_CHECKLIST.md)** — 46 points avant prod
|
|
- **[CHANGELOG](CHANGELOG.md)** — Historique des versions
|
|
|
|
*Spécification OpenAPI : `http://<serveur>:8001/docs`*
|