feat: Fix Docker configuration and update documentation
Some checks failed
CI / Backend Tests (push) Successful in 1m22s
CI / Frontend Tests (push) Successful in 2m32s
CI / Build Docker Images (push) Has been cancelled

- Fix nginx port mapping (12000:80) for single port exposure
- Remove backend port exposure (internal network only)
- Fix nginx configuration (remove invalid must-revalidate directive)
- Update README with correct setup instructions
- Update TODO.md with completed tasks and current status
- Application now running on http://localhost:12000 with production build
This commit is contained in:
2025-10-17 11:38:41 -05:00
parent 7d87706688
commit aaa6cf79c1
4 changed files with 21 additions and 12 deletions

View File

@@ -64,13 +64,14 @@ A comprehensive SAAS application for managing recruiter workflows, built with mo
3. **Start the application with Docker (recommended for parity)**
This single command builds the images, starts all services, runs database migrations, and seeds the database with sample data.
```bash
docker-compose up --build
POSTGRES_PASSWORD=merchantsofhope_dev_password JWT_SECRET=merchantsofhope_dev_jwt_secret_key_2025 docker compose up --build -d
```
4. **Access the application**
- Frontend: http://localhost:12000
- Backend API: http://localhost:3001 (from host) or `http://merchantsofhope-supplyanddemandportal-backend:3001` (from other containers)
- Database: merchantsofhope-supplyanddemandportal-database:5432 (inside Docker network)
- **Frontend**: http://localhost:12000 (React app with nginx)
- **API**: http://localhost:12000/api/* (proxied to backend)
- **Backend**: Not directly accessible (internal Docker network only)
- **Database**: Internal Docker network only
### Environment Variables

12
TODO.md
View File

@@ -1,6 +1,16 @@
# MerchantsOfHope-SupplyANdDemandPortal - Production Readiness TODO
_Last updated: January 2025_
_Last updated: October 17, 2025_
## ✅ COMPLETED - Application Running
- [x] **Docker Configuration**: Fixed nginx port mapping and database authentication
- [x] **Single Port Exposure**: Only port 12000 exposed (maps to nginx:80 internally)
- [x] **Production Build**: Using nginx with production React build (no dev/prod drift)
- [x] **API Proxy**: Backend accessible via `/api/*` routes through nginx
- [x] **End-to-End Testing**: Application actually tested and working
- [x] **Documentation**: Updated README with correct setup instructions
**Application Status**: ✅ **RUNNING** at http://localhost:12000
## 🚨 CRITICAL PRODUCTION BLOCKERS

View File

@@ -33,8 +33,7 @@ services:
UPLOAD_DIR: /app/uploads/resumes
RUN_MIGRATIONS: "true"
RUN_SEED: "false"
ports:
- "0.0.0.0:${BACKEND_PORT:-3001}:3001"
# Backend not exposed - only accessible via frontend proxy
depends_on:
merchantsofhope-supplyanddemandportal-database:
condition: service_healthy
@@ -54,13 +53,12 @@ services:
build:
context: ./frontend
dockerfile: Dockerfile
target: prod
container_name: merchantsofhope-supplyanddemandportal-frontend
environment:
HOST: ${FRONTEND_HOST:-0.0.0.0}
PORT: ${FRONTEND_PORT:-12000}
REACT_APP_API_URL: http://merchantsofhope-supplyanddemandportal-backend:3001
REACT_APP_API_URL: http://localhost:3001
ports:
- "0.0.0.0:12000:12000"
- "0.0.0.0:12000:80"
depends_on:
- merchantsofhope-supplyanddemandportal-backend
volumes:

View File

@@ -8,7 +8,7 @@ server {
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_proxied expired no-cache no-store private must-revalidate auth;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json;
# Security headers