's'
This commit is contained in:
@@ -452,6 +452,18 @@ install_neko_browser() {
|
||||
fi
|
||||
export NEKO_PLUGINS_ENABLED="${NEKO_PLUGINS_ENABLED:-true}"
|
||||
compose_in_service_dir "$neko_dir/docker-compose.yml" up -d
|
||||
if [ "${ENABLE_NEKO_FF:-0}" = "1" ] && [ -f "$neko_dir/docker-compose.firefox.yml" ]; then
|
||||
log "Installing Neko Firefox (second desktop, m1k1o/neko)"
|
||||
local ff_prof="${NEKO_FF_PROFILE_HOST_DIR:-$neko_dir/data/firefox-profile}"
|
||||
mkdir -p "$ff_prof"
|
||||
chmod 777 "$ff_prof" 2>/dev/null || true
|
||||
export NEKO_FF_HTTP_PORT="${NEKO_FF_HTTP_PORT:-9201}"
|
||||
export NEKO_FF_DESKTOP_SCREEN="${NEKO_FF_DESKTOP_SCREEN:-1920x1080@30}"
|
||||
export NEKO_FF_WEBRTC_EPR="${NEKO_FF_WEBRTC_EPR:-52200-52300}"
|
||||
export NEKO_FF_WEBRTC_UDP_RANGE="${NEKO_FF_WEBRTC_UDP_RANGE:-52200-52300}"
|
||||
export NEKO_FF_PROFILE_HOST_DIR="$ff_prof"
|
||||
compose_in_service_dir "$neko_dir/docker-compose.firefox.yml" up -d
|
||||
fi
|
||||
}
|
||||
|
||||
configure_adb_udev() {
|
||||
|
||||
@@ -12,6 +12,7 @@ SRS_COMPOSE="$ROOT_DIR/services/srs/docker-compose.yml"
|
||||
HOMEPAGE_COMPOSE="$ROOT_DIR/services/homepage/docker-compose.yml"
|
||||
FILEBROWSER_COMPOSE="$ROOT_DIR/services/filebrowser/docker-compose.yml"
|
||||
NEKO_COMPOSE="$ROOT_DIR/services/neko/docker-compose.yml"
|
||||
NEKO_FF_COMPOSE="$ROOT_DIR/services/neko/docker-compose.firefox.yml"
|
||||
BROWSER_LAUNCHER="$ROOT_DIR/scripts/linux/launch_browser.sh"
|
||||
|
||||
[ -f "$STACK_ENV" ] && set -a && . "$STACK_ENV" && set +a
|
||||
@@ -554,12 +555,89 @@ service_neko_stop() {
|
||||
kv message "Neko stack stopped"
|
||||
}
|
||||
|
||||
service_android_gateway_status() {
|
||||
if ! have nmcli || [ -z "$ANDROID_DOWNLINK_IF" ]; then
|
||||
service_neko_firefox_status() {
|
||||
if [ "${ENABLE_NEKO_FF:-0}" != "1" ]; then
|
||||
kv available 0
|
||||
kv running 0
|
||||
kv status unavailable
|
||||
kv detail "透明网关需第二块网卡:在 system-stack.env 设置 ANDROID_DOWNLINK_IF(如 eth1),并安装 NetworkManager(nmcli)"
|
||||
kv detail "第二桌面未启用:在 config/system-stack.env 设置 ENABLE_NEKO_FF=1(Firefox 与 Chromium 错开端口,均为 arm64 多架构镜像)"
|
||||
return 0
|
||||
fi
|
||||
if [ ! -f "$NEKO_FF_COMPOSE" ]; then
|
||||
kv available 0
|
||||
kv running 0
|
||||
kv status unavailable
|
||||
kv detail "docker-compose.firefox.yml missing"
|
||||
return 0
|
||||
fi
|
||||
if ! have docker; then
|
||||
kv available 0
|
||||
kv running 0
|
||||
kv status unavailable
|
||||
kv detail "docker not installed"
|
||||
return 0
|
||||
fi
|
||||
local state
|
||||
state="$(docker_container_status live-neko-firefox || true)"
|
||||
kv available 1
|
||||
kv running "$([[ "$state" == running* ]] && echo 1 || echo 0)"
|
||||
kv status "$([[ "$state" == running* ]] && echo online || echo stopped)"
|
||||
kv host "${HOSTNAME_ALIAS}.local"
|
||||
kv port "${NEKO_FF_HTTP_PORT:-9201}"
|
||||
kv url "http://${HOSTNAME_ALIAS}.local:${NEKO_FF_HTTP_PORT:-9201}"
|
||||
kv detail "Neko Firefox (第二浏览器); 口令与 Chromium 实例相同(NEKO_USER_PASS / NEKO_ADMIN_PASS)"
|
||||
}
|
||||
|
||||
service_neko_firefox_start() {
|
||||
if [ "${ENABLE_NEKO_FF:-0}" != "1" ]; then
|
||||
kv message "请先在 config/system-stack.env 设置 ENABLE_NEKO_FF=1"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -f "$NEKO_FF_COMPOSE" ]; then
|
||||
kv message "Neko Firefox compose missing"
|
||||
exit 1
|
||||
fi
|
||||
local prof="${NEKO_FF_PROFILE_HOST_DIR:-$ROOT_DIR/services/neko/data/firefox-profile}"
|
||||
mkdir -p "$prof"
|
||||
chmod 777 "$prof" 2>/dev/null || true
|
||||
export NEKO_FF_HTTP_PORT="${NEKO_FF_HTTP_PORT:-9201}"
|
||||
export NEKO_FF_DESKTOP_SCREEN="${NEKO_FF_DESKTOP_SCREEN:-1920x1080@30}"
|
||||
export NEKO_FF_WEBRTC_EPR="${NEKO_FF_WEBRTC_EPR:-52200-52300}"
|
||||
export NEKO_FF_WEBRTC_UDP_RANGE="${NEKO_FF_WEBRTC_UDP_RANGE:-52200-52300}"
|
||||
export NEKO_USER_PASS="${NEKO_USER_PASS:-live}"
|
||||
export NEKO_ADMIN_PASS="${NEKO_ADMIN_PASS:-admin}"
|
||||
export NEKO_FF_PROFILE_HOST_DIR="$prof"
|
||||
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
|
||||
compose_in_service_dir "$NEKO_FF_COMPOSE" up -d
|
||||
kv message "Neko Firefox started"
|
||||
}
|
||||
|
||||
service_neko_firefox_stop() {
|
||||
if [ ! -f "$NEKO_FF_COMPOSE" ]; then
|
||||
kv message "Neko Firefox compose missing"
|
||||
return 0
|
||||
fi
|
||||
compose_in_service_dir "$NEKO_FF_COMPOSE" down
|
||||
kv message "Neko Firefox stopped"
|
||||
}
|
||||
|
||||
service_android_gateway_status() {
|
||||
if ! have nmcli; then
|
||||
kv available 0
|
||||
kv running 0
|
||||
kv status unavailable
|
||||
kv detail "需要 NetworkManager(nmcli) 才能创建共享连接"
|
||||
return 0
|
||||
fi
|
||||
if [ -z "${ANDROID_DOWNLINK_IF:-}" ]; then
|
||||
kv available 1
|
||||
kv running 0
|
||||
kv status skipped
|
||||
kv detail "单网口或未配置下行口:无需透明网关。安卓可经 USB 网络共享 / Wi‑Fi / 同 LAN 访问板子。仅当板载第二以太网直连安卓板时,在 system-stack.env 设置 ANDROID_DOWNLINK_IF=eth1(或实际接口名)"
|
||||
kv url ""
|
||||
return 0
|
||||
fi
|
||||
if [ ! -d "/sys/class/net/$ANDROID_DOWNLINK_IF" ]; then
|
||||
@@ -581,9 +659,9 @@ service_android_gateway_status() {
|
||||
}
|
||||
|
||||
service_android_gateway_start() {
|
||||
if [ -z "$ANDROID_DOWNLINK_IF" ]; then
|
||||
kv message "ANDROID_DOWNLINK_IF is not configured"
|
||||
exit 1
|
||||
if [ -z "${ANDROID_DOWNLINK_IF:-}" ]; then
|
||||
kv message "未配置 ANDROID_DOWNLINK_IF:单网口场景无需启动安卓网关"
|
||||
exit 0
|
||||
fi
|
||||
if ! nmcli connection show "$ANDROID_GATEWAY_NAME" >/dev/null 2>&1; then
|
||||
nmcli connection add type ethernet ifname "$ANDROID_DOWNLINK_IF" con-name "$ANDROID_GATEWAY_NAME" \
|
||||
|
||||
Reference in New Issue
Block a user