63 lines
1.7 KiB
Bash
Executable File
63 lines
1.7 KiB
Bash
Executable File
#!/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
|