littleshop/docker-deploy-hostinger.sh
SysAdmin caff08cb6f Deploy LittleShop to Hostinger with Docker and BunkerWeb
- 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>
2025-09-24 13:00:17 +01:00

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 "================================================"