# 🎉 Z.CRM Deployment Successful! ## ✅ Deployment Status: COMPLETE Your Z.CRM application has been successfully deployed to your server! --- ## 🌐 Server Information | Item | Details | |------|---------| | **Server IP** | 37.60.249.71 | | **Domain** | zerp.atmata-group.com | | **SSH User** | root | | **Application Directory** | `/opt/zerp` | --- ## 🚀 Services Running | Service | Status | Port | URL | |---------|--------|------|-----| | **Frontend** | ✅ Running | 3000 | http://37.60.249.71:3000 | | **Backend API** | ✅ Running | 5001 | http://37.60.249.71:5001 | | **PostgreSQL Database** | ✅ Running | 5432 | localhost:5432 | --- ## 📋 CRITICAL: Configure Nginx Proxy Manager **You MUST configure Nginx Proxy Manager to make your application accessible via the domain.** ### Configuration Steps: 1. **Access your Nginx Proxy Manager** (usually at http://your-npm-ip:81) 2. **Add a new Proxy Host** with these settings: #### Details Tab: ``` Domain Names: zerp.atmata-group.com Scheme: http Forward Hostname/IP: localhost (or 37.60.249.71) Forward Port: 3000 ✓ Cache Assets ✓ Block Common Exploits ✓ Websockets Support ``` #### SSL Tab: ``` ✓ Request a new SSL Certificate (Let's Encrypt) ✓ Force SSL ✓ HTTP/2 Support ✓ HSTS Enabled Email: your-email@example.com ✓ I Agree to the Let's Encrypt Terms of Service ``` #### Advanced Tab (Optional - for API routing): ```nginx # If you want to access API directly via subdomain or path location /api { proxy_pass http://localhost:5001; 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; } ``` 3. **Save** and wait for SSL certificate to be issued 4. **Access your application** at: **https://zerp.atmata-group.com** --- ## 🔐 Security: Update Environment Variables **IMPORTANT:** The deployment created default environment variables. You MUST update them with secure values! ### SSH to your server: ```bash ssh root@37.60.249.71 ``` ### Edit the environment file: ```bash nano /opt/zerp/.env ``` ### Update these values: ```bash # Change this to a strong password POSTGRES_PASSWORD=YourVerySecurePassword123! # This was randomly generated but you can change it JWT_SECRET=your-super-secure-jwt-secret-here # Domain is already set DOMAIN=zerp.atmata-group.com ``` ### After updating, restart services: ```bash cd /opt/zerp docker-compose restart ``` --- ## 📊 Monitoring & Management ### View Service Status: ```bash cd /opt/zerp docker-compose ps ``` ### View Logs: ```bash # All services docker-compose logs -f # Specific service docker-compose logs -f frontend docker-compose logs -f backend docker-compose logs -f postgres ``` ### Restart Services: ```bash cd /opt/zerp docker-compose restart ``` ### Stop Services: ```bash docker-compose down ``` ### Update Application (after making changes): ```bash # From your local machine cd /Users/talalsharabi/z_crm ./quick-deploy.sh # Or manually rsync -avz --exclude 'node_modules' --exclude '.git' \ ./ root@37.60.249.71:/opt/zerp/ # Then on server ssh root@37.60.249.71 cd /opt/zerp docker-compose down docker-compose up -d --build ``` --- ## 🗄️ Database Management ### Access Database: ```bash docker-compose exec postgres psql -U postgres mind14_crm ``` ### Backup Database: ```bash docker-compose exec postgres pg_dump -U postgres mind14_crm > backup_$(date +%Y%m%d).sql ``` ### Restore Database: ```bash docker-compose exec -T postgres psql -U postgres mind14_crm < backup_20240101.sql ``` ### Run Migrations: ```bash docker-compose exec backend npx prisma migrate deploy ``` --- ## 🔥 Firewall Configuration (Recommended) Secure your server by only allowing necessary ports: ```bash # SSH to server ssh root@37.60.249.71 # Configure firewall ufw allow 22/tcp # SSH ufw allow 80/tcp # HTTP ufw allow 443/tcp # HTTPS ufw enable # Verify ufw status ``` --- ## ⚠️ Troubleshooting ### Frontend Can't Connect to Backend 1. Check backend logs: `docker-compose logs backend` 2. Verify backend is running: `docker-compose ps` 3. Check CORS settings in backend ### Database Connection Issues 1. Check postgres logs: `docker-compose logs postgres` 2. Verify DATABASE_URL in backend container 3. Ensure postgres is healthy ### Port Already in Use ```bash # Find process using port netstat -tulpn | grep :3000 # Kill process kill -9 ``` ### Reset Everything ```bash cd /opt/zerp docker-compose down -v # WARNING: This deletes all data! docker-compose up -d --build ``` --- ## 📞 Default Login Credentials After deployment, you need to seed the database with initial user: ```bash # SSH to server ssh root@37.60.249.71 # Run seed command cd /opt/zerp docker-compose exec backend npx prisma db seed ``` **Default admin credentials will be shown in the seed output.** --- ## ✨ Next Steps 1. ✅ Configure Nginx Proxy Manager (see above) 2. ✅ Update `.env` file with secure passwords 3. ✅ Configure firewall 4. ✅ Seed database with initial data 5. ✅ Test application at https://zerp.atmata-group.com 6. ✅ Set up regular database backups 7. ✅ Configure monitoring/alerts (optional) --- ## 🎯 Port Summary for Nginx Proxy Manager **Main Configuration:** - **Point domain `zerp.atmata-group.com` to port `3000`** That's it! The frontend on port 3000 will automatically proxy API requests to the backend on port 5001. --- ## 📁 Project Structure on Server ``` /opt/zerp/ ├── backend/ # Backend API ├── frontend/ # Frontend Next.js app ├── docker-compose.yml # Docker services configuration ├── .env # Environment variables (UPDATE THIS!) └── ... other files ``` --- ## 🆘 Need Help? 1. Check logs: `docker-compose logs -f` 2. Check service status: `docker-compose ps` 3. Restart services: `docker-compose restart` 4. Review this documentation 5. Check the main DEPLOYMENT_GUIDE.md for detailed instructions --- ## 🎉 Congratulations! Your Z.CRM system is now deployed and ready to use! **Remember to:** - ✅ Configure Nginx Proxy Manager - ✅ Update environment variables - ✅ Secure your server with firewall rules - ✅ Test the application thoroughly - ✅ Set up regular backups --- **Deployment Date:** February 9, 2026 **Server:** 37.60.249.71 **Domain:** zerp.atmata-group.com