Files
gitlab-instance-0a899031_do…/docs/install-profiles.md
2026-03-29 04:03:08 -05:00

4.9 KiB
Raw Blame History

Linux Install Profiles

Quick Start

Use one of these entrypoints from the repo root on Debian, Ubuntu, or Armbian:

sudo bash install-hub.sh
sudo bash install-business.sh
sudo bash install-all.sh

After git pull (no full reinstall)

刷新依赖、重建前端、重启 live-consolelive-edge不要为此再跑 install-all.sh,除非你要重做整机栈):

cd /home/live/douyinyoutube   # 或你的克隆路径
sudo bash upgrade-live.sh

What Each Script Does

install-hub.sh

Use this when the Linux device should become the reusable super hub first.

  • Creates and refreshes the live account
  • Installs the shared control plane runtime
  • Enables live.local
  • Creates the default Wi-Fi profile live / 12345678 when wlan0 exists
  • Installs ShellCrash, WebTTY, Cockpit, File Browser, Homepage, and Netdata
  • Installs the Android web panel based on web-scrcpy
  • Builds the web console and enables live-console.service

install-business.sh

Use this when the device should only run the Douyin or YouTube business stack.

  • Creates and refreshes the live account
  • Installs the shared control plane runtime
  • Installs ffmpeg, mpv, ADB, Chromium
  • Installs the Android web panel based on web-scrcpy
  • Starts SRS
  • Builds the web console and enables live-console.service
  • Installs Caddy live-edge.service so http://live.local (port 80) reverse-proxies to the control plane (same as hub)
  • Generates the hardware profile for adaptive ARM or X86 defaults

http://live.local returns 502

502 means the edge proxy reached nothing usable on the upstream port (default 127.0.0.1:8001).

  1. Check the control plane: sudo systemctl status live-console.service and journalctl -u live-console.service -n 80 --no-pager.
  2. Check the edge: sudo systemctl status live-edge.service and confirm config/system-stack.env PORT matches what Caddy uses (regenerate with sudo bash scripts/linux/reinstall_live_edge.sh from the repo root).
  3. Quick probe: curl -sf http://127.0.0.1:8001/health — if this fails, fix live-console first (Python venv, web-console/out, or scripts/launch.py errors in the journal).

Older business installs (before install_live_edge_proxy was included) never installed Caddy; if you still see 502 on port 80, you likely had a prior hub/edge install—run sudo bash scripts/linux/reinstall_live_edge.sh after pulling the latest repo.

PM2单频道与多频道 ProLinux ARM / x86_64

  • 单频道:在项目根启用一个业务进程即可,例如取消注释 ecosystem.config.cjs 里的 youtubetiktok,执行 pm2 start ecosystem.config.cjs && pm2 save
  • 多频道 Pro:每路直播需要独立的 config/youtube.iniconfig/URL_config.ini(或整份独立工作目录)。为第二路及以后各复制一份目录(或符号链接脚本外的配置),在 PM2 里为每个 app 设置不同的 cwdname 与 Web 控制台 Pro 线路建议名一致(如 youtube2__<channelId>)。
  • 硬件编码sudo python3 scripts/hardware_probe.py --write 会写入 config/hardware.envhardware-profile.json;推流侧可选 LIVE_VIDEO_ENCODERRKMPP / V4L2M2M / VA-API / QSV 等,见 config/hardware.env.example。NVIDIA 一般由 douyin_youtube_ffplay.py 自动走 NVENC。
  • 音频链:与 GitLab 分支 ffmpegAudioRMFoodedouyin_youtube_ffplay.py 的 FFmpeg 处理思路一致(fast_audio、arnndn、EQ 等);当前主线在 Linux 上还包含板载编码探测与推流稳定性增强,以前端无需对齐 Electron 为准。

install-all.sh

Use this when the node should be both the super hub and the livestream business node.

  • Runs install-hub.sh
  • Runs install-business.sh
  • Reuses shared modules instead of replacing them

Shared Config

All install profiles read the same shared file:

  • config/system-stack.env

If the file does not exist, the installer copies:

  • config/system-stack.env.example

This keeps host identity, ports, Wi-Fi, ShellCrash path, and module toggles centralized.

Default Access URLs

With the default hostname and ports, a fresh hub exposes:

  • http://live.local:8001 main control plane
  • http://live.local:8001/shellcrash ShellCrash editor route
  • http://live.local:8001/android Android device center route
  • http://live.local:7681 WebTTY
  • http://live.local:8082 File Browser, default login live / 12345678
  • http://live.local:19999 Netdata

The ShellCrash and Android pages are separate routes on purpose, so they can be bookmarked directly instead of sharing the same tabbed root URL.

Separation Rules

  • The hub profile must keep working without SRS.
  • The business profile must keep working without Cockpit, Homepage, File Browser, or Netdata.
  • The control plane should show degraded modules as unavailable instead of crashing.
  • Every service must be removable by systemd or compose boundaries.