This commit is contained in:
eric
2026-03-28 14:16:42 -05:00
parent 8053c4cb6d
commit 92ecc14e43
11 changed files with 325 additions and 45 deletions

View File

@@ -417,8 +417,28 @@ install_neko_browser() {
set -a
[ -f "$STACK_ENV" ] && . "$STACK_ENV"
set +a
local neko_dir="$ROOT_DIR/services/neko"
local neko_prof="${NEKO_PROFILE_HOST_DIR:-$neko_dir/data/chromium-profile}"
mkdir -p "$neko_prof"
chmod 777 "$neko_prof" 2>/dev/null || true
export NEKO_HTTP_PORT="${NEKO_HTTP_PORT:-9200}"
compose_run "$ROOT_DIR/services/neko/docker-compose.yml" up -d
export NEKO_USER_PASS="${NEKO_USER_PASS:-live}"
export NEKO_ADMIN_PASS="${NEKO_ADMIN_PASS:-admin}"
export NEKO_PROFILE_HOST_DIR="$neko_prof"
export NEKO_DESKTOP_SCREEN="${NEKO_DESKTOP_SCREEN:-1920x1080@30}"
export NEKO_WEBRTC_EPR="${NEKO_WEBRTC_EPR:-52000-52100}"
export NEKO_WEBRTC_UDP_RANGE="${NEKO_WEBRTC_UDP_RANGE:-52000-52100}"
export NEKO_WEBRTC_ICELITE="${NEKO_WEBRTC_ICELITE:-1}"
if [ -z "${NEKO_WEBRTC_NAT1TO1:-}" ]; then
export NEKO_WEBRTC_NAT1TO1="$(hostname -I 2>/dev/null | awk '{print $1}')"
else
export NEKO_WEBRTC_NAT1TO1
fi
export NEKO_PLUGINS_ENABLED="${NEKO_PLUGINS_ENABLED:-true}"
(
cd "$neko_dir" || exit 1
compose_run "$neko_dir/docker-compose.yml" up -d
)
}
configure_adb_udev() {

View File

@@ -462,6 +462,13 @@ service_chromium_stop() {
}
service_neko_status() {
if [ "${ENABLE_NEKO:-0}" != "1" ]; then
kv available 0
kv running 0
kv status unavailable
kv detail "在 config/system-stack.env 设置 ENABLE_NEKO=1 后执行安装脚本或在此 Start 拉取容器"
return 0
fi
if [ ! -f "$NEKO_COMPOSE" ]; then
kv available 0
kv running 0
@@ -488,19 +495,43 @@ service_neko_status() {
}
service_neko_start() {
if [ "${ENABLE_NEKO:-0}" != "1" ]; then
kv message "请先在 config/system-stack.env 设置 ENABLE_NEKO=1"
exit 1
fi
if [ ! -f "$NEKO_COMPOSE" ]; then
kv message "Neko compose missing"
return 0
fi
local neko_dir
neko_dir="$(cd "$(dirname "$NEKO_COMPOSE")" && pwd)"
local prof="${NEKO_PROFILE_HOST_DIR:-$ROOT_DIR/services/neko/data/chromium-profile}"
mkdir -p "$prof"
chmod 777 "$prof" 2>/dev/null || true
export NEKO_HTTP_PORT="${NEKO_HTTP_PORT:-9200}"
export NEKO_USER_PASS="${NEKO_USER_PASS:-live}"
export NEKO_ADMIN_PASS="${NEKO_ADMIN_PASS:-admin}"
export NEKO_PROFILE_HOST_DIR="$prof"
export NEKO_DESKTOP_SCREEN="${NEKO_DESKTOP_SCREEN:-1920x1080@30}"
export NEKO_WEBRTC_EPR="${NEKO_WEBRTC_EPR:-52000-52100}"
export NEKO_WEBRTC_UDP_RANGE="${NEKO_WEBRTC_UDP_RANGE:-52000-52100}"
export NEKO_WEBRTC_ICELITE="${NEKO_WEBRTC_ICELITE:-1}"
if [ -z "${NEKO_WEBRTC_NAT1TO1:-}" ]; then
export NEKO_WEBRTC_NAT1TO1="$(hostname -I 2>/dev/null | awk '{print $1}')"
fi
export NEKO_PLUGINS_ENABLED="${NEKO_PLUGINS_ENABLED:-true}"
cmd="$(compose_bin)" || {
kv message "docker compose unavailable"
return 0
}
if [ "$cmd" = "docker compose" ]; then
docker compose -f "$NEKO_COMPOSE" up -d
else
docker-compose -f "$NEKO_COMPOSE" up -d
fi
(
cd "$neko_dir" || exit 1
if [ "$cmd" = "docker compose" ]; then
docker compose -f docker-compose.yml up -d
else
docker-compose -f docker-compose.yml up -d
fi
)
kv message "Neko stack started"
}
@@ -509,15 +540,20 @@ service_neko_stop() {
kv message "Neko compose missing"
return 0
fi
local neko_dir
neko_dir="$(cd "$(dirname "$NEKO_COMPOSE")" && pwd)"
cmd="$(compose_bin)" || {
kv message "docker compose unavailable"
return 0
}
if [ "$cmd" = "docker compose" ]; then
docker compose -f "$NEKO_COMPOSE" down
else
docker-compose -f "$NEKO_COMPOSE" down
fi
(
cd "$neko_dir" || exit 1
if [ "$cmd" = "docker compose" ]; then
docker compose -f docker-compose.yml down
else
docker-compose -f docker-compose.yml down
fi
)
kv message "Neko stack stopped"
}
@@ -526,7 +562,7 @@ service_android_gateway_status() {
kv available 0
kv running 0
kv status unavailable
kv detail "Set ANDROID_DOWNLINK_IF in system-stack.env to enable gateway mode"
kv detail "透明网关需第二块网卡:在 system-stack.env 设置 ANDROID_DOWNLINK_IF如 eth1并安装 NetworkManager(nmcli)"
return 0
fi
if [ ! -d "/sys/class/net/$ANDROID_DOWNLINK_IF" ]; then