Aller au contenu
Tous les projets
2025·Développement full-stackEn production

Arona

Application de mixage audio et voix, avec traitement des fichiers côté serveur et stockage objet dédié.

Nuxt 3TypeScriptFastAPIPythonPostgreSQLMinIO

En bref

  • Stockage objet MinIO découplé de la base applicative
  • Pipeline CI complet — lint, typecheck et tests sur le front comme sur le back
  • Trois environnements isolés — développement, préproduction, production

Le projet

Arona est une application de mixage audio et voix : on dépose des fichiers, on les assemble, on récupère un rendu. Ce qui semble simple côté interface implique côté serveur une chaîne de traitement complète — validation des formats, transcodage, assemblage, stockage des rendus.

Architecture

CoucheChoix
FrontendNuxt 3, TypeScript
BackendPython 3.12, FastAPI, migrations Alembic
BasePostgreSQL 16
StockageMinIO (objets audio)

Les fichiers audio ne transitent jamais par la base. MinIO reçoit les binaires, Postgres garde les métadonnées et les références — cette séparation garde les sauvegardes de base légères et permet de faire grossir le stockage indépendamment.

L'ensemble tourne en conteneurs : db, minio, back, front, back_storage, avec trois fichiers compose distincts pour le développement, la préproduction et la production.

Qualité

Le projet applique une CI reproductible en local comme sur le serveur : make ci-local enchaîne linttypechecktest, avec Biome et nuxi côté front, Ruff et mypy côté back. Les trois étapes doivent passer avant tout merge.

Pouvoir rejouer exactement la CI en local avant de pousser fait gagner beaucoup plus de temps que l'inverse — attendre le retour d'un runner pour découvrir une erreur de typage.

Projet suivant

Cabinya