- Updated Docker configuration for production deployment - Added SilverPay integration settings - Configured for admin.thebankofdebbie.giize.com deployment - Includes all recent security fixes and improvements 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
141 lines
3.8 KiB
Bash
141 lines
3.8 KiB
Bash
#!/bin/bash
|
|
|
|
# LittleShop Docker Deployment Script for Hostinger VPS
|
|
# This script deploys LittleShop to the Hostinger VPS using Docker
|
|
|
|
set -e
|
|
|
|
echo "================================================"
|
|
echo "LittleShop Docker Deployment to Hostinger VPS"
|
|
echo "================================================"
|
|
echo
|
|
|
|
# Configuration
|
|
REMOTE_HOST="srv1002428.hstgr.cloud"
|
|
REMOTE_USER="root"
|
|
REMOTE_PORT="2255"
|
|
REMOTE_DIR="/opt/docker/littleshop"
|
|
SSH_KEY="~/.ssh/hostinger_key"
|
|
|
|
# Colors
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
print_success() {
|
|
echo -e "${GREEN}✓${NC} $1"
|
|
}
|
|
|
|
print_warning() {
|
|
echo -e "${YELLOW}⚠${NC} $1"
|
|
}
|
|
|
|
print_error() {
|
|
echo -e "${RED}✗${NC} $1"
|
|
}
|
|
|
|
# Step 1: Build Docker image locally
|
|
echo "1. Building Docker image locally..."
|
|
./docker-build.sh --build-only
|
|
|
|
if [ $? -ne 0 ]; then
|
|
print_error "Docker build failed"
|
|
exit 1
|
|
fi
|
|
|
|
# Step 2: Save Docker image
|
|
echo
|
|
echo "2. Saving Docker image to tar file..."
|
|
docker save littleshop:latest | gzip > littleshop-docker.tar.gz
|
|
print_success "Docker image saved to littleshop-docker.tar.gz"
|
|
|
|
# Step 3: Transfer files to server
|
|
echo
|
|
echo "3. Transferring files to Hostinger VPS..."
|
|
|
|
# Create remote directory
|
|
ssh -i ${SSH_KEY} -p ${REMOTE_PORT} ${REMOTE_USER}@${REMOTE_HOST} "mkdir -p ${REMOTE_DIR}"
|
|
|
|
# Transfer Docker image
|
|
echo " Transferring Docker image (this may take a while)..."
|
|
scp -i ${SSH_KEY} -P ${REMOTE_PORT} littleshop-docker.tar.gz ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/
|
|
|
|
# Transfer docker-compose.yml
|
|
echo " Transferring docker-compose.yml..."
|
|
scp -i ${SSH_KEY} -P ${REMOTE_PORT} docker-compose.yml ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/
|
|
|
|
# Transfer .env file
|
|
if [ -f ".env" ]; then
|
|
echo " Transferring .env file..."
|
|
scp -i ${SSH_KEY} -P ${REMOTE_PORT} .env ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/
|
|
elif [ -f ".env.production" ]; then
|
|
echo " Transferring .env.production as .env..."
|
|
scp -i ${SSH_KEY} -P ${REMOTE_PORT} .env.production ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/.env
|
|
fi
|
|
|
|
print_success "Files transferred successfully"
|
|
|
|
# Step 4: Deploy on server
|
|
echo
|
|
echo "4. Deploying on Hostinger VPS..."
|
|
|
|
ssh -i ${SSH_KEY} -p ${REMOTE_PORT} ${REMOTE_USER}@${REMOTE_HOST} << 'ENDSSH'
|
|
cd /opt/docker/littleshop
|
|
|
|
echo "Loading Docker image..."
|
|
gunzip -c littleshop-docker.tar.gz | docker load
|
|
|
|
echo "Stopping existing containers..."
|
|
docker-compose down 2>/dev/null || true
|
|
|
|
echo "Creating directories for volumes..."
|
|
mkdir -p data logs uploads
|
|
|
|
echo "Starting containers..."
|
|
docker-compose up -d
|
|
|
|
echo "Waiting for application to start..."
|
|
sleep 10
|
|
|
|
echo "Checking container status..."
|
|
docker-compose ps
|
|
|
|
echo "Testing health endpoint..."
|
|
if curl -f http://127.0.0.1:5100/api/catalog/products > /dev/null 2>&1; then
|
|
echo "✓ Application is healthy!"
|
|
else
|
|
echo "⚠ Health check failed, checking logs..."
|
|
docker logs littleshop --tail 20
|
|
fi
|
|
ENDSSH
|
|
|
|
# Step 5: Clean up local tar file
|
|
echo
|
|
echo "5. Cleaning up..."
|
|
rm -f littleshop-docker.tar.gz
|
|
print_success "Temporary files cleaned"
|
|
|
|
# Step 6: Display deployment info
|
|
echo
|
|
echo "================================================"
|
|
echo "Deployment Complete!"
|
|
echo "================================================"
|
|
echo
|
|
echo "Application Details:"
|
|
echo " - URL: http://127.0.0.1:5100 (localhost only)"
|
|
echo " - Admin Panel: http://127.0.0.1:5100/Admin"
|
|
echo " - Container: littleshop"
|
|
echo
|
|
echo "To access from your local machine:"
|
|
echo " ssh -i ${SSH_KEY} -p ${REMOTE_PORT} -L 5100:127.0.0.1:5100 ${REMOTE_USER}@${REMOTE_HOST}"
|
|
echo " Then open: http://localhost:5100"
|
|
echo
|
|
echo "Remote commands:"
|
|
echo " - View logs: docker logs -f littleshop"
|
|
echo " - Restart: docker-compose restart"
|
|
echo " - Stop: docker-compose down"
|
|
echo
|
|
echo "For nginx proxy setup, configure nginx to proxy to 127.0.0.1:5100"
|
|
echo
|
|
echo "================================================" |