#!/usr/bin/env bash set -euo pipefail source ./scripts/Unix/starter.sh # Verify Docker images log_step "Verifying all images are present..." if command -v jq >/dev/null 2>&1; then images=$(docker compose config --format json | jq -r '.services[].image // empty') if [ -n "$images" ]; then for image in $images; do if ! docker image inspect "$image" > /dev/null 2>&1; then log_error "Required images not found. Please run install.sh first." exit 1 fi log_info " • Found image: $image" done fi else log_warning "jq is not installed; skipping image verification step." fi # Start services log_step "Spinning services up..." if ! output=$(docker compose up --no-build --detach --wait 2>&1); then log_error "Failed to start services" echo "$output" exit 1 fi log_success "Services are up and healthy!" # Run pre-run tasks log_step "Completing pre-run tasks..." log_info " → Running migrations..." if ! output=$(docker compose exec -T app uv run manage.py migrate --no-input --verbosity 0 2>&1); then log_error "Migrations failed" echo "$output" exit 1 fi log_info " → Initializing..." if ! output=$(docker compose exec -T app uv run manage.py initialize 2>&1); then log_error "Initialization failed" echo "$output" exit 1 fi log_info " → Setting default caches..." if ! output=$(docker compose exec -T app uv run manage.py set_default_caches 2>&1); then log_error "Cache setup failed" echo "$output" exit 1 fi log_info " → Rebuilding search index..." if ! output=$(docker compose exec -T app uv run manage.py search_index --rebuild -f 2>&1); then log_error "Search index rebuild failed" echo "$output" exit 1 fi log_info " → Collecting static files..." if ! output=$(docker compose exec -T app uv run manage.py collectstatic --clear --no-input --verbosity 0 2>&1); then log_error "Static files collection failed" echo "$output" exit 1 fi log_success "Pre-run tasks completed successfully!" # Cleanup log_step "Cleaning unused Docker data..." docker system prune -f >/dev/null 2>&1 || log_warning "Docker cleanup had issues, but continuing..." log_success "Unused Docker data cleaned successfully!" echo log_result "All done! Schon is up and running!"