#!/bin/bash # Quick start for ShopDB Docker - skips rebuild if images exist # Use this for daily restarts after initial build set -e echo "==> ShopDB Docker - Quick Start" echo "" # Check prerequisites if [ ! -f .env ]; then echo "ERROR: .env file not found" echo "Copy .env.docker-dev to .env first:" echo " cp .env.docker-dev .env" exit 1 fi # Check if API image exists if ! docker images | grep -q "flask-shopdb-api"; then echo "ERROR: Docker images not built yet" echo "Run this first: docker compose build" exit 1 fi # Start services (no rebuild) echo "==> Starting services..." docker compose -f docker-compose.yml -f docker-compose.backup.yml --profile backup up -d # Wait for database echo "==> Waiting for database..." sleep 10 # Check status docker compose ps # Initialize if needed echo "" echo "==> Checking database state..." if docker compose exec -T api flask db current 2>&1 | grep -q "Can't locate revision"; then echo "==> Running migrations..." docker compose exec api flask db upgrade fi # Check plugins echo "" echo "==> Checking plugins..." PLUGIN_COUNT=$(docker compose exec -T api flask plugin list 2>/dev/null | grep -c "^\s\+\w" || echo "0") if [ "$PLUGIN_COUNT" -lt 5 ]; then echo "==> Installing plugins..." docker compose exec api bash /app/scripts/bootstrap-plugins.sh else echo "==> Plugins already installed ($PLUGIN_COUNT found)" fi echo "" echo "====================================" echo "ShopDB is running!" echo "====================================" echo "" echo "Access: https://localhost:5001" echo "" echo "Services:" echo " - MySQL Database (internal)" echo " - Flask API (https://localhost:5001)" echo " - Backup Store (isolated)" echo " - Backup Watcher (polls every 30s)" echo "" echo "View logs:" echo " docker compose logs -f api" echo " docker compose logs -f backup-watcher" echo "" echo "Stop:" echo " docker compose down" echo ""