diff --git a/.env.example b/.env.example index 789188b..7110a84 100644 --- a/.env.example +++ b/.env.example @@ -2,16 +2,16 @@ PGDATABASE=socialflow PGUSER=socialflow PGPASSWORD=changeme -PGPORT=5432 +PGPORT=4523 PGHOST=postgres # URL de connexion complète (générée automatiquement dans Docker) -DATABASE_URL=postgresql://socialflow:changeme@postgres:5432/socialflow +DATABASE_URL=postgresql://socialflow:changeme@postgres:4523/socialflow # Configuration de l'application -PORT=4523 +PORT=5555 NODE_ENV=production -APP_URL=http://localhost:4523 +APP_URL=http://localhost:5555 # Clé secrète pour les sessions (CHANGEZ CETTE VALEUR) SESSION_SECRET=your-secret-key-change-me-to-random-string diff --git a/DOCKER.md b/DOCKER.md index bcb3291..e735565 100644 --- a/DOCKER.md +++ b/DOCKER.md @@ -45,10 +45,10 @@ docker-compose logs -f docker-compose down ``` -## 🌐 Accès à l'application +## 🌐 Accès -- **Accès direct** : http://localhost:4523 -- **Avec Nginx** (reverse proxy) : Voir section ci-dessous +- **PostgreSQL** : Accessible sur le port **4523** (interne et externe) +- **Application** : Accessible via Nginx sur le réseau `nginx_default` ## 🔧 Architecture réseau @@ -60,6 +60,10 @@ docker-compose down - PostgreSQL et l'application sont sur ce réseau - Permet l'accès via Nginx et un domaine personnalisé +### Ports exposés +- **PostgreSQL** : `4523:4523` (port hôte 4523 → port container 4523) +- **Application** : Port 5555 interne (non exposé sur l'hôte, accessible via Nginx) + ## 📝 Configuration Nginx ### Prérequis : Créer le réseau nginx @@ -72,11 +76,11 @@ docker network create nginx_default ### Configuration Nginx -Mettez à jour votre configuration Nginx pour cibler le port **4523** : +Configurez Nginx pour cibler l'application sur le port **5555** : ```nginx upstream socialflow { - server socialflow-app:4523; # ← Utiliser le port 4523 + server socialflow-app:5555; # ← Port interne de l'application } server { diff --git a/Dockerfile b/Dockerfile index cb4ef01..40456fd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,12 +34,12 @@ RUN npm run build # Nettoyer les fichiers inutiles pour réduire la taille RUN rm -rf client node_modules/.cache -# Exposer le port de l'application (défini par ENV PORT) -EXPOSE 4523 +# Exposer le port de l'application +EXPOSE 5555 # Variables d'environnement par défaut ENV NODE_ENV=production -ENV PORT=4523 +ENV PORT=5555 # Démarrer l'application CMD ["npm", "run", "start"] diff --git a/docker-compose.yml b/docker-compose.yml index 88ecb63..43f9f5a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,19 +6,18 @@ services: image: postgres:16-alpine container_name: socialflow-db restart: unless-stopped + ports: + - "4523:4523" environment: POSTGRES_DB: ${PGDATABASE:-socialflow} POSTGRES_USER: ${PGUSER:-socialflow} POSTGRES_PASSWORD: ${PGPASSWORD:-changeme} + PGPORT: 4523 volumes: - postgres_data:/var/lib/postgresql/data networks: - internal - nginx_default - # Port non exposé sur l'hôte pour plus de sécurité en production - # Décommentez la ligne suivante si vous avez besoin d'accéder à la DB localement - # ports: - # - "${PGPORT:-5432}:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${PGUSER:-socialflow}"] interval: 10s @@ -32,15 +31,13 @@ services: dockerfile: Dockerfile container_name: socialflow-app restart: unless-stopped - ports: - - "4523:4523" environment: NODE_ENV: production - PORT: 4523 - DATABASE_URL: postgresql://${PGUSER:-socialflow}:${PGPASSWORD:-changeme}@postgres:5432/${PGDATABASE:-socialflow} + PORT: 5555 + DATABASE_URL: postgresql://${PGUSER:-socialflow}:${PGPASSWORD:-changeme}@postgres:4523/${PGDATABASE:-socialflow} OPENROUTER_API_KEY: ${OPENROUTER_API_KEY} SESSION_SECRET: ${SESSION_SECRET:-your-secret-key-change-me} - APP_URL: ${APP_URL:-http://localhost:4523} + APP_URL: ${APP_URL:-http://localhost:5555} networks: - internal - nginx_default diff --git a/replit.md b/replit.md index 82f03e3..0e1d70e 100644 --- a/replit.md +++ b/replit.md @@ -11,7 +11,7 @@ Preferred communication style: Simple, everyday language. ## Recent Changes ### October 17, 2025 -- **Docker Deployment Configuration**: Configured Docker Compose for private server deployment with PostgreSQL and application on same network. Application exposed on port 4523:4523 as requested. PostgreSQL and app communicate via internal Docker network and are both on nginx_default external network for reverse proxy access. Updated Dockerfile to use port 4523. Created comprehensive DOCKER.md documentation with setup instructions, network architecture explanation, and troubleshooting guide. +- **Docker Deployment Configuration**: Configured Docker Compose for private server deployment with PostgreSQL and application on same network. PostgreSQL exposed on port 4523:4523 for external access. Application runs on internal port 5555 (accessible via Nginx reverse proxy). Both PostgreSQL and app are on nginx_default external network and internal network for communication. Created comprehensive DOCKER.md documentation with setup instructions, network architecture explanation, and troubleshooting guide. ### October 14, 2025 - **Publication History Error Display Fix**: Fixed bug where publication history incorrectly displayed persistent errors for posts that failed initially but succeeded on retry. Problem: When a post failed, the `error` field was populated, but when the post was successfully republished, only `publishedAt` and `externalPostId` were updated without clearing the `error` field. Solution: Modified `schedulerService.publishPost()` to set `error: null` when publication succeeds, ensuring error messages are cleared from the history view after successful republication.