#!/usr/bin/env bash set -e envFile=Docker/.env envExample=Docker/env.example echo "Checking Docker installation..." if ! command -v docker >/dev/null 2>&1; then echo "Docker not found. Install Docker? [y/N]" read -r install_docker if [[ "$install_docker" =~ ^[Yy]$ ]]; then curl -fsSL https://get.docker.com | sh else echo "Docker is required. Exiting." exit 1 fi else echo "Docker is already installed." fi echo "Checking Docker Compose..." if ! docker compose version >/dev/null 2>&1; then echo "Docker Compose plugin missing. You may need to update Docker." exit 1 fi echo "Preparing .env file..." if [ ! -f $envFile ]; then if [ -f $envExample ]; then echo ".env not found. Creating interactively from .env.example." > $envFile while IFS="=" read -r key val; do [[ "$key" =~ ^#.*$ || -z "$key" ]] && continue default_value=$(echo "$val" | sed 's/"//g') printf "Value for $key (default: $default_value): " read -r user_value < /dev/tty if [ -z "$user_value" ]; then echo "$key=$default_value" >> $envFile else echo "$key=$user_value" >> $envFile fi done < $envExample echo ".env created." else echo "No .env or .env.example found." echo "Creating an empty .env file for manual editing." touch $envFile fi else echo "Using existing .env. (found at $envFile)" fi echo "Start containers with docker compose up -d? [y/N]" read -r start_containers if [[ "$start_containers" =~ ^[Yy]$ ]]; then docker compose up -d echo "Containers started." else echo "You can start them manually with: docker compose up -d" fi