Cephalopode est une plateforme moderne de streaming et de gestion de bibliothèque musicale. Elle permet d'organiser vos artistes, albums et morceaux, de créer des playlists et de diffuser votre musique directement depuis votre navigateur.
L'application s'appuie sur une architecture performante :
- Backend : FastAPI (Python) avec support PostgreSQL ou SQLite.
- Frontend : React (TypeScript) avec Vite et Tailwind CSS.
- Stockage : Compatible S3 (AWS, MinIO, etc.) pour vos fichiers audio.
C'est la méthode la plus simple pour lancer tout l'écosystème (Base de données, Stockage MinIO, Serveur Mail de test, Backend et Frontend).
- Clonez le dépôt.
- Lancez la commande suivante à la racine :
docker-compose up --build
- Accédez à l'application :
- Frontend : http://localhost:5173
- Backend API : http://localhost:8000
- Interface MinIO : http://localhost:9001
- MailDev (Tests emails) : http://localhost:1080
Si vous souhaitez lancer les services séparément, vous pouvez utiliser docker run.
Note : Assurez-vous d'avoir une base de données PostgreSQL accessible.
docker run -d \
--name cephalopode-api \
-p 8000:8000 \
-e DATABASE_TYPE=postgres \
-e PGHOST=votre_hote_db \
-e PGPASSWORD=votre_password \
-e SECRET_KEY=votre_cle_secrete \
votre-image-backenddocker run -d \
--name cephalopode-ui \
-p 5173:5173 \
-e VITE_API_URL=http://localhost:8000 \
votre-image-frontendLes manifests de déploiement sont disponibles dans le dossier /kubernetes.
-
Configurer les secrets et la configmap :
kubectl apply -f kubernetes/secret.yaml kubectl apply -f kubernetes/configmap.yaml
-
Déployer les services et les pods :
kubectl apply -f kubernetes/deployment.yaml kubectl apply -f kubernetes/service.yaml
-
Vérifiez le statut :
kubectl get pods
Le backend utilise les variables suivantes (configurables via .env ou variables système) :
| Variable | Description | Par défaut |
|---|---|---|
DATABASE_TYPE |
sqlite ou postgres |
sqlite |
SECRET_KEY |
Clé pour la génération des tokens JWT | - |
TOKEN_EXP_SECONDS |
Durée de validité du token (en sec) | 86400 |
PGHOST |
Hôte PostgreSQL | db |
SMTP_HOST |
Serveur SMTP pour les emails | mailserver |
cd api
pip install -r requirements.txt
pytestcd vite-front
npm install
npm run devPour réinitialiser la base de données SQLite locale :
rm api/database.db
# Relancez l'API pour recréer une base propreL'utilisateur par défaut lors de l'initialisation est admin avec le mot de passe admin.