@@ -15,8 +15,8 @@ echo "🚀 Starting deployment process..."
1515# Create necessary directories
1616sudo mkdir -p $RELEASES_DIR
1717sudo mkdir -p $BACKUP_DIR
18- sudo chown -R ubuntu:ubuntu $APP_DIR
19- sudo chown -R ubuntu:ubuntu $BACKUP_DIR
18+ sudo chown -R ${USER} : ${USER} $APP_DIR
19+ sudo chown -R ${USER} : ${USER} $BACKUP_DIR
2020
2121# Create new release directory
2222mkdir -p $NEW_RELEASE_DIR
@@ -31,23 +31,24 @@ tar -xzf /tmp/deployment.tar.gz -C $NEW_RELEASE_DIR
3131echo " 📋 Installing dependencies..."
3232# Install only production dependencies
3333cd $NEW_RELEASE_DIR
34- npm ci --only=production
34+ npm ci --omit=dev
3535
3636echo " 🔄 Managing application process..."
3737
38- # Check if the service is already running
38+ # Symlink the new release to current BEFORE managing PM2
39+ ln -nfs $NEW_RELEASE_DIR $CURRENT_RELEASE_DIR
40+
41+ # Manage PM2 with stable path pointing at current symlink
3942if pm2 list | grep -q $SERVICE_NAME ; then
4043 echo " 🔄 Reloading application with PM2 for zero-downtime deployment..."
41- pm2 reload $SERVICE_NAME
44+ pm2 reload $SERVICE_NAME --update-env
4245else
4346 echo " 🚀 Starting application with PM2..."
44- # Set production environment
4547 export NODE_ENV=production
4648 export PORT=3000
4749 export HOST=0.0.0.0
4850 export DEPLOYMENT_TIME=$( date -u +" %Y-%m-%dT%H:%M:%S.000Z" )
49-
50- pm2 start $NEW_RELEASE_DIR /src/server.js --name $SERVICE_NAME --env production
51+ pm2 start $CURRENT_RELEASE_DIR /src/server.js --name $SERVICE_NAME --env production
5152fi
5253
5354# Create a backup of the previous release
@@ -60,14 +61,13 @@ if [ -L "$CURRENT_RELEASE_DIR" ]; then
6061 fi
6162fi
6263
63- # Symlink the new release to current
64- ln -nfs $NEW_RELEASE_DIR $CURRENT_RELEASE_DIR
64+ # Symlink already updated above
6565
6666# Save PM2 configuration
6767pm2 save
6868
6969# Setup PM2 to start on system boot
70- pm2 startup ubuntu -u ubuntu --hp /home/ubuntu || echo " PM2 startup already configured"
70+ pm2 startup || echo " PM2 startup already configured"
7171
7272echo " 🔍 Performing health check..."
7373# Wait for application to start
0 commit comments