Ce dossier contient les fichiers de conteneurisation pour les services Talas.
Talas utilise deux technologies complémentaires selon le cas d'usage :
| Technologie | Usage | Pourquoi |
|---|---|---|
| Docker | Services applicatifs (bases de données, queues, outils) | Images standardisées, écosystème riche, docker-compose |
| Incus | Machines complètes nécessitant un OS complet | Isolation système, ZFS backing natif, meilleur pour les workloads persistants |
docker-compose.yml)| Service | Image | Port exposé | Usage |
|---|---|---|---|
postgres |
PostgreSQL 16 | 15432 | Base de données principale |
redis |
Redis 7 | 16379 | Sessions, cache, rate limiting |
rabbitmq |
RabbitMQ 3 | 15672 / 25672 | Message broker (événements async) |
clamav |
ClamAV 1.4 | 13310 | Scan antivirus des uploads |
minio |
MinIO | 19000 | Stockage objet S3-compatible |
elasticsearch |
Elasticsearch | 19200 | Recherche full-text |
docker-compose.prod.yml)Mêmes services avec en plus :
unless-stopped| Service | Dockerfile dev | Dockerfile prod | Base prod |
|---|---|---|---|
| Backend Go | veza-backend-api/Dockerfile |
Dockerfile.production |
scratch (~15 Mo) |
| Stream Rust | veza-stream-server/Dockerfile |
Dockerfile.production |
debian:bookworm-slim (~100 Mo) |
| Frontend React | apps/web/Dockerfile |
Dockerfile.production |
nginx:latest (~30 Mo) |
Incus (fork de LXD) est utilisé pour les workloads nécessitant un OS complet :
Configuration :
zfs create pool/incus)incus-adminCommandes courantes :
incus launch images:debian/12 mon-conteneur # Créer
incus list # Lister
incus exec mon-conteneur -- bash # Shell
incus project create prod # Projet
incus project switch prod # Changer
Installation documentée dans 04_INFRA_DEPLOIEMENT/Notes_Operations/install_incus.txt.
| Type de données | Stratégie | Backing |
|---|---|---|
| PostgreSQL (WAL + data) | Volume Docker sur SSD | ZFS mirror |
| Redis (RDB + AOF) | Volume Docker sur SSD | ZFS mirror |
| MinIO (audio, fichiers) | Volume Docker sur HDD | ZFS mirror pool (1.8 To) |
| Elasticsearch (indices) | Volume Docker sur HDD 15K | ZFS mirror |
| Backups PITR | Volume dédié sur HDD | ZFS snapshots |
| Rôle | Description |
|---|---|
docker |
Installation et configuration Docker |
minio |
Configuration MinIO S3 |
docker-compose.yml : stack développementdocker-compose.prod.yml : stack productiondocker-compose.dev.yml : services dev uniquementDockerfiles/ : fichiers Docker par serviceincus-profiles/ : profils Incus par workloadvolumes/ : scripts de montage et backup