littleshop/deploy.sh
2025-08-27 18:02:39 +01:00

76 lines
2.0 KiB
Bash

#!/bin/bash
# Deployment script for LittleShop to SLAB-01
# Usage: ./deploy.sh
set -e
echo "🚀 Starting LittleShop deployment to SLAB-01..."
# Configuration
REMOTE_HOST="10.0.0.11"
REMOTE_USER="sysadmin"
REMOTE_DIR="/home/sysadmin/littleshop"
PROJECT_NAME="littleshop"
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${YELLOW}📦 Creating deployment package...${NC}"
# Create a temporary directory for deployment files
TEMP_DIR=$(mktemp -d)
trap "rm -rf $TEMP_DIR" EXIT
# Copy necessary files
cp -r LittleShop/* $TEMP_DIR/
cp docker-compose.yml $TEMP_DIR/
cp .env.production $TEMP_DIR/.env 2>/dev/null || true
echo -e "${YELLOW}📤 Transferring files to SLAB-01...${NC}"
# Create remote directory if it doesn't exist
ssh ${REMOTE_USER}@${REMOTE_HOST} "mkdir -p ${REMOTE_DIR}"
# Transfer files using rsync
rsync -avz --progress \
--exclude 'bin/' \
--exclude 'obj/' \
--exclude '*.db' \
--exclude 'logs/' \
$TEMP_DIR/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/
echo -e "${YELLOW}🔨 Building Docker image on SLAB-01...${NC}"
# Build the Docker image on the remote server
ssh ${REMOTE_USER}@${REMOTE_HOST} << 'ENDSSH'
cd /home/sysadmin/littleshop
echo "Building Docker image..."
docker compose build --no-cache
echo "Stopping existing container if running..."
docker compose down 2>/dev/null || true
echo "Starting LittleShop container..."
docker compose up -d
echo "Waiting for container to be healthy..."
sleep 10
echo "Container status:"
docker compose ps
echo "Container logs (last 20 lines):"
docker compose logs --tail=20
ENDSSH
echo -e "${GREEN}✅ Deployment complete!${NC}"
echo -e "${GREEN}LittleShop should be accessible at: http://${REMOTE_HOST}:5000${NC}"
echo ""
echo "Useful commands:"
echo " - View logs: ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd ${REMOTE_DIR} && docker compose logs -f'"
echo " - Restart: ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd ${REMOTE_DIR} && docker compose restart'"
echo " - Stop: ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd ${REMOTE_DIR} && docker compose down'"