veza/veza-docs/docs/overview/index.mdx

322 lines
10 KiB
Text
Raw Normal View History

---
id: overview
title: Vue d'ensemble Veza Platform
sidebar_label: Vue d'ensemble
description: Plateforme de streaming audio et chat en temps réel - Architecture microservices moderne
keywords: [veza, platform, streaming, audio, chat, real-time, microservices]
---
# 🎵 Veza Platform - Vue d'ensemble
**Plateforme de streaming audio et chat en temps réel** construite avec une architecture microservices moderne.
## 🚀 Services Principaux
<div className="row">
<div className="col col--4">
<div className="card">
<div className="card__header">
<h3>🌐 Frontend Web</h3>
</div>
<div className="card__body">
<p>Application React 19 + TypeScript avec streaming audio, chat temps réel, et interface moderne.</p>
</div>
<div className="card__footer">
<a href="/docs/sectors/web" className="button button--primary button--block">
Voir la documentation
</a>
</div>
</div>
</div>
<div className="col col--4">
<div className="card">
<div className="card__header">
<h3>🔧 Backend API</h3>
</div>
<div className="card__body">
<p>API REST en Go avec Gin, gestion de l'authentification, base de données PostgreSQL et cache Redis.</p>
</div>
<div className="card__footer">
<a href="/docs/backend/go-api" className="button button--primary button--block">
Voir la documentation
</a>
</div>
</div>
</div>
<div className="col col--4">
<div className="card">
<div className="card__header">
<h3>💬 Chat Server</h3>
</div>
<div className="card__body">
<p>Serveur de chat en Rust avec WebSocket, gestion des messages en temps réel et modération automatique.</p>
</div>
<div className="card__footer">
<a href="/docs/backend/rust-chat" className="button button--primary button--block">
Voir la documentation
</a>
</div>
</div>
</div>
</div>
<div className="row">
<div className="col col--4">
<div className="card">
<div className="card__header">
<h3>🎵 Stream Server</h3>
</div>
<div className="card__body">
<p>Serveur de streaming audio en Rust avec compression adaptative, analytics et gestion des fichiers.</p>
</div>
<div className="card__footer">
<a href="/docs/backend/rust-stream" className="button button--primary button--block">
Voir la documentation
</a>
</div>
</div>
</div>
<div className="col col--4">
<div className="card">
<div className="card__header">
<h3>🛡️ Infrastructure</h3>
</div>
<div className="card__body">
<p>HAProxy + Coraza WAF, observabilité complète (Prometheus, Grafana, ELK), et sécurité avancée.</p>
</div>
<div className="card__footer">
<a href="/docs/infra/observability" className="button button--primary button--block">
Voir la documentation
</a>
</div>
</div>
</div>
<div className="col col--4">
<div className="card">
<div className="card__header">
<h3>📊 Monitoring</h3>
</div>
<div className="card__body">
<p>Stack complète d'observabilité avec métriques, logs, traces et alertes automatisées.</p>
</div>
<div className="card__footer">
<a href="/docs/infra/observability" className="button button--primary button--block">
Voir la documentation
</a>
</div>
</div>
</div>
</div>
## 🏗️ Architecture
Veza suit une **architecture microservices** moderne avec séparation claire des responsabilités, scalabilité horizontale et résilience intégrée.
```mermaid
flowchart TB
subgraph "Client Layer"
WEB[Web App<br/>React + TypeScript<br/>Port: 5176]
DESKTOP[Desktop App<br/>Electron<br/>Port: 3000]
MOBILE[Mobile App<br/>React Native<br/>Port: 8081]
end
subgraph "Edge Layer"
LB[Load Balancer<br/>HAProxy<br/>Port: 80/443]
WAF[WAF<br/>Coraza<br/>Security Layer]
end
subgraph "API Gateway"
GATEWAY[API Gateway<br/>Go + Gin<br/>Port: 8080]
end
subgraph "Microservices"
API[API Service<br/>Go + Gin<br/>Port: 8081]
CHAT[Chat Service<br/>Rust + Axum<br/>Port: 3001]
STREAM[Stream Service<br/>Rust + Axum<br/>Port: 3002]
AUTH[Auth Service<br/>Go + JWT<br/>Port: 8082]
end
subgraph "Data Layer"
PG[(PostgreSQL<br/>Primary Database<br/>Port: 5432)]
REDIS[(Redis<br/>Cache + Sessions<br/>Port: 6379)]
S3[(S3 Storage<br/>Audio Files<br/>AWS/MinIO)]
end
subgraph "Message Queue"
NATS[NATS<br/>Event Streaming<br/>Port: 4222]
end
subgraph "Observability"
PROM[Prometheus<br/>Metrics<br/>Port: 9090]
GRAF[Grafana<br/>Dashboards<br/>Port: 3000]
ELK[ELK Stack<br/>Logs<br/>Port: 9200]
end
WEB --> LB
DESKTOP --> LB
MOBILE --> LB
LB --> WAF
WAF --> GATEWAY
GATEWAY --> API
GATEWAY --> CHAT
GATEWAY --> STREAM
GATEWAY --> AUTH
API --> PG
API --> REDIS
API --> S3
CHAT --> REDIS
CHAT --> NATS
STREAM --> S3
STREAM --> NATS
AUTH --> PG
AUTH --> REDIS
PROM --> API
PROM --> CHAT
PROM --> STREAM
PROM --> AUTH
GRAF --> PROM
ELK --> API
ELK --> CHAT
ELK --> STREAM
```
## 📚 Sections de Documentation
### 🏗️ Architecture
- [Architecture Système](/docs/architecture/system) - Vue d'ensemble des microservices
- [Architecture des Données](/docs/architecture/data/er-diagram) - Modèle de données et relations
### 🌐 Sectors
- [Web Application](/docs/sectors/web) - React 19 + TypeScript + Vite
### 🔧 Backend Services
- [Go API Service](/docs/backend/go-api) - API REST principale
- [Rust Chat Server](/docs/backend/rust-chat) - Chat temps réel
- [Rust Stream Server](/docs/backend/rust-stream) - Streaming audio
### 🛡️ Infrastructure
- [Conteneurs](/docs/infra/containers) - Docker, Docker Compose, Kubernetes
- [Réseau](/docs/infra/networking) - HAProxy, Coraza, load balancing
- [Sécurité](/docs/infra/security) - WAF, authentification, autorisation
- [Observabilité](/docs/infra/observability) - Prometheus, Grafana, ELK, Jaeger
- [CI/CD](/docs/infra/ci-cd) - GitHub Actions, déploiement automatisé
### 🔧 SRE & QA
- [CI/CD](/docs/infra/ci-cd) - Déploiement automatisé et intégration continue
### 📖 API Reference
- [OpenAPI](/docs/api-reference/openapi) - Documentation interactive
### 📈 Product
- [Roadmap](/docs/product/roadmap) - Feuille de route produit
## 🛠️ Technologies Utilisées
| Service | Langage | Framework | Base de Données | Port |
|---------|---------|-----------|-----------------|------|
| Web App | TypeScript | React 19 + Vite | - | 5176 |
| Desktop App | TypeScript | Electron | - | 3000 |
| Mobile App | TypeScript | React Native | - | 8081 |
| Backend API | Go | Gin + GORM | PostgreSQL + Redis | 8081 |
| Chat Server | Rust | Axum + WebSocket | PostgreSQL + Redis | 3001 |
| Stream Server | Rust | Axum + Symphonia | S3 + Redis | 3002 |
| Auth Service | Go | JWT + bcrypt | PostgreSQL + Redis | 8082 |
| Load Balancer | - | HAProxy | - | 80/443 |
| WAF | - | Coraza | - | 80/443 |
| Monitoring | - | Prometheus + Grafana | - | 9090/3000 |
## 🚀 Démarrage Rapide
### Prérequis
- Docker et Docker Compose
- Node.js 18+
- Go 1.23+
- Rust 1.70+
### Installation
```bash
# Cloner le repository
git clone https://github.com/okinrev/veza-full-stack.git
cd veza-full-stack
# Démarrer avec Docker Compose
docker-compose up -d
# Ou développement local
make dev
```
### Accès aux Services
- **Frontend Web**: http://localhost:5176
- **Backend API**: http://localhost:8081
- **Chat Server**: http://localhost:3001
- **Stream Server**: http://localhost:3002
- **Grafana**: http://localhost:3000
- **Prometheus**: http://localhost:9090
## 📈 Fonctionnalités Principales
### 🎵 Streaming Audio
- **Formats Supportés**: MP3, AAC, OGG, FLAC, WAV
- **Qualité Adaptative**: Ajustement automatique selon la bande passante
- **Compression Intelligente**: Optimisation de la qualité et de la taille
- **Live Recording**: Enregistrement en direct avec gestion des métadonnées
- **Multi-utilisateurs**: Synchronisation temps réel
### 💬 Chat en Temps Réel
- **WebSocket**: Communication bidirectionnelle instantanée
- **Salons Privés**: Création et gestion de salons de discussion
- **Messages Privés**: Communication directe entre utilisateurs
- **Modération**: Filtrage automatique et outils de modération
- **Présence**: Indicateurs de présence et de frappe
### 🔐 Authentification & Sécurité
- **JWT Tokens**: Authentification stateless sécurisée
- **OAuth2**: Intégration avec Google, GitHub, Discord
- **Magic Links**: Authentification sans mot de passe
- **2FA**: Authentification à deux facteurs
- **Rate Limiting**: Protection contre les abus
- **WAF**: Protection contre les attaques web
### 📊 Analytics & Monitoring
- **Métriques Temps Réel**: Utilisateurs actifs, messages, streams
- **Health Checks**: Monitoring de la santé des services
- **Logs Structurés**: Traçabilité complète des opérations
- **Alertes**: Notifications automatiques en cas de problème
- **Dashboards**: Visualisation des métriques et KPIs
## 🤝 Contribution
Nous accueillons les contributions ! Consultez notre guide de contribution :
- [Guide de Développement](/docs/meta/contributing-docs)
- [Guide de Déploiement](/docs/infra/ci-cd)
- [Style Guide](/docs/meta/style-guide)
## 📞 Support
- **GitHub Issues**: [Signaler un bug](https://github.com/okinrev/veza-full-stack/issues)
- **Discussions**: [Forum communautaire](https://github.com/okinrev/veza-full-stack/discussions)
- **Documentation**: Cette documentation complète
---
<div className="alert alert--info">
<strong>💡 Conseil</strong> : Commencez par la section <a href="/docs/architecture/system">Architecture</a> pour comprendre l'ensemble du système, puis explorez les services qui vous intéressent.
</div>
<div className="alert alert--warning">
<strong>⚠️ Important</strong> : L'architecture évolue constamment. Consultez les dernières mises à jour dans la documentation des services individuels.
</div>