Files
AutonetSellCar/deploy-remote.sh
AutonetSellCar Deploy 1f0dcb1ddb Initial commit: AutonetSellCar platform with deployment system
- Frontend: Next.js 14 with TypeScript
- Backend: FastAPI with SQLAlchemy
- Agent: Carmodoo sync agent
- Deployment: Docker Compose based staging/production setup
- Scripts: Automated deployment with rollback support

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 13:24:39 +09:00

88 lines
2.9 KiB
Bash

#!/bin/bash
# AutonetSellCar Remote Deployment Script
# Use this script from the development server (server4) to manage deployments
#
# Usage:
# ./deploy-remote.sh push - Push to staging
# ./deploy-remote.sh promote - Promote staging to production
# ./deploy-remote.sh rollback - Rollback production
# ./deploy-remote.sh status - Check deployment status
SERVER="192.168.0.202"
USER="${DEPLOY_USER:-$(whoami)}" # Override with DEPLOY_USER env var if needed
case "$1" in
push)
echo "Pushing to staging server..."
git push staging main
;;
promote)
echo "Promoting staging to production..."
ssh "$USER@$SERVER" "/opt/autonet/scripts/deploy.sh promote"
;;
rollback)
echo "Rolling back production..."
ssh "$USER@$SERVER" "/opt/autonet/scripts/deploy.sh rollback"
;;
rollback-to)
if [ -z "$2" ]; then
echo "Usage: ./deploy-remote.sh rollback-to <release_timestamp>"
ssh "$USER@$SERVER" "ls -1 /opt/autonet/releases"
exit 1
fi
echo "Rolling back to $2..."
ssh "$USER@$SERVER" "/opt/autonet/scripts/deploy.sh rollback-to $2"
;;
status)
ssh "$USER@$SERVER" "/opt/autonet/scripts/deploy.sh status"
;;
logs-staging)
ssh "$USER@$SERVER" "docker logs -f autonet-backend-staging --tail=100"
;;
logs-prod)
ssh "$USER@$SERVER" "docker logs -f autonet-backend --tail=100"
;;
cleanup)
echo "Cleaning up old releases..."
ssh "$USER@$SERVER" "/opt/autonet/scripts/deploy.sh cleanup"
;;
setup)
echo "Copying setup script to server2..."
scp deploy/setup-server2.sh "$USER@$SERVER:/tmp/"
echo "Running setup script..."
ssh "$USER@$SERVER" "chmod +x /tmp/setup-server2.sh && /tmp/setup-server2.sh"
;;
*)
echo "AutonetSellCar Remote Deployment"
echo ""
echo "Usage: ./deploy-remote.sh <command>"
echo ""
echo "Commands:"
echo " setup Setup server2 infrastructure (run once)"
echo " push Push code to staging (auto-deploys)"
echo " promote Promote staging to production"
echo " rollback Rollback to previous release"
echo " rollback-to <ts> Rollback to specific release"
echo " status Show deployment status"
echo " logs-staging Show staging backend logs"
echo " logs-prod Show production backend logs"
echo " cleanup Remove old releases"
echo ""
echo "Quick Start:"
echo " 1. ./deploy-remote.sh setup # One-time server setup"
echo " 2. ./deploy-remote.sh push # Deploy to staging"
echo " 3. Test at http://192.168.0.202:3001"
echo " 4. ./deploy-remote.sh promote # Deploy to production"
echo ""
;;
esac