#!/usr/bin/env bash
# Komari 监控一键部署
#
# 需要 root，且要先装好 Docker（见 docker-install.sh）。
# 数据持久化到 /opt/komari/data，容器名固定 komari。
# 镜像走南大 GHCR 镜像源，国内拉得动。

set -e

# 需要 root：下面的系统级改动都直接执行，不再逐条 sudo
if [ "$(id -u)" -ne 0 ]; then
    echo '[!] 这个脚本需要 root 权限，请用 sudo 重新运行：'
    echo '    curl -fsSL 脚本地址 | sudo bash'
    echo '    或已经下载到本地：sudo bash 本文件'
    exit 1
fi


DATA_DIR=/opt/komari/data
PORT=58432
CONTAINER=komari
IMAGE=ghcr.nju.edu.cn/komari-monitor/komari:latest

echo '====== 部署 Komari ======'

if ! command -v docker >/dev/null 2>&1; then
    echo '[!] 没检测到 Docker，先跑 docker-install.sh'
    exit 1
fi

mkdir -p "$DATA_DIR"
echo "[*] 数据目录：$DATA_DIR"

if docker inspect "$CONTAINER" >/dev/null 2>&1; then
    echo '[*] 移除同名旧容器...'
    docker rm -f "$CONTAINER"
fi

echo "[*] 拉取镜像：$IMAGE"
docker pull "$IMAGE"

echo "[*] 启动容器，对外端口 $PORT"
docker run -d \
    -p "$PORT:25774" \
    -v "$DATA_DIR:/app/data" \
    --name "$CONTAINER" \
    --restart unless-stopped \
    "$IMAGE"

IP=$(curl -fsSL --max-time 5 https://api.ipify.org 2>/dev/null || echo '你的服务器IP')

echo ''
echo '====== 部署完成 ======'
echo "  访问地址：http://$IP:$PORT"
echo "  查看日志：docker logs -f $CONTAINER"
echo '  初始密码：docker logs komari 2>&1 | grep -i password'
