Files
Socialflow/INSTALLATION.md
T
michaelschal 306a038afb Improve database migration and application startup processes
Update Dockerfile to generate database migrations, compile a migration script, and adjust the CMD for application startup. Modify docker-compose.yml to comment out PostgreSQL port exposure for security and update the command to run the new migration script. Add dependencies and a new migration script (server/migrate.ts) to handle database schema changes. Update INSTALLATION.md to reflect changes in database access and security recommendations.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/ds3R7vP
2025-10-01 10:01:59 +00:00

176 lines
4.2 KiB
Markdown

# Installation de Social Flow sur un serveur privé
## Prérequis
- Docker et Docker Compose installés sur votre serveur
- Clé API OpenRouter (https://openrouter.ai/)
- (Optionnel) Tokens d'accès Facebook et Instagram
## Installation rapide
### 1. Cloner ou télécharger l'application
```bash
git clone <votre-repo> socialflow
cd socialflow
```
### 2. Configurer les variables d'environnement
Copiez le fichier d'exemple et modifiez les valeurs :
```bash
cp .env.example .env
nano .env # ou utilisez votre éditeur préféré
```
**Variables importantes à modifier :**
- `PGPASSWORD` : Changez le mot de passe de la base de données
- `SESSION_SECRET` : Générez une clé secrète aléatoire
- `OPENROUTER_API_KEY` : Votre clé API OpenRouter
- `APP_URL` : L'URL publique de votre application
### 3. Démarrer l'application
```bash
docker-compose up -d
```
L'application sera accessible sur `http://localhost:5000` (ou le port configuré).
### 4. Vérifier le statut
```bash
# Voir les logs
docker-compose logs -f app
# Vérifier que les containers sont démarrés
docker-compose ps
```
## Commandes utiles
### Arrêter l'application
```bash
docker-compose down
```
### Redémarrer l'application
```bash
docker-compose restart
```
### Voir les logs
```bash
# Logs de l'application
docker-compose logs -f app
# Logs de la base de données
docker-compose logs -f postgres
```
### Mettre à jour l'application
```bash
# Arrêter l'application
docker-compose down
# Récupérer les dernières modifications
git pull
# Reconstruire et redémarrer
docker-compose up -d --build
```
### Sauvegarder la base de données
```bash
docker exec socialflow-db pg_dump -U socialflow socialflow > backup.sql
```
### Restaurer la base de données
```bash
docker exec -i socialflow-db psql -U socialflow socialflow < backup.sql
```
## Configuration avancée
### Changer le port d'exposition
Modifiez le fichier `docker-compose.yml` :
```yaml
services:
app:
ports:
- "8080:5000" # Exposer sur le port 8080
```
### Utiliser un domaine personnalisé
1. Configurez votre reverse proxy (Nginx, Caddy, etc.)
2. Pointez vers `http://localhost:5000`
3. Mettez à jour `APP_URL` dans `.env`
### Exemple de configuration Nginx
```nginx
server {
listen 80;
server_name socialflow.votredomaine.com;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
```
## Résolution de problèmes
### L'application ne démarre pas
1. Vérifiez les logs : `docker-compose logs -f`
2. Assurez-vous que les ports ne sont pas déjà utilisés
3. Vérifiez que Docker a suffisamment de ressources
### Erreurs de base de données
1. Vérifiez que PostgreSQL est démarré : `docker-compose ps`
2. Vérifiez les credentials dans `.env`
3. Recréez la base si nécessaire : `docker-compose down -v && docker-compose up -d`
### Problèmes de performance
1. Augmentez les ressources Docker
2. Configurez un reverse proxy avec cache
3. Utilisez un stockage SSD pour les volumes
## Accès à la base de données PostgreSQL
Par défaut, le port PostgreSQL n'est **pas exposé** sur l'hôte pour des raisons de sécurité. Si vous avez besoin d'accéder à la base de données depuis votre machine locale (pour administration, backup, etc.), décommentez les lignes suivantes dans `docker-compose.yml` :
```yaml
# À décommenter si vous avez besoin d'accéder à la DB localement
ports:
- "${PGPORT:-5432}:5432"
```
**Attention :** N'exposez jamais le port PostgreSQL en production sur un serveur accessible depuis Internet.
## Sécurité
- Changez toujours `PGPASSWORD` et `SESSION_SECRET` avant le déploiement
- Utilisez HTTPS en production (avec Let's Encrypt par exemple)
- Configurez un firewall pour limiter l'accès aux ports
- N'exposez pas le port PostgreSQL (5432) sur Internet en production
- Mettez à jour régulièrement les images Docker
- Sauvegardez régulièrement votre base de données
## Support
Pour plus d'informations ou en cas de problème, consultez la documentation ou ouvrez une issue.