# --- 基础信息 / Basic Information ---
local app_id="dnsmgr"
local app_name="彩虹聚合DNS管理系统"
local app_text="彩虹聚合DNS一站式管理阿里云、腾讯云、Cloudflare等解析，支持容灾自动切换"
local app_url="https://github.com/netcccyun/dnsmgr"
local docker_name="dnsmgr-web"
local docker_port="8081"   # Web访问端口
local app_size="1"

# --- 核心逻辑 / Core Logic ---
docker_app_install() {
    # 1. 环境准备
    local base_dir="/home/docker/dnsmgr"
    local db_password=$(date +%s | sha256sum | base64 | head -c 16) # 自动生成随机密码
    
    mkdir -p "$base_dir/web" "$base_dir/mysql/conf" "$base_dir/mysql/logs" "$base_dir/mysql/data"
    cd "$base_dir"

    # 2. 写入 MySQL 配置文件 (解决 SQL_MODE 问题)
    cat <<EOF > mysql/conf/my.cnf
[mysqld]
user=mysql
character-set-server=utf8mb4
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
EOF

    # 3. 生成 Docker Compose 文件
    cat <<EOF > docker-compose.yml
services:
  dnsmgr-web:
    image: netcccyun/dnsmgr:latest
    container_name: ${docker_name}
    stdin_open: true
    tty: true
    restart: always
    ports:
      - "${docker_port}:80"
    volumes:
      - "./web:/app/www"
    depends_on:
      - dnsmgr-mysql
    networks:
      - dnsmgr-network

  dnsmgr-mysql:
    image: mysql:5.7
    container_name: dnsmgr-mysql
    restart: always
    # ports:
    #   - "${mysql_port}:3306"
    volumes:
      - "./mysql/conf/my.cnf:/etc/mysql/my.cnf"
      - "./mysql/logs:/logs"
      - "./mysql/data:/var/lib/mysql"
    environment:
      - MYSQL_ROOT_PASSWORD=${db_password}
      - TZ=Asia/Shanghai
    networks:
      - dnsmgr-network

networks:
  dnsmgr-network:
    driver: bridge
EOF

    # 4. 启动并自动创建数据库
    echo "正在启动容器并初始化数据库..."
    docker compose up -d
    
    # 等待数据库启动并创建库名
    echo "等待数据库初始化 (约15秒)..."
    sleep 15
    docker exec dnsmgr-mysql mysql -uroot -p${db_password} -e "CREATE DATABASE IF NOT EXISTS dnsmgr;"

    # 5. 权限处理
    chmod -R 777 "$base_dir/web"

    # 6. 打印信息给用户
    echo "------------------------------------------------"
    echo "安装完成！请在浏览器访问进行配置。"
    check_docker_app_ip
    echo ""
    echo "数据库配置信息 (安装界面填写):"
    echo "数据库地址: dnsmgr-mysql"
    echo "数据库端口: 3306"
    echo "数据库用户名: root"
    echo "数据库密码: ${db_password}"
    echo "数据库库名: dnsmgr"
    echo "------------------------------------------------"

}

docker_app_update() {
    cd /home/docker/dnsmgr
    docker compose pull
    docker compose up -d
    echo "更新完成 / Update Complete"
}

docker_app_uninstall() {
    cd /home/docker/dnsmgr
    docker compose down --rmi all
    rm -rf /home/docker/dnsmgr
    echo "卸载完成，数据已清理。"
}

# --- 注册 / Registration ---
docker_app_plus
