From 8ea8ad808521afdece6f4a4bf0c2477832ed3c65 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Fri, 17 Oct 2025 13:09:32 +0000 Subject: [PATCH 1/2] Update application and database port configurations Adjusted Docker configuration, exposing PostgreSQL on port 4523 and the application on internal port 5555, with Nginx proxying requests to the application. Updated Dockerfile, docker-compose.yml, and DOCKER.md accordingly. 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/rBcOjHB --- .env.example | 4 ++-- DOCKER.md | 14 +++++++++----- Dockerfile | 6 +++--- docker-compose.yml | 12 ++++-------- replit.md | 2 +- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.env.example b/.env.example index 789188b..ff96c44 100644 --- a/.env.example +++ b/.env.example @@ -9,9 +9,9 @@ PGHOST=postgres DATABASE_URL=postgresql://socialflow:changeme@postgres:5432/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..3841583 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** (mappé vers 5432 interne) +- **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:5432` (port hôte 4523 → port container 5432) +- **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..c37c858 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,6 +6,8 @@ services: image: postgres:16-alpine container_name: socialflow-db restart: unless-stopped + ports: + - "4523:5432" environment: POSTGRES_DB: ${PGDATABASE:-socialflow} POSTGRES_USER: ${PGUSER:-socialflow} @@ -15,10 +17,6 @@ services: 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 +30,13 @@ services: dockerfile: Dockerfile container_name: socialflow-app restart: unless-stopped - ports: - - "4523:4523" environment: NODE_ENV: production - PORT: 4523 + PORT: 5555 DATABASE_URL: postgresql://${PGUSER:-socialflow}:${PGPASSWORD:-changeme}@postgres:5432/${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..a7049f4 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:5432 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. From 87d7287641bec74f5349302de2b12e01bbb471f9 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Fri, 17 Oct 2025 13:11:00 +0000 Subject: [PATCH 2/2] Update PostgreSQL port configuration for deployment Modify docker-compose.yml and DOCKER.md to map PostgreSQL host port 4523 to container port 4523, updating the DATABASE_URL environment variable accordingly. 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/rBcOjHB --- .env.example | 4 ++-- DOCKER.md | 4 ++-- docker-compose.yml | 5 +++-- replit.md | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.env.example b/.env.example index ff96c44..7110a84 100644 --- a/.env.example +++ b/.env.example @@ -2,11 +2,11 @@ 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=5555 diff --git a/DOCKER.md b/DOCKER.md index 3841583..e735565 100644 --- a/DOCKER.md +++ b/DOCKER.md @@ -47,7 +47,7 @@ docker-compose down ## 🌐 Accès -- **PostgreSQL** : Accessible sur le port **4523** (mappé vers 5432 interne) +- **PostgreSQL** : Accessible sur le port **4523** (interne et externe) - **Application** : Accessible via Nginx sur le réseau `nginx_default` ## 🔧 Architecture réseau @@ -61,7 +61,7 @@ docker-compose down - Permet l'accès via Nginx et un domaine personnalisé ### Ports exposés -- **PostgreSQL** : `4523:5432` (port hôte 4523 → port container 5432) +- **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 diff --git a/docker-compose.yml b/docker-compose.yml index c37c858..43f9f5a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,11 +7,12 @@ services: container_name: socialflow-db restart: unless-stopped ports: - - "4523:5432" + - "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: @@ -33,7 +34,7 @@ services: environment: NODE_ENV: production PORT: 5555 - DATABASE_URL: postgresql://${PGUSER:-socialflow}:${PGPASSWORD:-changeme}@postgres:5432/${PGDATABASE:-socialflow} + 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:5555} diff --git a/replit.md b/replit.md index a7049f4..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. PostgreSQL exposed on port 4523:5432 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. +- **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.