This commit is contained in:
eric
2026-03-28 15:08:59 -05:00
parent 92ecc14e43
commit d74f3046a3
14 changed files with 1889 additions and 245 deletions

View File

@@ -88,6 +88,24 @@ compose_run() {
fi
}
# docker-compose v1 将 ./卷 解析为当前工作目录,必须在 compose 文件所在目录执行(与 Neko 一致)
compose_in_service_dir() {
local compose_file="$1"
shift
local d base
d="$(cd "$(dirname "$compose_file")" && pwd)"
base="$(basename "$compose_file")"
(
cd "$d" || exit 1
cmd="$(compose_bin)" || exit 1
if [ "$cmd" = "docker compose" ]; then
docker compose -f "$base" "$@"
else
docker-compose -f "$base" "$@"
fi
)
}
docker_container_status() {
local name="$1"
if ! have docker; then
@@ -227,12 +245,12 @@ service_srs_status() {
}
service_srs_start() {
compose_run "$SRS_COMPOSE" up -d
compose_in_service_dir "$SRS_COMPOSE" up -d
kv message "SRS started"
}
service_srs_stop() {
compose_run "$SRS_COMPOSE" down
compose_in_service_dir "$SRS_COMPOSE" down
kv message "SRS stopped"
}
@@ -310,12 +328,12 @@ service_filebrowser_status() {
}
service_filebrowser_start() {
compose_run "$FILEBROWSER_COMPOSE" up -d
compose_in_service_dir "$FILEBROWSER_COMPOSE" up -d
kv message "File Browser started"
}
service_filebrowser_stop() {
compose_run "$FILEBROWSER_COMPOSE" down
compose_in_service_dir "$FILEBROWSER_COMPOSE" down
kv message "File Browser stopped"
}
@@ -339,12 +357,12 @@ service_homepage_status() {
}
service_homepage_start() {
compose_run "$HOMEPAGE_COMPOSE" up -d
compose_in_service_dir "$HOMEPAGE_COMPOSE" up -d
kv message "Homepage started"
}
service_homepage_stop() {
compose_run "$HOMEPAGE_COMPOSE" down
compose_in_service_dir "$HOMEPAGE_COMPOSE" down
kv message "Homepage stopped"
}
@@ -451,7 +469,12 @@ service_chromium_status() {
}
service_chromium_start() {
nohup "$BROWSER_LAUNCHER" >/tmp/live-browser.log 2>&1 &
if [ -z "${DISPLAY:-}" ] && command -v xvfb-run >/dev/null 2>&1; then
nohup xvfb-run -a "$BROWSER_LAUNCHER" >/tmp/live-browser.log 2>&1 &
else
[ -z "${DISPLAY:-}" ] && export DISPLAY=:0
nohup "$BROWSER_LAUNCHER" >/tmp/live-browser.log 2>&1 &
fi
disown || true
kv message "Chromium launched"
}
@@ -503,8 +526,6 @@ service_neko_start() {
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
@@ -520,18 +541,7 @@ service_neko_start() {
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
}
(
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
)
compose_in_service_dir "$NEKO_COMPOSE" up -d
kv message "Neko stack started"
}
@@ -540,20 +550,7 @@ 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
}
(
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
)
compose_in_service_dir "$NEKO_COMPOSE" down
kv message "Neko stack stopped"
}