This commit is contained in:
eric
2026-03-28 13:27:53 -05:00
parent d34ecab19c
commit 8053c4cb6d
48 changed files with 3527 additions and 1433 deletions

View File

@@ -0,0 +1,19 @@
{
"id": "douyinyoutube",
"name": "无人直播(抖音/TikTok → YouTube / SRS / HDMI",
"enabled": true,
"layer": "business",
"install_marker": "/opt/live/business/douyinyoutube/.installed",
"ffmpeg": {
"template_id": "default",
"auto_restart": true,
"retry_seconds": 15
},
"streams": {
"douyin_input_url": "",
"youtube_rtmp_key": "",
"srs_publish_url": "",
"hdmi_device": ""
},
"note": "具体推流参数仍可由 PM2 脚本与 config/*.ini 管理;此处为声明式元数据,供控制台与恢复策略使用"
}

View File

@@ -0,0 +1,16 @@
{
"version": 1,
"wifi": {
"enabled": true,
"connection_name": "live-wifi",
"ssid": "live",
"psk": "12345678"
},
"ipv6": {
"disable": true
},
"android_proxy": {
"mode": "gateway_optional",
"description": "可选透明网关或 ShellCrash 规则;具体由 ShellCrash 与 network 脚本实现"
}
}

View File

@@ -0,0 +1,12 @@
{
"id": "android_panel",
"layer": "infra",
"enabled": true,
"manager": "systemd",
"ports": { "http": 5000 },
"env": {
"ENABLE_ANDROID_PANEL": "1",
"ANDROID_PANEL_PORT": "5000",
"ANDROID_PANEL_DIR": "/opt/live-modules/web-scrcpy"
}
}

View File

@@ -0,0 +1,9 @@
{
"id": "caddy",
"layer": "infra",
"enabled": false,
"manager": "systemd",
"description": "可选:统一 live.local:80 入口,反代控制台静态 + /api → FastAPI",
"ports": { "http": 80, "https": 443 },
"template": "/opt/live/templates/Caddyfile"
}

View File

@@ -0,0 +1,13 @@
{
"id": "filebrowser",
"layer": "infra",
"enabled": true,
"manager": "docker",
"ports": { "http": 8082 },
"env": {
"ENABLE_FILEBROWSER": "1",
"FILEBROWSER_PORT": "8082",
"FILEBROWSER_USER": "live",
"FILEBROWSER_PASS": "12345678"
}
}

View File

@@ -0,0 +1,8 @@
{
"id": "frp",
"layer": "infra",
"enabled": false,
"manager": "systemd",
"description": "占位:内网穿透,由运维填入 frpc 配置后启用",
"ports": {}
}

View File

@@ -0,0 +1,8 @@
{
"id": "homepage",
"layer": "infra",
"enabled": true,
"manager": "docker",
"ports": { "http": 3080 },
"env": { "ENABLE_HOMEPAGE": "1", "HOMEPAGE_PORT": "3080" }
}

View File

@@ -0,0 +1,13 @@
{
"id": "neko",
"layer": "infra",
"enabled": false,
"manager": "docker",
"ports": { "http": 9200 },
"env": {
"ENABLE_NEKO": "0",
"NEKO_HTTP_PORT": "9200",
"NEKO_USER_PASS": "live",
"NEKO_ADMIN_PASS": "admin"
}
}

View File

@@ -0,0 +1,8 @@
{
"id": "netdata",
"layer": "infra",
"enabled": true,
"manager": "native",
"ports": { "http": 19999 },
"env": { "NETDATA_PORT": "19999", "ENABLE_NETDATA": "1" }
}

View File

@@ -0,0 +1,11 @@
{
"id": "shellcrash",
"layer": "infra",
"enabled": true,
"manager": "systemd",
"ports": {},
"env": {
"SHELLCRASH_DIR": "/etc/ShellCrash",
"ENABLE_SHELLCRASH": "1"
}
}

View File

@@ -0,0 +1,16 @@
{
"id": "srs",
"layer": "infra",
"enabled": true,
"manager": "docker",
"ports": {
"http": 8080,
"rtmp": 1935,
"api": 1985
},
"env": {
"SRS_HTTP_PORT": "8080",
"SRS_RTMP_PORT": "1935",
"SRS_API_PORT": "1985"
}
}

View File

@@ -0,0 +1,13 @@
{
"id": "webtty",
"layer": "core",
"enabled": true,
"manager": "systemd",
"ports": { "http": 7681 },
"env": {
"ENABLE_WEBTTY": "1",
"WEBTTY_PORT": "7681",
"WEBTTY_USER": "live",
"WEBTTY_PASS": "12345678"
}
}

View File

@@ -0,0 +1,8 @@
{
"id": "wireguard",
"layer": "infra",
"enabled": false,
"manager": "systemd",
"description": "占位VPN 接口,与 ShellCrash 并存时需规划路由",
"ports": {}
}

View File

@@ -0,0 +1,21 @@
{
"version": 1,
"platform": {
"arch": "auto",
"description": "auto = detect via uname -m (aarch64/arm64/x86_64)"
},
"identity": {
"hostname_alias": "live",
"mdns_enabled": true
},
"paths": {
"state_dir": "/opt/live/state",
"logs_dir": "/opt/live/logs",
"generated_dir": "/opt/live/generated"
},
"web_console": {
"api_port": 8001,
"public_host": "live.local",
"note": "生产环境由 Caddy :80 反代到静态资源与 API"
}
}

View File

@@ -0,0 +1,13 @@
# 将本文件复制到 /opt/live/templates/Caddyfile 并按实际路径修改
# 目标http://live.local → 静态控制台 + /api/* → FastAPI
{$LIVE_DOMAIN:live.local} {
encode gzip
# 静态Next export 由 web.py 同端口托管时可改为 reverse_proxy
handle_path /api/* {
reverse_proxy 127.0.0.1:8001
}
handle {
reverse_proxy 127.0.0.1:8001
}
}