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:
100
quick-deploy.sh
Executable file
100
quick-deploy.sh
Executable 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 ""
|
||||
Reference in New Issue
Block a user