mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-21 09:28:14 +00:00
64 lines
1.6 KiB
Bash
64 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
# HomeAgent 首次初始化脚本
|
|
# 在安装后执行,生成凭据并初始化数据库
|
|
set -e
|
|
|
|
DATA_DIR="${HOMEAGENT_DATA:-/var/lib/homeagent}"
|
|
CRED_FILE="${DATA_DIR}/credentials.txt"
|
|
CONFIG_DB="${DATA_DIR}/config.db"
|
|
WAITER_CONF="${DATA_DIR}/waiter.yaml"
|
|
INITCONFIG_BIN="/usr/bin/initconfig"
|
|
|
|
# 如果已经初始化过,跳过
|
|
if [ -f "$CONFIG_DB" ] && [ -f "$CRED_FILE" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
mkdir -p "$DATA_DIR"
|
|
|
|
# 生成随机凭据
|
|
API_KEY=$(cat /proc/sys/kernel/random/uuid 2>/dev/null | tr -d '-' || echo "homeagent$(date +%s)")
|
|
WEBUI_USER="${WEBUI_USER:-admin}"
|
|
WEBUI_PASS="${WEBUI_PASS:-$(openssl rand -hex 12 2>/dev/null || echo "homeagent")}"
|
|
|
|
# 初始化数据库
|
|
if [ -x "$INITCONFIG_BIN" ]; then
|
|
"$INITCONFIG_BIN" \
|
|
-data "$DATA_DIR" \
|
|
-username "$WEBUI_USER" \
|
|
-password "$WEBUI_PASS" \
|
|
-apikey "$API_KEY" 2>/dev/null
|
|
fi
|
|
|
|
# 保存凭据
|
|
cat > "$CRED_FILE" << CRED
|
|
===================================
|
|
HomeAgent 初始配置信息
|
|
请妥善保管,安装后仅此一份
|
|
===================================
|
|
WebUI 地址: http://localhost:8080
|
|
API Key: ${API_KEY}
|
|
WebUI 用户名: ${WEBUI_USER}
|
|
WebUI 密码: ${WEBUI_PASS}
|
|
CLI Socket: ${DATA_DIR}/cli.sock
|
|
===================================
|
|
CRED
|
|
chmod 600 "$CRED_FILE"
|
|
|
|
# 配置 waiter CLI
|
|
cat > "$WAITER_CONF" << WAITER
|
|
socket: "${DATA_DIR}/cli.sock"
|
|
api_key: ${API_KEY}
|
|
default: local
|
|
connections:
|
|
- name: local
|
|
socket: "${DATA_DIR}/cli.sock"
|
|
api_key: ${API_KEY}
|
|
WAITER
|
|
|
|
echo ""
|
|
echo "============================================"
|
|
echo " HomeAgent 初始化完成"
|
|
echo "============================================"
|
|
cat "$CRED_FILE"
|