#!/usr/bin/env bash set -euo pipefail GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' echo "" echo "========================================" echo " Uptime Kuma Deployment Bootstrapper" echo "========================================" echo "" if ! command -v docker >/dev/null 2>&1; then echo -e "${RED}[ERROR] Docker is not installed or not in PATH.${NC}" exit 1 fi if ! docker compose version >/dev/null 2>&1; then echo -e "${RED}[ERROR] Docker Compose v2 is not available.${NC}" exit 1 fi if [ ! -f ".env" ]; then echo -e "${YELLOW}[INFO] .env file not found. Creating one from .env.example.${NC}" cp .env.example .env fi # Docker Compose requires external networks to exist before startup. if ! docker network inspect caddy_proxy >/dev/null 2>&1; then echo -e "${YELLOW}[INFO] Creating shared Docker network: caddy_proxy${NC}" docker network create caddy_proxy >/dev/null fi set -a source .env set +a echo "[STEP] Pulling images..." docker compose pull echo "[STEP] Starting Uptime Kuma..." docker compose up -d echo "" echo -e "${GREEN}========================================${NC}" echo -e "${GREEN}Uptime Kuma deployment started${NC}" echo -e "${GREEN}========================================${NC}" echo "" echo "Direct access:" echo " http://localhost:${UPTIME_KUMA_HOST_PORT:-3001}" echo "" echo "Caddy access:" echo " ${UPTIME_KUMA_PUBLIC_URL:-https://uptime.amiirkhl.ir}" echo "" echo "Container status:" docker compose ps