656 lines
31 KiB
Markdown
656 lines
31 KiB
Markdown
|
|
# Analyse approfondie du projet Talas — Mars 2026
|
||
|
|
|
||
|
|
> Document de reference : diagnostic complet du projet, raisonnements strategiques,
|
||
|
|
> decisions prises et leur justification. A relire avant chaque decision majeure.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 1. Diagnostic initial du dossier projet
|
||
|
|
|
||
|
|
### 1.1 Etat avant reorganisation
|
||
|
|
|
||
|
|
Le dossier TG__Talas_Group contenait 53 927 fichiers pour un total de ~11 Go.
|
||
|
|
L'etat etait desorganise avec de multiples problemes structurels.
|
||
|
|
|
||
|
|
#### Repertoires d'application redondants (5.9 Go)
|
||
|
|
|
||
|
|
| Repertoire | Taille | Contenu | Statut |
|
||
|
|
|------------|--------|---------|--------|
|
||
|
|
| `veza-application/` | 2.0 Go | App complete avec prompts GPT et archives | Obsolete |
|
||
|
|
| `archives/veza-web-app_10_06_2025/` | 1.7 Go | Snapshot complet date | Obsolete |
|
||
|
|
| `veza-web-app/` | 1.0 Go | Go backend + React frontend, repo git | Remplace par veza-full-stack |
|
||
|
|
| `Bordel/` | 798 Mo | Staging temporaire, variantes Java/Rust abandonnees | Desordonne |
|
||
|
|
| `application/` | 765 Mo | Code consolide + archives | Obsolete |
|
||
|
|
| `veza-full-stack/` | 464 Mo | Monorepo Go+Rust+React, version la plus avancee | Remplace par /home/senke/git/talas/veza |
|
||
|
|
| `pre_refactor/` | 53 Mo | Version pre-refactoring | Obsolete |
|
||
|
|
|
||
|
|
**Probleme** : 6 versions differentes de la meme application coexistaient dans le dossier
|
||
|
|
alors qu'un depot separe (/home/senke/git/talas/veza) contenait la version de reference.
|
||
|
|
|
||
|
|
#### Archives ZIP (3 Go)
|
||
|
|
|
||
|
|
| Fichier | Taille | Contenu probable |
|
||
|
|
|---------|--------|-----------------|
|
||
|
|
| `TG__Talas_Group.zip` | 708 Mo | Sauvegarde complete du dossier |
|
||
|
|
| `TG__Talas_Group_deepseek.zip` | 708 Mo | Sauvegarde apres session DeepSeek |
|
||
|
|
| `TG__Talas_Group_ds.zip` | 708 Mo | Doublon de la precedente |
|
||
|
|
| `veza-web-app.zip` | 658 Mo | Archive de l'app web |
|
||
|
|
| `TG__Talas_Group_old1_21_02_2025.zip` | 118 Mo | Sauvegarde de fevrier 2025 |
|
||
|
|
| `TG__Talas_Group_alleged.zip` | 87 Mo | Documentation officielle compactee |
|
||
|
|
|
||
|
|
**Probleme** : Les ZIP servaient de "controle de version" informel, signe qu'il manquait
|
||
|
|
un vrai systeme de versioning (git) pour le dossier projet.
|
||
|
|
|
||
|
|
#### Fichiers orphelins a la racine (15+ fichiers)
|
||
|
|
|
||
|
|
| Fichier | Contenu | Ou il aurait du etre |
|
||
|
|
|---------|---------|---------------------|
|
||
|
|
| `gpt_whole_description.md` | Description complete du projet generee par GPT | 00_META/Vision_Projet/ |
|
||
|
|
| `fichier_propre.txt` | Rapport d'incident cybersecurite (exercice EPITA) | 04_INFRA/Securite/ |
|
||
|
|
| `mail_thomann.txt` | Email au fournisseur de capsules | 02_PRODUITS_PHYSIQUES/Fournisseurs/ |
|
||
|
|
| `inventaires_composants_bom_origin_project.ods` | Bill of Materials | 02_PRODUITS_PHYSIQUES/Microphone/BOM/ |
|
||
|
|
| `routes_api_pre_refactor.txt` | Routes API documentees | 03_APPS_&_SERVICES/Architecture/ |
|
||
|
|
| `DB_history_creation_user_bdd.png` | Schema de BDD | 03_APPS_&_SERVICES/Architecture/ |
|
||
|
|
| `from_epita_usefull_for_talas.md` | Notes de cours EPITA utiles | 12_DOCUMENTATION/References/ |
|
||
|
|
| `jumpserver_conv_1/2/3.txt` | Conversations debug JumpServer (chinois) | 04_INFRA/Notes_Operations/ |
|
||
|
|
| `search.txt`, `grep_result.txt` | Resultats de recherche temporaires | Poubelle |
|
||
|
|
| `tree_l3.txt`, `tree_l4.txt` | Arbres de fichiers sauvegardes | Poubelle |
|
||
|
|
| `fichier.txt` | Contenu non identifie | Poubelle |
|
||
|
|
|
||
|
|
#### Documentation dispersee
|
||
|
|
|
||
|
|
La documentation existait dans 4 endroits differents, avec des doublons :
|
||
|
|
|
||
|
|
1. `Documentation/` — 18 fichiers (business plan, roadmaps, arbres v1-v4, taches)
|
||
|
|
2. `TG__Talas_Group_alleged/Documentation/` — copie partielle de Documentation/
|
||
|
|
3. `TALAS/12_DOCUMENTATION/` — structure vide avec README uniquement
|
||
|
|
4. Fichiers .md a la racine (`gpt_whole_description.md`)
|
||
|
|
|
||
|
|
**Resultat** : impossible de savoir quel document etait la reference.
|
||
|
|
|
||
|
|
#### Structure TALAS/ : bon squelette, jamais peuple
|
||
|
|
|
||
|
|
Le dossier TALAS/ contenait 14 sous-dossiers numerotes avec une taxonomie bien pensee
|
||
|
|
(calquee sur `talas_master_tree_v4.md`). Mais a part des README decrivant le contenu
|
||
|
|
attendu, les dossiers etaient vides. Le squelette existait sans le corps.
|
||
|
|
|
||
|
|
### 1.2 Alertes de securite identifiees
|
||
|
|
|
||
|
|
**Alerte 1 : Mots de passe en clair dans mail_thomann.txt**
|
||
|
|
Le fichier contenant l'email au fournisseur Thomann se termine par ce qui ressemble a
|
||
|
|
deux mots de passe en clair :
|
||
|
|
```
|
||
|
|
root
|
||
|
|
[V3LPM!x|{}$_89EHDgcn5u<
|
||
|
|
zi1;4kXC06M#FiqgNQyTahxS
|
||
|
|
```
|
||
|
|
→ Recommandation : supprimer immediatement ces lignes du fichier.
|
||
|
|
→ Si ces mots de passe sont utilises quelque part, les changer.
|
||
|
|
|
||
|
|
**Alerte 2 : Cles SSH dans le depot applicatif**
|
||
|
|
Le repertoire `veza-full-stack/ssh-keys/` et `ssh-keys-backup-20250915-234918/`
|
||
|
|
contenaient des cles SSH dans un dossier projet.
|
||
|
|
→ Les cles privees ne doivent JAMAIS etre dans un dossier projet.
|
||
|
|
→ Maintenant archivees dans 13_ARCHIVES/ mais a verifier et supprimer.
|
||
|
|
|
||
|
|
**Alerte 3 : Rapport d'incident de securite (fichier_propre.txt)**
|
||
|
|
Ce fichier est un rapport d'incident cybersecurite detaille (phishing, compromission
|
||
|
|
de compte admin, exfiltration de donnees). Il semble s'agir d'un exercice realise
|
||
|
|
dans le cadre des etudes a EPITA (les noms et emails sont fictifs : "g.morel@entreprise.fr",
|
||
|
|
"antoine.dupont@entreprise.fr"). Neanmoins, il est marque "Confidentiel" et ne devrait
|
||
|
|
pas trainer dans un dossier projet ouvert.
|
||
|
|
|
||
|
|
### 1.3 Reorganisation effectuee
|
||
|
|
|
||
|
|
**Principe** : utiliser la structure TALAS/ comme nouvelle racine, la peupler avec
|
||
|
|
le contenu reel, et tout archiver le reste.
|
||
|
|
|
||
|
|
**Operations realisees** (dans l'ordre) :
|
||
|
|
1. Creation de 13_ARCHIVES/Applications/, ZIP_Backups/, Divers/
|
||
|
|
2. Deplacement des 6 repertoires d'app vers 13_ARCHIVES/Applications/
|
||
|
|
3. Deplacement des 6 ZIP vers 13_ARCHIVES/ZIP_Backups/
|
||
|
|
4. Deplacement de Bordel/, TG__Talas_Group_alleged/, sniperphish/ vers 13_ARCHIVES/
|
||
|
|
5. Deplacement des fichiers temporaires (jumpserver, search, tree, grep) vers 13_ARCHIVES/Divers/
|
||
|
|
6. Copie des documents de Documentation/ dans les dossiers thematiques correspondants
|
||
|
|
7. Copie de Conception/condenser/ vers 02_PRODUITS_PHYSIQUES/Microphone/Conception/
|
||
|
|
8. Copie de R&D/ vers 02_PRODUITS_PHYSIQUES/R&D_References/
|
||
|
|
9. Copie de Buyings/ vers 02_PRODUITS_PHYSIQUES/Buyings/
|
||
|
|
10. Copie de infra/ansible/ et infra/p_notes/ vers 04_INFRA_DEPLOIEMENT/
|
||
|
|
11. Redistribution des fichiers racine dans les dossiers thematiques
|
||
|
|
12. Promotion des dossiers TALAS/* a la racine (suppression du wrapper TALAS/)
|
||
|
|
13. Archivage des anciens dossiers source dans 13_ARCHIVES/Anciens_Dossiers_Racine/
|
||
|
|
14. Creation du README.md racine
|
||
|
|
15. Creation du _BROUILLON/ pour les idees en vrac
|
||
|
|
|
||
|
|
**Aucune donnee n'a ete supprimee.** Tout est dans 13_ARCHIVES/.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Analyse des forces et faiblesses
|
||
|
|
|
||
|
|
### 2.1 Forces — developpement detaille
|
||
|
|
|
||
|
|
**Force 1 : Vision solide et differenciante**
|
||
|
|
Le positionnement "audio ethique, reparable, accessible" est credible parce qu'il
|
||
|
|
repose sur des actions concretes (schemas publics, composants standards, documentation
|
||
|
|
de reparation) et pas seulement sur du marketing. La tendance de fond est favorable :
|
||
|
|
le droit a la reparation gagne du terrain en Europe (directive UE 2024), les
|
||
|
|
consommateurs jeunes sont plus sensibles a la durabilite, et le marche du podcasting/
|
||
|
|
home-studio est en croissance.
|
||
|
|
|
||
|
|
Ce qui differencie Talas de tentatives similaires : l'ecosysteme complet. Beaucoup
|
||
|
|
de projets open-hardware existent mais se limitent au materiel. Ajouter une plateforme
|
||
|
|
communautaire + boutique ethique + transparence sur les couts cree un positionnement
|
||
|
|
unique.
|
||
|
|
|
||
|
|
**Force 2 : Hardware concret (pas vaporware)**
|
||
|
|
Le projet n'est pas a l'etat d'idee. Il y a :
|
||
|
|
- Des fichiers KiCAD reels avec des schematics iteres (AliceOPA Rev3)
|
||
|
|
- Des PCBs physiquement commandes, recus, soudes et testes
|
||
|
|
- Un BOM chiffre avec des prix reels de fournisseurs
|
||
|
|
- Des factures de fabrication de PCB
|
||
|
|
- Un mail envoye a un fournisseur de capsules
|
||
|
|
- Des service manuals de concurrents etudies
|
||
|
|
Cela prouve une capacite d'execution, pas seulement de planification.
|
||
|
|
|
||
|
|
**Force 3 : Competences techniques exceptionnellement larges**
|
||
|
|
Pour un fondateur solo, maitriser simultanement :
|
||
|
|
- La conception electronique (KiCAD, schematics, PCB layout)
|
||
|
|
- Le backend Go avec architecture hexagonale
|
||
|
|
- Le Rust pour du streaming haute performance
|
||
|
|
- Le frontend React/TypeScript
|
||
|
|
- L'infrastructure (Ansible 48 roles, HAProxy, WAF, monitoring ELK)
|
||
|
|
- La cybersecurite (rapport d'incident, WAF Coraza, pentest)
|
||
|
|
...est rare et constitue un avantage competitif reel. La plupart des startups
|
||
|
|
hardware ont besoin de 3-5 personnes pour couvrir ce spectre.
|
||
|
|
|
||
|
|
**Force 4 : Application Veza quasi-production**
|
||
|
|
Decouvert en cours de session : l'application n'est pas un prototype mais un
|
||
|
|
logiciel production-ready. Details critiques :
|
||
|
|
- 88/89 fonctionnalites implementees sur la roadmap (v1.0.2)
|
||
|
|
- Pentest externe realise : 36 findings identifies, tous remedies
|
||
|
|
- 920+ fichiers de tests (E2E Playwright + unitaires)
|
||
|
|
- Deploiement blue-green avec HAProxy
|
||
|
|
- Paiements fonctionnels via Hyperswitch (Stripe + PayPal)
|
||
|
|
- Streaming audio en Rust (HLS + FFmpeg transcoding)
|
||
|
|
- Ethique de conception validee : zero dark pattern, zero tracking ML, zero gamification
|
||
|
|
- RGPD : export de donnees, suppression de compte, anonymisation
|
||
|
|
- Accessibilite WCAG AA
|
||
|
|
- Documentation : 1 347 fichiers markdown, OpenAPI 3.0 spec de 89.5K
|
||
|
|
- CI/CD : 12 workflows GitHub Actions avec gates de qualite
|
||
|
|
Cela change fondamentalement l'analyse : l'app n'est pas prematuree, elle est un atout.
|
||
|
|
|
||
|
|
**Force 5 : Infrastructure self-hosted puissante**
|
||
|
|
2x Dell PowerEdge R720 = 768 Go RAM, 64 coeurs, 10 GbE, ~100 HDD + SSD.
|
||
|
|
Avantages :
|
||
|
|
- Cout mensuel ~180 EUR (vs 800-1500 EUR en cloud)
|
||
|
|
- Independance totale (pas de vendor lock-in AWS/GCP)
|
||
|
|
- Coherent avec les valeurs Talas (transparence, controle)
|
||
|
|
- Surpuissance pour les besoins actuels et futurs proches
|
||
|
|
- ZFS en mirror partout (resilience aux pannes HDD d'occasion)
|
||
|
|
|
||
|
|
**Force 6 : Ecosysteme complet pense de bout en bout**
|
||
|
|
Aucun fabricant de microphone ne propose simultanément :
|
||
|
|
- Du materiel reparable avec schemas publics
|
||
|
|
- Une boutique ethique avec couts affiches
|
||
|
|
- Une communaute d'artistes avec partage de ressources
|
||
|
|
- Un cloud audio personnel
|
||
|
|
- Le tout auto-heberge et sans tracking
|
||
|
|
C'est un positionnement sans equivalent direct.
|
||
|
|
|
||
|
|
### 2.2 Faiblesses — developpement detaille
|
||
|
|
|
||
|
|
**Faiblesse 1 : Pas de business plan operationnel**
|
||
|
|
Ce qui existe dans `talas.md` est un bon brouillon mais pas un BP viable :
|
||
|
|
- Les projections financieres (croissance 10/30/50% par an) sont arbitraires et non
|
||
|
|
justifiees par des donnees de marche
|
||
|
|
- Le modele ne compte pas les charges sociales (12.3% en micro-entreprise, 45% en SAS)
|
||
|
|
- La TVA n'est pas integree (franchise en base en micro-entreprise, 20% en SAS)
|
||
|
|
- Les frais Stripe (2.9% + 0.25 EUR par transaction) ne sont pas comptes
|
||
|
|
- Le temps de main d'oeuvre (assemblage, test, emballage, expedition) n'est pas valorise
|
||
|
|
- Les certifications CE/RoHS ne sont pas budgetees
|
||
|
|
- Il n'y a pas de plan de tresorerie mensuel
|
||
|
|
- Les couts d'electricite serveurs (~135 EUR/mois) ne sont pas integres
|
||
|
|
→ Un template de BP realiste a ete cree dans 09_MODELE_ECONOMIQUE/BUSINESS_PLAN_TALAS.md
|
||
|
|
|
||
|
|
**Faiblesse 2 : Couts de fabrication sous-estimes**
|
||
|
|
Le chiffre annonce de 76 EUR/unite (61 EUR materiaux + 5 EUR garantie + 10 EUR expedition)
|
||
|
|
ne reflete pas le cout reel. Elements manquants :
|
||
|
|
|
||
|
|
| Poste oublie | Estimation |
|
||
|
|
|-------------|-----------|
|
||
|
|
| Temps d'assemblage (estimation 2-3h x SMIC horaire ~11.65 EUR) | 23-35 EUR |
|
||
|
|
| Amortissement equipement (fer a souder, multimetre, etc.) | 2-5 EUR |
|
||
|
|
| Emballage reel (boite, livret, stickers, blister) | 5-10 EUR |
|
||
|
|
| Commission Stripe (2.9% + 0.25 EUR sur 150 EUR) | ~4.60 EUR |
|
||
|
|
| Cotisations sociales (12.3% de 150 EUR en micro-entreprise) | ~18.45 EUR |
|
||
|
|
| Provision retours/SAV (5% du prix) | ~7.50 EUR |
|
||
|
|
|
||
|
|
Le cout reel tout compris serait plutot **120-140 EUR par unite** a 150 EUR de prix de vente,
|
||
|
|
laissant une marge nette de **10-30 EUR** en micro-entreprise — pas les 74 EUR annonces.
|
||
|
|
|
||
|
|
Cependant : en micro-entreprise, les cotisations sociales sont un pourcentage du CA,
|
||
|
|
pas du cout. Le calcul de marge doit etre fait sur le CA apres cotisations :
|
||
|
|
- Prix 150 EUR - cotisations 12.3% = 131.55 EUR net
|
||
|
|
- Moins cout reel (~100 EUR sans les cotisations) = ~31 EUR de marge nette
|
||
|
|
C'est viable mais serré. Chaque euro de cout en moins ou de prix en plus compte.
|
||
|
|
|
||
|
|
**Faiblesse 3 : Documentation existante repetitive et generee par IA**
|
||
|
|
Plusieurs documents du projet sont des outputs bruts de GPT/DeepSeek non edites :
|
||
|
|
- `gpt_whole_description.md` (le titre l'admet)
|
||
|
|
- Les roadmaps contiennent des emojis et du filler typique de l'IA
|
||
|
|
- `important_aspects.md`, `aspects_to_consider.md` et `Liste Complete des Aspects.md`
|
||
|
|
sont trois versions du meme contenu
|
||
|
|
- `talas_master_tree_v1/v2/v3/v4.md` sont 4 iterations du meme arbre
|
||
|
|
Ces documents representent du brainstorming, pas de la documentation. Ils ne refletent
|
||
|
|
pas des decisions reelles prises.
|
||
|
|
→ Le document d'identite TALAS_IDENTITE_PROJET.md a ete cree pour servir de reference
|
||
|
|
unique et consolider toutes ces sources.
|
||
|
|
|
||
|
|
**Faiblesse 4 : Aucune validation marche**
|
||
|
|
Au 21 mars 2026, il n'y a eu :
|
||
|
|
- 0 sondage aupres de la cible
|
||
|
|
- 0 landing page pour mesurer l'interet
|
||
|
|
- 0 pre-commande
|
||
|
|
- 0 test du prototype par un utilisateur externe
|
||
|
|
- 0 presence sur les reseaux sociaux
|
||
|
|
- 0 retour client
|
||
|
|
Le seul signal de marche est la connaissance empirique du fondateur en tant
|
||
|
|
qu'artiste/producteur lui-meme. C'est un bon point de depart mais ce n'est pas
|
||
|
|
une validation.
|
||
|
|
|
||
|
|
**Faiblesse 5 : Pas de forme juridique**
|
||
|
|
Impossible de :
|
||
|
|
- Emettre des factures
|
||
|
|
- Encaisser des paiements
|
||
|
|
- Deduire des charges
|
||
|
|
- Etre couvert en cas de probleme produit
|
||
|
|
→ Immatriculation en micro-entreprise = 30 min en ligne, gratuit, pas d'excuse.
|
||
|
|
|
||
|
|
**Faiblesse 6 : Composants manquants pour le prototype**
|
||
|
|
Il manque les capsules et les connecteurs XLR 5 pins pour assembler le premier
|
||
|
|
prototype complet. Tant que ces composants ne sont pas commandes et recus, le
|
||
|
|
micro n'existe pas en tant que produit fini.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. Debat strategique : ecosysteme complet vs produit seul
|
||
|
|
|
||
|
|
### 3.1 Approche "produit d'abord" (recommandation initiale)
|
||
|
|
|
||
|
|
**Argument** : la methodologie lean startup classique dit de commencer par le
|
||
|
|
produit minimum viable (MVP), valider qu'il y a une demande, puis etendre.
|
||
|
|
Lancer une app communautaire avant d'avoir un seul client est premature.
|
||
|
|
|
||
|
|
**Pourquoi cette recommandation a ete revisee** :
|
||
|
|
Elle etait basee sur l'hypothese que l'app etait un prototype inacheve.
|
||
|
|
La decouverte que Veza est un logiciel production-ready (88/89 features,
|
||
|
|
pentest valide, 920+ tests) invalide cette hypothese. Le cout marginal
|
||
|
|
de lancer l'app en meme temps que le micro est faible puisque le travail
|
||
|
|
est deja fait.
|
||
|
|
|
||
|
|
### 3.2 Approche "ecosysteme complet" (position du fondateur)
|
||
|
|
|
||
|
|
**Arguments en faveur** :
|
||
|
|
1. L'app est deja construite — ne pas l'utiliser serait du gachis
|
||
|
|
2. La differenciation vient de l'ecosysteme, pas du micro seul
|
||
|
|
3. Le storytelling marketing est celui d'un univers complet
|
||
|
|
4. L'ethique de la plateforme (zero tracking, zero dark pattern) est un argument
|
||
|
|
de vente aussi fort que la reparabilite du micro
|
||
|
|
5. La communaute cree un effet de reseau qui renforce les ventes de materiel
|
||
|
|
|
||
|
|
**Risques identifies** :
|
||
|
|
1. Le micro DOIT etre pret — sans produit physique, l'ecosysteme n'a pas de
|
||
|
|
raison d'etre. La plateforme seule ne suffit pas a attirer des utilisateurs.
|
||
|
|
2. Communiquer sur deux choses simultanement (micro + app) dilue le message
|
||
|
|
3. Une plateforme sans utilisateurs parait vide et peu credible
|
||
|
|
4. L'infrastructure doit tourner et etre maintenue en permanence (cout en temps)
|
||
|
|
|
||
|
|
### 3.3 Decision retenue : lancement en sequence
|
||
|
|
|
||
|
|
L'ecosysteme complet sera lance, mais en phases progressives :
|
||
|
|
|
||
|
|
**Phase 1 : Le micro est la porte d'entree**
|
||
|
|
- Lancer avec le module Shop de Veza uniquement
|
||
|
|
- Chaque acheteur de micro recoit un compte sur la plateforme
|
||
|
|
- Le micro justifie l'existence de la plateforme
|
||
|
|
|
||
|
|
**Phase 2 : La communaute s'ouvre a tous**
|
||
|
|
- Activer les modules Community (partage, chat, feed)
|
||
|
|
- Permettre l'inscription sans achat
|
||
|
|
- Les non-acheteurs decouvrent Talas via l'app → certains achetent le micro
|
||
|
|
- Boucle vertueuse : micro → communaute → visibilite → micro
|
||
|
|
|
||
|
|
**Phase 3 : Le crowdfunding capitalise sur la communaute**
|
||
|
|
- La base d'utilisateurs Veza est le public du crowdfunding
|
||
|
|
- Les metriques d'utilisation valident l'interet
|
||
|
|
|
||
|
|
**Pourquoi pas tout en meme temps ?**
|
||
|
|
Ouvrir la communaute sans utilisateurs est contre-productif. Les premiers acheteurs
|
||
|
|
du micro forment le noyau de la communaute. Ils ont une raison d'etre la (leur
|
||
|
|
produit Talas). Ensuite, leur activite attire d'autres utilisateurs.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. Analyse de l'application Veza
|
||
|
|
|
||
|
|
### 4.1 Localisation et structure
|
||
|
|
|
||
|
|
Le code de reference se trouve dans `/home/senke/git/talas/veza` (depot git separe).
|
||
|
|
Les versions archivees dans `13_ARCHIVES/Applications/` sont obsoletes.
|
||
|
|
|
||
|
|
### 4.2 Architecture technique
|
||
|
|
|
||
|
|
```
|
||
|
|
veza/
|
||
|
|
├── veza-backend-api/ Go 1.24 (Gin, GORM) — API REST, auth JWT RS256
|
||
|
|
├── veza-stream-server/ Rust (Tokio, Axum) — streaming audio WebSocket + HLS
|
||
|
|
├── veza-chat-server/ Rust — messagerie temps reel
|
||
|
|
├── apps/web/ React 18 + TypeScript + Vite + Tailwind — frontend
|
||
|
|
├── docker/ Configurations Docker (HAProxy, etc.)
|
||
|
|
├── k8s/ Manifestes Kubernetes
|
||
|
|
├── tests/ 17 suites E2E Playwright
|
||
|
|
├── proto/ Protocol Buffers (gRPC)
|
||
|
|
└── config/ Grafana, Prometheus, alerting
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4.3 Services de production (docker-compose.prod.yml)
|
||
|
|
|
||
|
|
| Service | Technologie | Role |
|
||
|
|
|---------|-------------|------|
|
||
|
|
| Backend API (x2) | Go | API REST, blue-green |
|
||
|
|
| Stream Server (x2) | Rust | Streaming audio, blue-green |
|
||
|
|
| Frontend (x2) | React | SPA, blue-green |
|
||
|
|
| HAProxy | 2.8-alpine | Reverse proxy, HTTPS, health checks |
|
||
|
|
| PostgreSQL | 16 | Base de donnees principale |
|
||
|
|
| Redis | 7-alpine | Cache, sessions, rate limiting |
|
||
|
|
| RabbitMQ | 3-alpine | File d'attente pour jobs asynchrones |
|
||
|
|
| Elasticsearch | 8.11+ | Recherche full-text |
|
||
|
|
| MinIO | Latest | Stockage objet S3-compatible (audio, fichiers) |
|
||
|
|
| ClamAV | 1.4 | Antivirus pour les uploads |
|
||
|
|
| Hyperswitch | 2026.03.11 | Routeur de paiement (Stripe + PayPal) |
|
||
|
|
| Alertmanager | Latest | Alertes incidents |
|
||
|
|
|
||
|
|
### 4.4 Fonctionnalites implementees (cles)
|
||
|
|
|
||
|
|
**Authentification** : JWT RS256, OAuth (Google/GitHub/Apple), 2FA, reset password
|
||
|
|
**Utilisateurs** : profils, avatars, followers/following, parametres
|
||
|
|
**Audio** : upload, metadata, HLS streaming, adaptation bitrate, lecteur
|
||
|
|
**Social** : feed chronologique + decouverte, likes, commentaires, partage
|
||
|
|
**Chat** : messages, reactions, threads, attachments, recherche
|
||
|
|
**Marketplace** : produits, commandes, paiements, payouts createurs
|
||
|
|
**Abonnements** : plans premium, gestion abonnement
|
||
|
|
**Moderation** : reports, review contenu, bans
|
||
|
|
**Analytics** : stats createur (plays, revenus)
|
||
|
|
**Admin** : transferts, annonces, gestion utilisateurs
|
||
|
|
**RGPD** : export donnees, suppression compte, anonymisation
|
||
|
|
**Co-ecoute** : sessions d'ecoute collaborative
|
||
|
|
**Playlists** : collaboratives
|
||
|
|
|
||
|
|
### 4.5 Engagements ethiques (implementes dans le code, pas seulement declares)
|
||
|
|
|
||
|
|
| Engagement | Implementation |
|
||
|
|
|-----------|---------------|
|
||
|
|
| Zero dark pattern | Audite, pas de FOMO, pas de notifications manipulatrices |
|
||
|
|
| Zero tracking ML | Pas de tensorflow/pytorch/sklearn dans aucun composant |
|
||
|
|
| Zero gamification | Pas de XP, streaks, leaderboards |
|
||
|
|
| Decouverte ethique | Par tags/genres uniquement, pas d'algorithme comportemental |
|
||
|
|
| Metriques privees | Likes/plays visibles uniquement par le createur |
|
||
|
|
| Pas de blockchain | Explicitement desactive |
|
||
|
|
| Accessibilite | WCAG AA, navigation clavier, labels ARIA |
|
||
|
|
| RGPD complet | Export, suppression, portabilite |
|
||
|
|
|
||
|
|
### 4.6 Qualite et securite
|
||
|
|
|
||
|
|
- Pentest externe realise (v0.12.6) : 36 findings, tous remedies, 0 critique/haut ouvert
|
||
|
|
- Tests E2E : 17 suites Playwright, 900+ cas de test
|
||
|
|
- Coverage Go : 60% minimum (enforce dans CI)
|
||
|
|
- Lint : golangci-lint, ESLint, cargo clippy — zero warning
|
||
|
|
- Scans : npm audit, govulncheck, Trivy (images Docker), SAST
|
||
|
|
- Lighthouse : Performance >= 85, Accessibilite >= 90
|
||
|
|
- Load testing : p95 API < 100ms, support 5000+ WebSocket connections
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5. Analyse de l'infrastructure
|
||
|
|
|
||
|
|
### 5.1 Materiel disponible
|
||
|
|
|
||
|
|
**Serveur 1 et 2 : Dell PowerEdge R720**
|
||
|
|
- CPU : 2x Intel Xeon E5-2670 @ 2.60 GHz (8 coeurs / 16 threads chacun)
|
||
|
|
→ Par serveur : 16 coeurs / 32 threads
|
||
|
|
→ Total : 32 coeurs / 64 threads
|
||
|
|
(Note : l'E5-2670 est un processeur de 2012, architecture Sandy Bridge-EP.
|
||
|
|
Performant mais gourmand en electricite comparé aux CPU modernes.)
|
||
|
|
- RAM : 16x 24 Go DDR3 1600 MHz = 384 Go par serveur, 768 Go total
|
||
|
|
- Interconnexion : cartes PCIe 10 GbE
|
||
|
|
|
||
|
|
**Stockage**
|
||
|
|
- ~100 disques durs d'occasion
|
||
|
|
- HDD 15 000 RPM en 2.5" (146 Go, 300 Go, 600 Go, 900 Go, 1.8 To)
|
||
|
|
- Performance : les 15K RPM sont les plus rapides en HDD, adaptes pour les I/O
|
||
|
|
de base de donnees (replicas, Elasticsearch)
|
||
|
|
- Fiabilite : disques d'occasion = taux de panne estime 10-15%/an
|
||
|
|
→ SMART monitoring obligatoire (smartmontools)
|
||
|
|
→ ZFS mirror = resilience adaptee (1 disque par paire peut lacher)
|
||
|
|
- Format 2.5" = adapte aux baies de R720 (jusqu'a 16 baies 2.5" par serveur)
|
||
|
|
- Quelques SSD en reserve (jusqu'a 1 To, anciens)
|
||
|
|
- Meme vieux, les SSD surpassent largement les HDD en IOPS aleatoires
|
||
|
|
- Verifier l'endurance restante : `smartctl -a /dev/sdX` → Wear_Leveling_Count
|
||
|
|
- Utilisation ideale : PostgreSQL primary + Redis
|
||
|
|
|
||
|
|
**Reseau**
|
||
|
|
- Fibre Orange (en cours d'installation) + backup 5G
|
||
|
|
- Debit : 1 Gbps descendant (suffisant pour des centaines d'utilisateurs simultanes)
|
||
|
|
- 10 GbE entre les deux serveurs (pour replication PG, acces MinIO, backups)
|
||
|
|
- Reseau local : 1 Gbps ou 2.5 Gbps selon les equipements
|
||
|
|
|
||
|
|
### 5.2 Architecture recommandee
|
||
|
|
|
||
|
|
```
|
||
|
|
Internet (fibre Orange 1 Gbps + 5G backup)
|
||
|
|
|
|
||
|
|
[Cloudflare Tunnel]
|
||
|
|
|
|
||
|
|
┌───────────────┴───────────────┐
|
||
|
|
| |
|
||
|
|
R720 #1 (PRODUCTION) R720 #2 (DATA + BACKUP)
|
||
|
|
──────────────────── ─────────────────────────
|
||
|
|
HAProxy (reverse proxy) MinIO (stockage audio/fichiers)
|
||
|
|
Veza Backend (Go) x2 PostgreSQL replica
|
||
|
|
Veza Stream Server (Rust) x2 Elasticsearch
|
||
|
|
Veza Frontend (React) x2 ClamAV
|
||
|
|
PostgreSQL primary (SSD) Prometheus + Grafana
|
||
|
|
Redis (SSD) Alertmanager
|
||
|
|
RabbitMQ Backups PITR
|
||
|
|
Hyperswitch Sentry (optionnel)
|
||
|
|
| |
|
||
|
|
└──────── 10 GbE ───────────────┘
|
||
|
|
(replication PG, acces MinIO,
|
||
|
|
transferts de backup)
|
||
|
|
```
|
||
|
|
|
||
|
|
### 5.3 Allocation du stockage
|
||
|
|
|
||
|
|
| Type de disque | Serveur | Usage | Justification |
|
||
|
|
|----------------|---------|-------|---------------|
|
||
|
|
| SSD (priorite) | R720 #1 | PostgreSQL primary + WAL | IOPS aleatoires critiques pour les requetes |
|
||
|
|
| SSD | R720 #1 | Redis (RDB + AOF) | Persistance rapide, acces aleatoire |
|
||
|
|
| HDD 15K (petits, 146-300 Go) | R720 #1 | Systeme, logs, swap | I/O sequentielles, pas critique |
|
||
|
|
| HDD 15K (moyens, 600-900 Go) | R720 #2 | PostgreSQL replica, Elasticsearch | Bonnes IOPS pour du HDD, lectures sequentielles |
|
||
|
|
| HDD (grands, 1.8 To) | R720 #2 | MinIO (pool ZFS mirror) | Volume > performance, stockage audio |
|
||
|
|
| HDD (grands) | R720 #2 | Backups PITR, snapshots ZFS | Volume, ecritures sequentielles |
|
||
|
|
|
||
|
|
### 5.4 ZFS — choix des mirror vdevs
|
||
|
|
|
||
|
|
Choix retenu : pools en mirror (paires de 2 disques), pas RAIDZ2.
|
||
|
|
|
||
|
|
| Critere | Mirror (retenu) | RAIDZ2 (alternative) |
|
||
|
|
|---------|----------------|---------------------|
|
||
|
|
| Tolerance panne | 1 disque par paire | 2 disques par vdev |
|
||
|
|
| Performance lecture | Excellente (striped mirrors) | Bonne |
|
||
|
|
| Performance ecriture | Bonne | Moyenne (parity calculation) |
|
||
|
|
| Perte capacite | 50% | ~33% |
|
||
|
|
| Resilver (reconstruction) | Rapide (1 disque a copier) | Lent (tout le vdev) |
|
||
|
|
| Adapte aux HDD d'occasion | Oui (resilver rapide = moins de stress) | Risque (resilver long = risque de 2e panne) |
|
||
|
|
|
||
|
|
Pour des disques d'occasion avec un taux de panne estime a 10-15%/an, le mirror
|
||
|
|
est clairement superieur : le resilver rapide limite la fenetre de vulnerabilite.
|
||
|
|
Et avec ~100 disques disponibles, la perte de 50% de capacite est acceptable.
|
||
|
|
|
||
|
|
### 5.5 Cout d'exploitation
|
||
|
|
|
||
|
|
| Poste | Calcul | Cout mensuel |
|
||
|
|
|-------|--------|-------------|
|
||
|
|
| Electricite serveurs | 2x R720 ~400W chacun = 800W | |
|
||
|
|
| Equipement reseau | Switch, routeur ~50W | |
|
||
|
|
| **Total puissance** | **~850W en continu** | |
|
||
|
|
| Consommation mensuelle | 850W x 24h x 30j = 612 kWh | |
|
||
|
|
| Electricite France | 612 kWh x 0.22 EUR/kWh | **~135 EUR** |
|
||
|
|
| Internet fibre Orange | Offre fibre + 5G | **~40-50 EUR** |
|
||
|
|
| Nom de domaine | ~12 EUR/an | **~1 EUR** |
|
||
|
|
| **TOTAL** | | **~180 EUR/mois** |
|
||
|
|
|
||
|
|
Comparaison cloud equivalent :
|
||
|
|
- 2 serveurs dedies avec 384 Go RAM chez Hetzner : ~400-600 EUR/mois
|
||
|
|
- Managed PostgreSQL + Redis + Elasticsearch chez AWS : ~500-800 EUR/mois
|
||
|
|
- S3 + monitoring + CI : ~100-200 EUR/mois
|
||
|
|
- **Total cloud : 800-1500+ EUR/mois**
|
||
|
|
|
||
|
|
Economie self-hosted : **620-1320 EUR/mois**, soit 7 500-15 800 EUR/an.
|
||
|
|
|
||
|
|
### 5.6 Reseau et exposition internet
|
||
|
|
|
||
|
|
**Approche retenue : full self-hosted, zero dependance cloud.**
|
||
|
|
|
||
|
|
L'infrastructure reseau repose sur :
|
||
|
|
- **WireGuard** : VPN deja en place pour l'acces securise et l'exposition des services
|
||
|
|
- **HAProxy** : reverse proxy avec terminaison TLS (Let's Encrypt via certbot)
|
||
|
|
- **Coraza WAF** : protection applicative (OWASP CRS) deja deploye et configure
|
||
|
|
- **Monitoring existant** : surveillance du reseau en place
|
||
|
|
|
||
|
|
Pas de Cloudflare, pas de Tailscale, pas de tiers. Coherent avec les valeurs
|
||
|
|
Talas (independance, transparence, controle total).
|
||
|
|
|
||
|
|
Configuration :
|
||
|
|
```
|
||
|
|
Internet → Fibre Orange → WireGuard/port forward → HAProxy (TLS + WAF) → services
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 6. Strategie marketing
|
||
|
|
|
||
|
|
### 6.1 Pourquoi le contenu anonyme fonctionne
|
||
|
|
|
||
|
|
Le format "createur anonyme qui montre ses mains/son atelier" est optimal pour
|
||
|
|
TikTok/Instagram Reels pour plusieurs raisons :
|
||
|
|
|
||
|
|
**Algorithmique** : TikTok favorise le contenu, pas le createur. Un compte sans
|
||
|
|
visage peut performer aussi bien qu'un influenceur etabli si le contenu est bon.
|
||
|
|
Les videos de craftsmanship (soudure, usinage, assemblage) performent bien dans
|
||
|
|
la categorie "satisfying" et "DIY".
|
||
|
|
|
||
|
|
**Narratif** : L'anonymat cree du mystere et de l'engagement. "Qui est derriere
|
||
|
|
Talas ?" est une question qui fait revenir les gens. C'est aussi coherent avec
|
||
|
|
la philosophie du projet : c'est le produit qui compte, pas la personne.
|
||
|
|
|
||
|
|
**Pratique** : Protege la vie privee du fondateur. Pas de pression de performance
|
||
|
|
personnelle. Possibilite de pivoter ou d'arreter sans consequences personnelles.
|
||
|
|
|
||
|
|
**Exemples de comptes anonymes qui fonctionnent** :
|
||
|
|
- Comptes de craftsmen/makers qui montrent uniquement les mains
|
||
|
|
- "I built X" sans visage
|
||
|
|
- Comptes d'atelier/workshop avec musique lo-fi
|
||
|
|
|
||
|
|
### 6.2 Calendrier de contenu
|
||
|
|
|
||
|
|
Defini dans `07_CONTENUS_MARKETING/STRATEGIE_CONTENU.md`.
|
||
|
|
4 types de contenu en rotation :
|
||
|
|
1. Atelier/fabrication (coeur, 3-4x/semaine)
|
||
|
|
2. Lifestyle/musique (authenticite, 2-3x/semaine)
|
||
|
|
3. Behind the scenes/entrepreneuriat (1-2x/semaine)
|
||
|
|
4. Educatif/technique (autorite, 1x/semaine)
|
||
|
|
|
||
|
|
### 6.3 Communautes cibles pour le lancement
|
||
|
|
|
||
|
|
| Plateforme | Communaute | Approche |
|
||
|
|
|-----------|-----------|----------|
|
||
|
|
| Reddit | r/audioengineering (1.4M) | Post technique, comparaison A/B, AMA |
|
||
|
|
| Reddit | r/WeAreTheMusicMakers (2.2M) | Annonce produit, demo |
|
||
|
|
| Reddit | r/homerecording (130K) | Guide + produit |
|
||
|
|
| Reddit | r/beatmaking, r/makinghiphop | Ciblage beatmakers |
|
||
|
|
| Reddit | r/OpenHardware | Aspect open-source, schemas publics |
|
||
|
|
| Facebook | Groupes "Home Studio France" | Annonce francophone |
|
||
|
|
| Facebook | Groupes beatmakers francophones | Ciblage direct |
|
||
|
|
| Discord | Serveurs production musicale | Presence communautaire |
|
||
|
|
| Gearspace | (ex-Gearslutz) forum audio pro | Credibilite technique |
|
||
|
|
| KVR Audio | Forum plugins/materiel | Public technique |
|
||
|
|
| SoundCloud | Communaute artistes independants | Cible directe |
|
||
|
|
|
||
|
|
### 6.4 Outils recommandes
|
||
|
|
|
||
|
|
| Usage | Outil | Cout |
|
||
|
|
|-------|-------|------|
|
||
|
|
| Montage video court | CapCut | Gratuit |
|
||
|
|
| Montage video long | DaVinci Resolve | Gratuit |
|
||
|
|
| Sous-titres | Auto-generes TikTok/CapCut | Gratuit |
|
||
|
|
| Planification posts | Later.com | Gratuit (< 30 posts/mois) |
|
||
|
|
| Collecte emails | Listmonk (self-hosted sur R720) | Gratuit |
|
||
|
|
| Design logo | Inkscape (vectoriel) | Gratuit |
|
||
|
|
| Maquettes UI | Figma ou Penpot | Gratuit |
|
||
|
|
| Photos produit | Smartphone + lumiere naturelle | Gratuit |
|
||
|
|
|
||
|
|
Listmonk est particulierement recommande : c'est un outil de newsletter
|
||
|
|
self-hosted open-source qui peut tourner sur les R720. Zero cout, zero
|
||
|
|
dependance a Mailchimp, coherent avec les valeurs Talas.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 7. Decisions prises et a prendre
|
||
|
|
|
||
|
|
### Decisions prises (21 mars 2026)
|
||
|
|
|
||
|
|
| Decision | Justification |
|
||
|
|
|----------|--------------|
|
||
|
|
| Structure en 14 dossiers thematiques | Taxonomie existante TALAS/ validee et peuplee |
|
||
|
|
| Archivage des app dans 13_ARCHIVES/ | Code vit dans un depot separe |
|
||
|
|
| Lancement ecosysteme en sequence | App prete, micro bientot, les deux ensemble sont la differenciation |
|
||
|
|
| Marketing anonyme TikTok/Insta | Coherent avec les valeurs, bon pour l'algorithme, protege la vie privee |
|
||
|
|
| Self-hosting sur R720 | Economie de 600+ EUR/mois, coherent avec les valeurs |
|
||
|
|
| ZFS mirror (pas RAIDZ2) | HDD d'occasion = resilver rapide critique |
|
||
|
|
| SSD pour PostgreSQL/Redis | I/O aleatoires requises |
|
||
|
|
| Micro-entreprise au demarrage | Zero cout, zero complexite, plafond CA suffisant |
|
||
|
|
| Full self-hosted (WireGuard + HAProxy + WAF) | Zero dependance cloud, coherent avec les valeurs |
|
||
|
|
|
||
|
|
### Decisions a prendre (non tranchees)
|
||
|
|
|
||
|
|
| Decision | Options | Elements de reflexion |
|
||
|
|
|----------|---------|----------------------|
|
||
|
|
| Nom du micro | "Talas One" ? Autre ? | Simple, reconnaissable, evoque le premier produit |
|
||
|
|
| Prix de vente | 120 / 150 / 180 EUR | Depend du cout reel mesure et de la validation marche |
|
||
|
|
| Nom de domaine | talas.audio / talas.fr / autre | Disponibilite a verifier |
|
||
|
|
| Source des capsules | Thomann t.bone / AliExpress / Transound | Qualite vs prix vs disponibilite |
|
||
|
|
| Duree de garantie commerciale | 5 / 10 / 15 ans | Differenciation vs risque financier |
|
||
|
|
| Couleur d'accent de la marque | Cuivre / orange / vert circuit / bleu | Doit evoquer l'atelier/le materiel |
|
||
|
|
| Depot de marque INPI | Maintenant / apres premieres ventes | 190 EUR, protege mais pas urgent |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Voir aussi
|
||
|
|
|
||
|
|
- [[00_META/TALAS_IDENTITE_PROJET]] — Document d'identite complet du projet
|
||
|
|
- [[01_PILOTAGE/CALENDRIER_GENERAL]] — Calendrier des phases de lancement
|
||
|
|
- [[01_PILOTAGE/ROADMAP_HARDWARE]] — Taches atelier detaillees
|
||
|
|
- [[01_PILOTAGE/ROADMAP_SOFTWARE_BUSINESS]] — Taches nomades detaillees
|
||
|
|
- [[01_PILOTAGE/PLAN_ACTION_LANCEMENT]] — Checklist de lancement
|
||
|
|
- [[02_PRODUITS_PHYSIQUES/Microphone/FICHE_PRODUIT]] — Fiche produit micro
|
||
|
|
- [[05_EXPERIENCE_UTILISATEUR/SUMI_V3_SPECIFICATION]] — Specification SUMI v3
|
||
|
|
- [[05_EXPERIENCE_UTILISATEUR/IDENTITE_VISUELLE]] — Brief identite visuelle
|
||
|
|
- [[07_CONTENUS_MARKETING/STRATEGIE_CONTENU]] — Strategie de contenu
|
||
|
|
- [[09_MODELE_ECONOMIQUE/ANALYSE_MARCHE]] — Analyse de marche detaillee
|
||
|
|
- [[09_MODELE_ECONOMIQUE/BUSINESS_PLAN_TALAS]] — Business plan
|
||
|
|
- [[08_CONFORMITE_JURIDIQUE/CHECKLIST_LEGALE]] — Checklist legale
|
||
|
|
- [[12_DOCUMENTATION/COMPTE_RENDU_SESSION_2026-03-21]] — Compte-rendu session du 21 mars
|
||
|
|
- [[12_DOCUMENTATION/INDEX_DOCUMENTATION]] — Index de la documentation
|