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