#!/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}"