Files
ebook-extension/docker-start.sh

159 lines
4.7 KiB
Bash
Executable File

#!/bin/bash
# ========================================
# Docker Start Script - Ebook System
# ========================================
# Jednoduchý skript na spustenie celého systému v Dockeri
# Pre lokálne testovanie pred deploymentom na Coolify
# ========================================
set -e # Exit pri akejkoľvek chybe
# Farby pre výpis
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE}🚀 Ebook Translation System - Docker${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""
# Kontrola či existuje docker
if ! command -v docker &> /dev/null; then
echo -e "${RED}❌ Docker nie je nainštalovaný!${NC}"
echo "Nainštalujte Docker: https://docs.docker.com/get-docker/"
exit 1
fi
# Kontrola či existuje docker-compose
if ! command -v docker-compose &> /dev/null; then
echo -e "${RED}❌ Docker Compose nie je nainštalovaný!${NC}"
echo "Nainštalujte Docker Compose: https://docs.docker.com/compose/install/"
exit 1
fi
echo -e "${GREEN}✅ Docker je nainštalovaný${NC}"
echo -e "${GREEN}✅ Docker Compose je nainštalovaný${NC}"
echo ""
# Kontrola či existuje .env súbor
if [ ! -f .env ]; then
echo -e "${YELLOW}⚠️ .env súbor neexistuje${NC}"
if [ -f .env.production ]; then
echo -e "${YELLOW}📋 Kopírujem .env.production na .env${NC}"
cp .env.production .env
echo -e "${GREEN}✅ .env súbor vytvorený${NC}"
echo -e "${RED}⚠️ DÔLEŽITÉ: Upravte .env súbor pred spustením v produkcii!${NC}"
echo ""
else
echo -e "${RED}❌ .env.production súbor neexistuje!${NC}"
exit 1
fi
fi
echo -e "${GREEN}✅ .env súbor existuje${NC}"
echo ""
# Menu
echo -e "${BLUE}Vyberte akciu:${NC}"
echo "1) Spustiť celý systém (build + start)"
echo "2) Spustiť systém (bez rebuild)"
echo "3) Zastaviť systém"
echo "4) Reštartovať systém"
echo "5) Zobraziť logy"
echo "6) Zobraziť stav kontajnerov"
echo "7) Vyčistiť všetko (POZOR: zmaže dáta!)"
echo "8) Zálohovať databázu"
echo "9) Ukončiť"
echo ""
read -p "Zadajte číslo (1-9): " choice
case $choice in
1)
echo -e "${BLUE}🔨 Buildím a spúšťam kontajnery...${NC}"
docker-compose up -d --build
echo ""
echo -e "${GREEN}✅ Systém je spustený!${NC}"
echo -e "${BLUE}📝 Admin panel: http://localhost:8000/login${NC}"
echo -e "${BLUE}📊 Health check: http://localhost:8000/health${NC}"
echo -e "${BLUE}📚 API docs: http://localhost:8000/docs${NC}"
echo ""
echo "Pre zobrazenie logov použite: docker-compose logs -f"
;;
2)
echo -e "${BLUE}🚀 Spúšťam kontajnery...${NC}"
docker-compose up -d
echo ""
echo -e "${GREEN}✅ Systém je spustený!${NC}"
echo -e "${BLUE}📝 Admin panel: http://localhost:8000/login${NC}"
;;
3)
echo -e "${YELLOW}🛑 Zastavujem systém...${NC}"
docker-compose down
echo -e "${GREEN}✅ Systém je zastavený${NC}"
;;
4)
echo -e "${BLUE}🔄 Reštartujem systém...${NC}"
docker-compose restart
echo -e "${GREEN}✅ Systém je reštartovaný${NC}"
;;
5)
echo -e "${BLUE}📋 Zobrazujem logy (Ctrl+C pre ukončenie)...${NC}"
echo ""
docker-compose logs -f --tail=100
;;
6)
echo -e "${BLUE}📊 Stav kontajnerov:${NC}"
echo ""
docker-compose ps
echo ""
echo -e "${BLUE}📈 Resource usage:${NC}"
docker stats --no-stream
;;
7)
echo -e "${RED}⚠️ POZOR: Toto zmaže všetky kontajnery, volumes a dáta!${NC}"
read -p "Ste si istý? (yes/no): " confirm
if [ "$confirm" == "yes" ]; then
echo -e "${YELLOW}🗑️ Mažem všetko...${NC}"
docker-compose down -v
docker system prune -af
echo -e "${GREEN}✅ Všetko vyčistené${NC}"
else
echo -e "${BLUE}❌ Akcia zrušená${NC}"
fi
;;
8)
echo -e "${BLUE}💾 Zálohujem databázu...${NC}"
BACKUP_FILE="backup_$(date +%Y%m%d_%H%M%S).sql"
docker-compose exec -T postgres pg_dump -U ebook_user ebook_prod > "$BACKUP_FILE"
echo -e "${GREEN}✅ Záloha vytvorená: $BACKUP_FILE${NC}"
;;
9)
echo -e "${BLUE}👋 Ukončujem...${NC}"
exit 0
;;
*)
echo -e "${RED}❌ Neplatná voľba!${NC}"
exit 1
;;
esac
echo ""
echo -e "${BLUE}========================================${NC}"
echo -e "${GREEN}Hotovo!${NC}"
echo -e "${BLUE}========================================${NC}"