85 lines
3.6 KiB
Markdown
85 lines
3.6 KiB
Markdown
# Linux Install Profiles
|
||
|
||
## Quick Start
|
||
|
||
Use one of these entrypoints from the repo root on Debian, Ubuntu, or Armbian:
|
||
|
||
```bash
|
||
sudo bash install-hub.sh
|
||
sudo bash install-business.sh
|
||
sudo bash install-all.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`
|
||
- Generates the hardware profile for adaptive ARM or X86 defaults
|
||
|
||
### PM2:单频道与多频道 Pro(Linux ARM / x86_64)
|
||
|
||
- **单频道**:在项目根启用一个业务进程即可,例如取消注释 `ecosystem.config.cjs` 里的 `youtube` 或 `tiktok`,执行 `pm2 start ecosystem.config.cjs && pm2 save`。
|
||
- **多频道 Pro**:每路直播需要**独立的** `config/youtube.ini` 与 `config/URL_config.ini`(或整份独立工作目录)。为第二路及以后各复制一份目录(或符号链接脚本外的配置),在 PM2 里为每个 app 设置不同的 `cwd`,`name` 与 Web 控制台 Pro 线路建议名一致(如 `youtube2__<channelId>`)。
|
||
- **硬件编码**:`sudo python3 scripts/hardware_probe.py --write` 会写入 `config/hardware.env` 与 `hardware-profile.json`;推流侧可选 `LIVE_VIDEO_ENCODER`(RKMPP / V4L2M2M / VA-API / QSV 等,见 `config/hardware.env.example`)。NVIDIA 一般由 `douyin_youtube_ffplay.py` 自动走 NVENC。
|
||
- **音频链**:与 GitLab 分支 `ffmpegAudioRMFoode` 中 `douyin_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.
|