Production deployment with Docker and full system fixes

- Added Docker support (Dockerfiles, docker-compose.yml)
- Fixed authentication and authorization (token storage, CORS, permissions)
- Fixed API response transformations for all modules
- Added production deployment scripts and guides
- Fixed frontend permission checks and module access
- Added database seeding script for production
- Complete documentation for deployment and configuration

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Talal Sharabi
2026-02-11 11:25:20 +04:00
parent 35daa52767
commit f31d71ff5a
52 changed files with 9359 additions and 1578 deletions

100
quick-deploy.sh Executable file
View File

@@ -0,0 +1,100 @@
#!/bin/bash
# Quick Deployment Script - Run from LOCAL machine
# This will upload files and deploy to the server automatically
set -e
SERVER_IP="37.60.249.71"
SERVER_USER="root"
APP_DIR="/opt/zerp"
echo "🚀 Starting Z.CRM Deployment to $SERVER_IP..."
# Upload files to server
echo "📤 Uploading files to server..."
rsync -avz --progress \
--exclude 'node_modules' \
--exclude '.git' \
--exclude '.next' \
--exclude 'dist' \
--exclude '*.log' \
--exclude '.DS_Store' \
./ $SERVER_USER@$SERVER_IP:$APP_DIR/
echo "📦 Files uploaded successfully!"
# SSH to server and run deployment
echo "🔨 Building and starting services on server..."
ssh $SERVER_USER@$SERVER_IP << 'ENDSSH'
cd /opt/zerp
# Install Docker if not present
if ! command -v docker &> /dev/null; then
echo "Installing Docker..."
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
systemctl enable docker
systemctl start docker
rm get-docker.sh
fi
# Install Docker Compose if not present
if ! command -v docker-compose &> /dev/null; then
echo "Installing Docker Compose..."
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
fi
# Create .env if it doesn't exist
if [ ! -f .env ]; then
echo "Creating .env file..."
cat > .env << 'EOF'
POSTGRES_PASSWORD=SecurePassword123!ChangeMe
JWT_SECRET=change-this-jwt-secret-to-something-secure-$(openssl rand -hex 32)
DOMAIN=zerp.atmata-group.com
EOF
echo "⚠️ WARNING: Please update the .env file with secure passwords!"
fi
# Stop existing containers
echo "Stopping existing containers..."
docker-compose down || true
# Build and start services
echo "Building and starting services..."
docker-compose up -d --build
# Wait for services to be ready
echo "Waiting for services to start..."
sleep 10
# Show status
echo "Checking service status..."
docker-compose ps
echo ""
echo "✅ Deployment complete!"
echo ""
echo "Services are running:"
echo " - Frontend: http://$SERVER_IP:3000"
echo " - Backend API: http://$SERVER_IP:5001"
echo " - Database: $SERVER_IP:5432"
echo ""
echo "View logs with:"
echo " docker-compose logs -f"
echo ""
echo "⚠️ IMPORTANT: Configure Nginx Proxy Manager to point zerp.atmata-group.com to port 3000"
ENDSSH
echo ""
echo "🎉 Deployment successful!"
echo ""
echo "📋 Next Steps:"
echo "1. SSH to server: ssh root@37.60.249.71"
echo "2. Update .env file: nano /opt/zerp/.env"
echo "3. Configure Nginx Proxy Manager:"
echo " - Domain: zerp.atmata-group.com"
echo " - Forward to: localhost:3000"
echo " - Enable SSL"
echo ""