mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-11 17:26:45 +02:00
Configure docker-compose.yml and DOCKER.md to enable Nginx reverse proxy access by making the application and PostgreSQL available on the `nginx_default` external network. Replit-Commit-Author: Agent Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/MNNRXY7
4.4 KiB
4.4 KiB
Déploiement Docker - Social Flow
📋 Configuration
L'application utilise Docker Compose pour orchestrer :
- PostgreSQL 16 : Base de données sur réseau interne
- Social Flow App : Application Node.js exposée sur le port 4523
🚀 Démarrage rapide
1. Copier le fichier d'environnement
cp .env.example .env
2. Éditer les variables d'environnement
Modifiez .env avec vos valeurs :
# Base de données
PGDATABASE=socialflow
PGUSER=socialflow
PGPASSWORD=votre_mot_de_passe_securise
# Application
PORT=4523
SESSION_SECRET=votre_cle_secrete_aleatoire
# API OpenRouter (pour la génération IA)
OPENROUTER_API_KEY=votre_cle_openrouter
3. Lancer les conteneurs
# Démarrer en arrière-plan
docker-compose up -d
# Voir les logs
docker-compose logs -f
# Arrêter
docker-compose down
🌐 Accès à l'application
- Accès direct : http://localhost:4523
- Avec Nginx (reverse proxy) : Voir section ci-dessous
🔧 Architecture réseau
Réseau interne (internal)
- PostgreSQL et l'application communiquent sur ce réseau privé
Réseau nginx (nginx_default)
- Réseau externe pour le reverse proxy Nginx
- PostgreSQL et l'application sont sur ce réseau
- Permet l'accès via Nginx et un domaine personnalisé
📝 Configuration Nginx
Prérequis : Créer le réseau nginx
Avant de lancer docker-compose, créez le réseau nginx (une seule fois) :
docker network create nginx_default
Configuration Nginx
Mettez à jour votre configuration Nginx pour cibler le port 4523 :
upstream socialflow {
server socialflow-app:4523; # ← Utiliser le port 4523
}
server {
listen 80;
server_name votre-domaine.com;
location / {
proxy_pass http://socialflow;
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;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Important : Si vous n'utilisez pas Nginx, vous pouvez retirer le réseau nginx_default du docker-compose.yml.
🛠️ Commandes utiles
Reconstruire les images
docker-compose build --no-cache
docker-compose up -d
Voir les logs d'un service spécifique
docker-compose logs -f app # Application
docker-compose logs -f postgres # Base de données
Accéder au conteneur
docker-compose exec app sh # Shell de l'application
docker-compose exec postgres psql -U socialflow # PostgreSQL CLI
Nettoyer complètement
# Arrêter et supprimer les conteneurs, réseaux
docker-compose down
# Supprimer aussi les volumes (⚠️ PERTE DE DONNÉES)
docker-compose down -v
🔒 Sécurité en production
- Variables d'environnement : Ne commitez JAMAIS le fichier
.env - Mots de passe : Utilisez des mots de passe forts et aléatoires
- SESSION_SECRET : Générez une clé aléatoire de 32+ caractères
- Firewall : Limitez l'accès au port 4523 ou utilisez Nginx
- HTTPS : Configurez un certificat SSL (Let's Encrypt + Nginx)
📊 Healthchecks
- PostgreSQL : Vérifie que la base est prête avant de démarrer l'app
- Migrations : Exécutées automatiquement au démarrage (
drizzle-kit push --force)
🐛 Dépannage
L'application ne démarre pas
# Vérifier les logs
docker-compose logs app
# Vérifier que PostgreSQL est prêt
docker-compose exec postgres pg_isready -U socialflow
Port 4523 déjà utilisé
# Trouver le processus
sudo lsof -i :4523
# Ou changer le port dans .env et docker-compose.yml
Erreur de connexion à la base de données
Vérifiez que DATABASE_URL dans .env correspond aux variables PGUSER, PGPASSWORD, etc.
📦 Volumes Docker
postgres_data: Données persistantes de PostgreSQL- Mappages locaux :
./attached_assets→/app/attached_assets(médias uploadés)./migrations→/app/migrations(migrations DB)
🔄 Mise à jour de l'application
# 1. Pull les dernières modifications
git pull
# 2. Reconstruire l'image
docker-compose build
# 3. Redémarrer
docker-compose up -d
# 4. Vérifier les logs
docker-compose logs -f app