159 lines
4.7 KiB
Bash
Executable File
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}"
|