# Homepage Configuration for kejilion/apps
# Official: https://github.com/gethomepage/homepage
# Highly customizable dashboard for self-hosted services

local app_id="homepage"
local app_name="Homepage"
local app_text="高度可定制的自托管服务仪表盘，支持Docker集成与100+服务小部件"
local app_url="https://github.com/gethomepage/homepage"
local docker_name="homepage"
local docker_port="8207"
local app_size="1"

docker_app_install() {
    local app_dir="/home/docker/${app_name}"
    mkdir -p "${app_dir}"/config "${app_dir}"/images
    cd "${app_dir}" || return 1

    # 直接嵌入官方推荐 docker-compose.yml（避免下载依赖）
    cat <<EOF > docker-compose.yml
services:
  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    environment:
      - HOMEPAGE_ALLOWED_HOSTS=*  # 生产环境请改为您的域名或 IP:端口，例如 example.com 或 192.168.1.100:3000
      - PUID=1000
      - PGID=1000
    ports:
      - "3000:3000"  # 将被 sed 替换为 \${docker_port}:3000
    volumes:
      - ${app_dir}/config:/app/config
      - ${app_dir}/images:/app/public/images  # 可选，用于自定义图标
      - /var/run/docker.sock:/var/run/docker.sock:ro  # 可选，启用 Docker 容器自动发现与状态监控
    restart: unless-stopped
EOF

    # 替换默认端口为用户自定义端口
    sed -i "s/\"3000:3000\"/\"${docker_port}:3000\"/g" docker-compose.yml

    # 启动容器
    docker compose up -d

    # 显示访问信息
    echo "Homepage 已部署完成！"
    check_docker_app_ip
    echo "重要：首次启动后，请立即编辑 /home/docker/Homepage/config/settings.yml 等文件进行自定义。"
    echo "安全提示：生产环境强烈建议将 HOMEPAGE_ALLOWED_HOSTS 修改为具体值（如您的域名或 IP:端口），避免安全风险。"
    echo "可选功能：Docker 集成已启用（通过 socket 挂载），可在 docker.yaml 中配置自动服务发现。"
}

docker_app_update() {
    local app_dir="/home/docker/${app_name}"
    cd "${app_dir}" || return 1
    docker compose pull
    docker compose up -d
    echo "Homepage 已更新至最新版本。"
}

docker_app_uninstall() {
    local app_dir="/home/docker/${app_name}"
    cd "${app_dir}" || return 1
    docker compose down --rmi all
    rm -rf "${app_dir}"
    echo "Homepage 已彻底卸载，包括所有配置数据。"
}

# 注册到平台
docker_app_plus
