Files
Socialflow/README.md
T
Claude 25703abb7d Image Docker, CI et docs pour le serveur Rust
Image en trois étapes (frontend Vite, binaire Rust, Debian slim avec
FFmpeg), healthcheck /healthz, dépendances npm propres à l'ancien
serveur retirées, CI Rust (fmt, clippy, tests) et documentation de la
mise à jour au prochain démarrage de la stack.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013qMexTfVRaegbPAgsagCAJ
2026-10-12 17:20:38 +00:00

238 lines
9.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 Socialflow
**Votre assistant intelligent pour dominer les réseaux sociaux.**
Socialflow est une application tout-en-un conçue pour automatiser, créer et analyser votre contenu sur **Facebook** et **Instagram**. Plus besoin de jongler entre plusieurs outils : tout est là, centralisé et simplifié.
---
## ✨ Fonctionnalités
### 📊 Tableau de Bord Unifié
Vue d'ensemble immédiate de votre activité. Statistiques clés, publications récentes, et suivi de progression des Reels en cours — le tout sur un seul écran.
- **Cartes statistiques** : Followers, publications programmées, Reels en cours
- **Publications récentes** : Historique avec statuts de publication
- **Actions rapides** : Accès direct à la création de contenu
- **Suivi en temps réel** : Progression des Reels (Encodage → Upload → Publication)
![Tableau de Bord](docs/screenshots/dashboard-preview.png)
---
### 🎬 Création de Reels par IA
Créez des vidéos virales en quelques clics sans aucune compétence en montage.
- **Montage automatique** : Transformez vos images et vidéos en Reels dynamiques via FFmpeg
- **Voix-off IA** : Narration professionnelle générée automatiquement
- **Sous-titres automatiques** : Synchronisés avec la voix-off, personnalisables (police, couleur, taille)
- **Musique libre de droits** : Intégration **FreeSound** et **Jamendo** pour des milliers de pistes
- **Hébergement Cloudinary** : Upload automatique vers le cloud pour une diffusion rapide
- **Webcam & Caméra** : Enregistrement intégré directement depuis l'application
![Création de Reel](docs/screenshots/reel-creation.png)
---
### ✍️ Création de Posts Multi-Plateformes
Composez vos publications pour Facebook et Instagram depuis une interface unifiée.
- **Éditeur riche** : Gestion complète des médias (images, vidéos), emojis, et texte
- **Drag & Drop** : Réorganisez vos médias avec le glisser-déposer
- **Génération IA** : Génération de textes (légendes, hashtags) via **OpenRouter** avec choix du modèle IA
- **Multi-pages** : Publiez sur plusieurs pages Facebook/Instagram simultanément
- **Publication immédiate ou programmée** : Planifiez pour plus tard ou publiez maintenant
---
### 🖼️ Éditeur d'Images Intégré
Retouchez vos visuels sans quitter l'application.
- **Textes & annotations** : Ajout de titres, légendes, watermarks
- **Overlays** : Superposition de logos et éléments graphiques
- **Recadrage intelligent** : Optimisé pour les formats réseaux sociaux
- **Export direct** : Réutilisation immédiate dans vos posts et Reels
---
### 📅 Planification & Calendrier
Organisez votre stratégie de contenu sur semaines et mois.
- **Vue calendrier** : Visualisez toutes vos publications planifiées
- **Vue liste** : Accès chronologique avec filtres
- **Drag & Drop** : Réorganisez les dates de publication en les déplaçant
- **Publication automatique** : Le scheduler publie automatiquement aux horaires prévus
- **Édition en ligne** : Modifiez les posts planifiés directement
---
### 📈 Analytics & Statistiques
Suivez la croissance de vos pages avec des données actualisées automatiquement.
- **4 métriques clés** : Abonnés, Portée (impressions uniques), Engagement, Vues de page
- **Graphique d'évolution** : Courbe de croissance jour par jour
- **Tendances** : Comparaison avec la période précédente (variation en %)
- **Synchronisation automatique** : CRON bi-quotidien (8h & 20h), une entrée par jour
- **Connexion Graph API** : Données directes depuis Facebook
---
### 📱 Mobile First
L'application est conçue pour fonctionner aussi bien sur mobile que sur desktop.
- **Interface adaptative** : Chaque page possède sa version mobile dédiée
- **Création mobile** : Posts, Reels, et planification accessibles depuis le téléphone
- **Caméra intégrée** : Enregistrement photo/vidéo via la webcam du téléphone
- **Gestion complète** : Pages, analytics, médias, et paramètres depuis n'importe quel écran
---
### �️ Sécurité & Administration
Architecture Production-Ready avec sécurité renforcée.
| Fonctionnalité | Détail |
| ------------------------------- | ---------------------------------------------------- |
| **Authentification** | bcrypt, sessions PostgreSQL (cookie signé) |
| **Rate Limiting** | 1000 req/15min global, 30 tentatives login/15min |
| **Headers de sécurité** | CSP, HSTS, X-Frame-Options, nosniff… |
| **Chiffrement des tokens** | Tokens Facebook/Instagram chiffrés (AES-256) |
| **Gestion multi-utilisateurs** | Rôles Admin / User, permissions par page |
| **Console SQL** | Requêtes directes en base (admin uniquement) |
| **Auto-healing tokens** | Détection et renouvellement automatique des tokens |
| **CRON jobs** | Vérification quotidienne des tokens + analytics |
---
## 🏗️ Architecture Technique
```
socialflow/
├── client/ # Frontend React (Vite + TailwindCSS)
│ └── src/
│ ├── pages/ # Pages desktop + mobile
│ ├── components/ # Composants UI (Radix/shadcn)
│ └── remotion/ # Compositions vidéo des Reels (aperçu + rendu)
├── server/ # Backend Rust (axum + sqlx)
│ ├── Cargo.toml
│ └── src/
│ ├── main.rs # Démarrage : migrations, routes, tâches de fond
│ ├── migrate.rs # Schéma PostgreSQL, mis à jour au démarrage
│ ├── auth.rs # Sessions (cookie connect.sid) et rôles
│ ├── db/ # Accès aux données
│ ├── routes/ # API REST (/api, /api/v1 externe, pages légales)
│ └── services/ # Facebook, TikTok, OpenRouter, Reels, scheduler, crons
├── shared/ # Types et logique partagés par le frontend
├── remotion-service/ # Rendu des Reels avec Remotion (Node + Chrome)
├── ffmpeg-service/ # Microservice FFmpeg (Python/FastAPI)
├── qwen-tts/ # Voix Qwen3-TTS (optionnel)
├── docker-compose.yml # Stack Docker
└── Dockerfile # Image de l'application (Rust + frontend compilé)
```
### Stack Technique
| Couche | Technologies |
| ---------- | --------------------------------------------------------------------------- |
| **Frontend** | React 18, Vite, TailwindCSS, Radix UI, Recharts, Wouter |
| **Backend** | Rust : axum, tokio, sqlx, reqwest |
| **BDD** | PostgreSQL 16 (schéma créé et migré automatiquement au démarrage) |
| **IA** | OpenRouter (multi-modèle : GPT-4, Claude, Gemini, etc.) |
| **Médias** | Stockage local, FFmpeg (vignettes, microservice vidéo), Remotion (Reels) |
| **Réseaux** | Facebook Graph API (Pages, Instagram, Insights), TikTok Content Posting |
| **Infra** | Docker Compose, Nginx reverse proxy |
### Mise à jour
L'image de l'application est construite à partir des sources (`pull_policy: build`).
Après un `git pull`, le prochain démarrage de la stack reconstruit l'image et
applique la nouvelle version :
```bash
git pull
docker compose up -d --build
```
Au démarrage, le serveur met le schéma de la base à jour tout seul (aucune
commande de migration à lancer). Les données, les médias, la clé de chiffrement
et les sessions ouvertes sont conservés.
---
## 🚀 Installation Rapide
### Prérequis
- [Docker](https://www.docker.com/) & Docker Compose
- Pour le développement local : [Rust](https://rustup.rs/) (stable), [Node.js](https://nodejs.org/) 20+ et PostgreSQL
### 1. Récupérer l'application
```bash
git clone https://github.com/R0m1k3/Socialflow.git
cd socialflow
```
### 2. Configurer l'environnement
```bash
cp .env.example .env
# Éditez .env avec vos clés API
```
Variables essentielles :
```env
# Base de données
DATABASE_URL=postgresql://socialflow:changeme@postgres:4523/socialflow
# Session (OBLIGATOIRE en production) — openssl rand -hex 32
SESSION_SECRET=votre-cle-secrete-ici
ENCRYPTION_KEY=votre-cle-chiffrement-32-bytes
# IA — https://openrouter.ai/
OPENROUTER_API_KEY=votre-cle-openrouter
# Réseaux Sociaux (optionnel, configurable depuis les Paramètres)
FACEBOOK_APP_ID=...
FACEBOOK_APP_SECRET=...
```
### 3. Lancer
```bash
# Production (Docker)
docker compose up -d --build
# Développement local (deux terminaux)
npm install
DATABASE_URL=postgresql://... npm run dev:server # API Rust sur le port 5000
npm run dev # Frontend Vite, relaie /api vers le port 5000
```
🚀 Rendez-vous sur **`http://localhost:5555`** pour commencer !
> **Premier lancement** : Un compte admin est créé automatiquement (`admin` / `admin`). Changez le mot de passe immédiatement dans les Paramètres.
---
## 📖 Documentation Détaillée
Consultez le [Guide d'Installation Complet](INSTALLATION.md) pour :
- Configuration Nginx reverse proxy
- Certificats SSL (Let's Encrypt)
- Configuration Cloudinary et FreeSound
- Mise à jour et sauvegardes
---
*Fait avec ❤️ pour les créateurs de contenu.*