Update LittleShop configuration and deployment files
- Modified CLAUDE.md documentation - Updated Dockerfile configuration - Updated Program.cs and production settings - Added deployment scripts for Hostinger - Added Hostinger environment configuration 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
141
deploy-with-password.sh
Executable file
141
deploy-with-password.sh
Executable file
@@ -0,0 +1,141 @@
|
||||
#!/bin/bash
|
||||
|
||||
# LittleShop Deployment Script for Hostinger VPS with Password Support
|
||||
# Usage: ./deploy-with-password.sh
|
||||
|
||||
set -e # Exit on any error
|
||||
|
||||
# Configuration
|
||||
HOSTINGER_HOST="31.97.57.205"
|
||||
HOSTINGER_PORT="2255"
|
||||
HOSTINGER_USER="sysadmin"
|
||||
SSH_KEY="./Hostinger/vps_hardening_key"
|
||||
REMOTE_DIR="/opt/littleshop"
|
||||
SERVICE_NAME="littleshop"
|
||||
PASSWORD="Phenom12#."
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Logging function
|
||||
log() {
|
||||
echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')] $1${NC}"
|
||||
}
|
||||
|
||||
warn() {
|
||||
echo -e "${YELLOW}[$(date +'%Y-%m-%d %H:%M:%S')] WARNING: $1${NC}"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo -e "${RED}[$(date +'%Y-%m-%d %H:%M:%S')] ERROR: $1${NC}"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Check if SSH key exists
|
||||
if [ ! -f "$SSH_KEY" ]; then
|
||||
error "SSH key not found at $SSH_KEY"
|
||||
fi
|
||||
|
||||
# Check if required files exist
|
||||
if [ ! -f "hostinger-docker-compose.yml" ]; then
|
||||
error "hostinger-docker-compose.yml not found"
|
||||
fi
|
||||
|
||||
if [ ! -f "env.hostinger" ]; then
|
||||
warn "env.hostinger not found - you'll need to configure environment variables manually"
|
||||
fi
|
||||
|
||||
log "Starting deployment to Hostinger VPS..."
|
||||
|
||||
# Test SSH connection
|
||||
log "Testing SSH connection..."
|
||||
ssh -i "$SSH_KEY" -p "$HOSTINGER_PORT" -o ConnectTimeout=10 "$HOSTINGER_USER@$HOSTINGER_HOST" "echo 'SSH connection successful'" || error "SSH connection failed"
|
||||
|
||||
# Create remote directory with sshpass for sudo
|
||||
log "Creating remote directory structure..."
|
||||
sshpass -p "$PASSWORD" ssh -i "$SSH_KEY" -p "$HOSTINGER_PORT" "$HOSTINGER_USER@$HOSTINGER_HOST" "echo '$PASSWORD' | sudo -S mkdir -p $REMOTE_DIR && echo '$PASSWORD' | sudo -S chown $HOSTINGER_USER:$HOSTINGER_USER $REMOTE_DIR"
|
||||
|
||||
# Copy files to server
|
||||
log "Copying application files..."
|
||||
scp -i "$SSH_KEY" -P "$HOSTINGER_PORT" -r LittleShop/ "$HOSTINGER_USER@$HOSTINGER_HOST:$REMOTE_DIR/"
|
||||
scp -i "$SSH_KEY" -P "$HOSTINGER_PORT" hostinger-docker-compose.yml "$HOSTINGER_USER@$HOSTINGER_HOST:$REMOTE_DIR/docker-compose.yml"
|
||||
scp -i "$SSH_KEY" -P "$HOSTINGER_PORT" nginx.conf "$HOSTINGER_USER@$HOSTINGER_HOST:$REMOTE_DIR/"
|
||||
scp -i "$SSH_KEY" -P "$HOSTINGER_PORT" Dockerfile "$HOSTINGER_USER@$HOSTINGER_HOST:$REMOTE_DIR/"
|
||||
|
||||
# Copy environment file if it exists
|
||||
if [ -f "env.hostinger" ]; then
|
||||
log "Copying environment configuration..."
|
||||
scp -i "$SSH_KEY" -P "$HOSTINGER_PORT" env.hostinger "$HOSTINGER_USER@$HOSTINGER_HOST:$REMOTE_DIR/.env"
|
||||
fi
|
||||
|
||||
# Deploy on remote server
|
||||
log "Building and starting containers on remote server..."
|
||||
ssh -i "$SSH_KEY" -p "$HOSTINGER_PORT" "$HOSTINGER_USER@$HOSTINGER_HOST" << 'EOF'
|
||||
cd /opt/littleshop
|
||||
|
||||
# Stop existing containers if running
|
||||
if docker-compose ps 2>/dev/null | grep -q "littleshop"; then
|
||||
echo "Stopping existing containers..."
|
||||
docker-compose down
|
||||
fi
|
||||
|
||||
# Build and start new containers
|
||||
echo "Building Docker image..."
|
||||
docker-compose build --no-cache
|
||||
|
||||
echo "Starting containers..."
|
||||
docker-compose up -d
|
||||
|
||||
# Wait for container to be ready
|
||||
echo "Waiting for application to start..."
|
||||
sleep 10
|
||||
|
||||
# Check if container is running
|
||||
if docker-compose ps | grep -q "Up"; then
|
||||
echo "✅ Deployment successful!"
|
||||
echo "Container status:"
|
||||
docker-compose ps
|
||||
echo ""
|
||||
echo "Checking application health..."
|
||||
|
||||
# Try to curl the health endpoint
|
||||
if curl -f http://localhost:8081/api/test > /dev/null 2>&1; then
|
||||
echo "✅ Application is responding on port 8081"
|
||||
else
|
||||
echo "⚠️ Application may still be starting up"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "📝 Checking recent logs:"
|
||||
docker-compose logs --tail=20 littleshop
|
||||
|
||||
echo ""
|
||||
echo "📝 Next steps:"
|
||||
echo "1. Configure your domain to point to this server"
|
||||
echo "2. Set up SSL certificates if needed"
|
||||
echo "3. Configure BTCPay Server integration"
|
||||
echo "4. Test the application at https://admin.thebankofdebbie.giize.com"
|
||||
else
|
||||
echo "❌ Deployment failed - containers not running"
|
||||
docker-compose logs
|
||||
exit 1
|
||||
fi
|
||||
EOF
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
log "🎉 Deployment completed successfully!"
|
||||
log "Application should be available at:"
|
||||
log " - http://$HOSTINGER_HOST:8081 (direct access)"
|
||||
log " - https://admin.thebankofdebbie.giize.com (via nginx proxy)"
|
||||
log ""
|
||||
log "📋 Post-deployment checklist:"
|
||||
log "1. Verify the application is accessible"
|
||||
log "2. Check that CORS is working properly"
|
||||
log "3. Test admin login (admin/admin)"
|
||||
log "4. Monitor logs: ssh -i $SSH_KEY -p $HOSTINGER_PORT $HOSTINGER_USER@$HOSTINGER_HOST 'cd /opt/littleshop && docker-compose logs -f'"
|
||||
else
|
||||
error "Deployment failed!"
|
||||
fi
|
||||
Reference in New Issue
Block a user