Processed apps directory via GitHub Actions

This commit is contained in:
QYG2297248353
2026-01-15 09:31:05 +00:00
parent ac158583e9
commit 9f8d5f37c2
56 changed files with 616 additions and 7 deletions
@@ -14,7 +14,7 @@ services:
- verificationCodeTimeout=10
- appname=casdoor
- authState=casdoor
image: casbin/casdoor:2.246.0
image: casbin/casdoor:2.246.1
labels:
createdBy: Apps
networks:
+6
View File
@@ -0,0 +1,6 @@
# 数据持久化路径 [必填]
JACKETT_ROOT_PATH=/home/jackett
# WebUI 端口 [必填]
PANEL_APP_PORT_HTTP=9117
+17
View File
@@ -0,0 +1,17 @@
additionalProperties:
formFields:
- default: "/home/jackett"
edit: true
envKey: JACKETT_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 9117
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
@@ -0,0 +1,24 @@
networks:
1panel-network:
external: true
services:
jackett:
container_name: jackett
env_file:
- ./envs/global.env
- .env
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000
image: linuxserver/jackett:0.24.850
labels:
createdBy: Apps
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:9117
restart: always
volumes:
- ${JACKETT_ROOT_PATH}/config:/config
- ${JACKETT_ROOT_PATH}/downloads:/downloads
+24
View File
@@ -0,0 +1,24 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
# setup-2 create dir
mkdir -p "$JACKETT_ROOT_PATH"
mkdir -p "$JACKETT_ROOT_PATH/config"
mkdir -p "$JACKETT_ROOT_PATH/downloads"
chown -R 1000:1000 "$JACKETT_ROOT_PATH"
echo "Check Finish."
else
echo "Error: .env file not found."
fi
+16
View File
@@ -0,0 +1,16 @@
# Jackett
支持您喜爱的种子追踪器 API
![Jackett](https://file.lifebus.top/imgs/jackett_cover.png)
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
## 简介
聚合索引器,支持您喜爱的种子追踪器 API
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
+16
View File
@@ -0,0 +1,16 @@
additionalProperties:
key: jackett
name: Jackett
tags:
- WebSite
- Local
shortDescZh: API支持您最喜爱的种子追踪器
shortDescEn: API Support for your favorite torrent trackers
type: website
crossVersionUpdate: true
limit: 0
website: https://github.com/Jackett/Jackett/
github: https://github.com/Jackett/Jackett/
document: https://github.com/Jackett/Jackett/
architectures:
- amd64
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -11,7 +11,7 @@ services:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
image: ghostchu/peerbanhelper:v9.2.4
image: ghostchu/peerbanhelper:v9.2.5
labels:
createdBy: Apps
network_mode: ${NETWORK_MODE:-host}
@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env
@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai
@@ -0,0 +1,10 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -0,0 +1,17 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
+94
View File
@@ -0,0 +1,94 @@
# Rust Srec
自动化直播录制解决方案 (Stream Rec 迭代版)
基于 Rust 构建的高性能多平台直播录制系统
![Rust-Rec](https://file.lifebus.top/imgs/rust_rec_cover.png)
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
## 安装说明
### JWT 签名密钥 生成
```shell
openssl rand -hex 32
```
### 会话密钥 生成
```shell
openssl rand -hex 32
```
### 持久化路径
目前使用 `应用持久化路径``数据持久化路径` 配置,分别用于存储应用数据和录制数据。
+ `数据持久化路径`: 是指录制数据存放的路径,占用空间较多,请自行配置。
+ `应用持久化路径`: 存放应用配置文件,如:JWT 签名密钥、会话密钥、数据库配置、日志配置、DAG 配置等。
## 特性
### 🎬 多平台支持
支持 Bilibili、抖音、斗鱼、虎牙、Twitch、TikTok 等平台
### ⚡ 高性能
Rust 构建,高效且资源占用低
### 🔄 DAG 管道
强大的后处理工作流(有向无环图)
### 🎯 灵活配置
4 层配置层级,精细化控制
### 💬 弹幕支持
同步录制弹幕
### 🐳 容器化部署
支持 Docker 和 docker-compose 快速部署
### 📅 自定义录制计划
定时录制,自动管理文件名,便于组织归档
### 🔧 FLV 修复
自动修复损坏的 FLV 流,包括时间戳校正和元数据修复
## 直播平台支持列表
| 平台 | URL 格式 | 协议 | 弹幕 |
|:----------------------------------------------------------------------------------------|:------------------------------------------------------|:--------|:---|
| [Bilibili](https://hua0512.github.io/rust-srec/zh/platforms/bilibili.html) | `live.bilibili.com/{room_id}` | FLV/HLS | ✅ |
| [抖音](https://hua0512.github.io/rust-srec/zh/platforms/douyin.html) | `live.douyin.com/{room_id}` | FLV/HLS | ✅ |
| [斗鱼](https://hua0512.github.io/rust-srec/zh/platforms/douyu.html) | `douyu.com/{room_id}` | FLV | ✅ |
| [虎牙](https://hua0512.github.io/rust-srec/zh/platforms/huya.html) | `huya.com/{room_id}` | FLV/HLS | ✅ |
| [AcFun](https://hua0512.github.io/rust-srec/zh/platforms/others.html#acfun) | `acfun.cn/live/{room_id}` | HLS | ❌ |
| [PandaTV](https://hua0512.github.io/rust-srec/zh/platforms/others.html#pandatv) | `pandalive.co.kr/play/{id}` | HLS | ❌ |
| [小红书](https://hua0512.github.io/rust-srec/zh/platforms/others.html#redbook-小红书) | `xiaohongshu.com/user/profile/{id} or xhs.link/{id}` | HLS | ❌ |
| [微博](https://hua0512.github.io/rust-srec/zh/platforms/others.html#weibo) | `weibo.com/u/{uid} or weibo.com/l/wblive/p/show/{id}` | HLS | ❌ |
| [Twitch](https://hua0512.github.io/rust-srec/zh/platforms/twitch.html) | `twitch.tv/{channel}` | HLS | ✅ |
| [TikTok](https://hua0512.github.io/rust-srec/zh/platforms/others.html#tiktok) | `tiktok.com/@{user}/live` | HLS | ❌ |
| [Twitcasting](https://hua0512.github.io/rust-srec/zh/platforms/others.html#twitcasting) | `twitcasting.tv/{user}` | HLS | ✅ |
| [Picarto](https://hua0512.github.io/rust-srec/zh/platforms/others.html#picarto) | `picarto.tv/{user}` | HLS/MP4 | ❌ |
## 安装说明
> 默认账户
>
> 用户名:admin
>
> 密码:admin123! 或 `登录密码 (初始化)` 配置
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
![Ms Studio](https://analytics.lifebus.top/p/wJix5nI1W)
+18
View File
@@ -0,0 +1,18 @@
additionalProperties:
key: rust-srec
name: Rust Srec
tags:
- WebSite
- Tool
- Local
shortDescZh: 自动流媒体录制工具
shortDescEn: Automatic streaming record tool
type: website
crossVersionUpdate: true
limit: 0
website: https://hua0512.github.io/rust-srec/
github: https://github.com/hua0512/rust-srec
document: https://hua0512.github.io/rust-srec/
architectures:
- amd64
- arm64
+24
View File
@@ -0,0 +1,24 @@
# 应用持久化路径 [必填]
RUST_REC_ROOT_PATH=/home/rust-rec
# 数据持久化路径 [必填]
RUST_REC_DATA_ROOT_PATH=/home/rust-rec
# WebUI 端口 [必填]
PANEL_APP_PORT_HTTP=8088
# API 端口 [必填]
PANEL_APP_PORT_API=8080
# JWT 签名密钥 [必填]
JWT_SECRET=
# 会话密钥 [必填]
SESSION_SECRET=
# 网络代理
HTTP_PROXY=
# 忽略代理 [必填]
NO_PROXY=localhost,127.0.0.1,rust-srec-backend
+60
View File
@@ -0,0 +1,60 @@
additionalProperties:
formFields:
- default: "/home/rust-rec"
edit: true
envKey: RUST_REC_ROOT_PATH
labelZh: 应用持久化路径
labelEn: Data persistence path
required: true
type: text
- default: "/home/rust-rec"
edit: true
envKey: RUST_REC_DATA_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 8088
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: WebUI 端口
labelEn: WebUI port
required: true
rule: paramPort
type: number
- default: 8080
edit: true
envKey: PANEL_APP_PORT_API
labelZh: API 端口
labelEn: API port
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: JWT_SECRET
labelZh: JWT 签名密钥
labelEn: JWT Secret
required: true
type: text
- default: ""
edit: true
envKey: SESSION_SECRET
labelZh: 会话密钥
labelEn: Session Secret
required: true
type: text
- default: ""
edit: true
envKey: HTTP_PROXY
labelZh: 网络代理
labelEn: Network Proxy
required: false
type: text
- default: "localhost,127.0.0.1,rust-srec-backend"
edit: true
envKey: NO_PROXY
labelZh: 忽略代理
labelEn: Ignore Proxy
required: true
type: text
+72
View File
@@ -0,0 +1,72 @@
networks:
1panel-network:
external: true
services:
rust-rec-frontend:
container_name: rust-srec
depends_on:
rust-srec-backend:
condition: service_healthy
env_file:
- ./envs/global.env
- .env
environment:
- TZ=Asia/Shanghai
- BACKEND_URL=${BACKEND_URL:-http://rust-srec-backend:8080}
- COOKIE_SECURE=${COOKIE_SECURE:-}
image: ghcr.io/hua0512/rust-srec-frontend:dev
labels:
createdBy: Apps
logging:
driver: json-file
options:
max-file: '3'
max-size: 50m
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:80
restart: always
rust-srec-backend:
container_name: backend-rust-srec
env_file:
- ./envs/global.env
- .env
environment:
- TZ=Asia/Shanghai
- RUST_LOG=${RUST_LOG:-info}
- DATABASE_URL=${DATABASE_URL:-sqlite:///app/data/rust-srec.db}
- API_PORT=8080
- API_BIND_ADDRESS=0.0.0.0
- ACCESS_TOKEN_EXPIRATION_SECS=${ACCESS_TOKEN_EXPIRATION_SECS:-3600}
- REFRESH_TOKEN_EXPIRATION_SECS=${REFRESH_TOKEN_EXPIRATION_SECS:-604800}
- MIN_PASSWORD_LENGTH=${MIN_PASSWORD_LENGTH:-8}
- HTTP_PROXY=${HTTP_PROXY:-}
- HTTPS_PROXY=${HTTP_PROXY:-}
healthcheck:
interval: 30s
retries: 3
start_period: 10s
test:
- CMD
- curl
- -f
- http://localhost:8080/api/health/live
timeout: 10s
image: ghcr.io/hua0512/rust-srec:dev
logging:
driver: json-file
options:
max-file: '5'
max-size: 100m
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_API}:8080
restart: always
volumes:
- ${RUST_REC_DATA_ROOT_PATH}/data:/app/data
- ${RUST_REC_DATA_ROOT_PATH}/output:/app/output
- ${RUST_REC_ROOT_PATH}/config:/app/config
- ${RUST_REC_ROOT_PATH}/logs:/app/logs
- ${RUST_REC_ROOT_PATH}/tmp:/tmp
+8
View File
@@ -0,0 +1,8 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env
DATA_DIR=/app/data
CONFIG_DIR=/app/config
OUTPUT_DIR=/app/output
LOG_DIR=/app/logs
JWT_ISSUER=rust-srec
JWT_AUDIENCE=rust-srec-api
+2
View File
@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
@@ -0,0 +1,10 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
sed -i '/^GLOBAL_ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

+1 -1
View File
@@ -2,7 +2,7 @@
简单而强大的CI/CD引擎,具有很强的可扩展性
![Woodpecker](https://file.lifebus.top/imgs/app_name_cover.png)
![Woodpecker](https://file.lifebus.top/imgs/woodpecker_cover.png)
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
+3
View File
@@ -22,6 +22,9 @@ WOODPECKER_ADMIN=
# 组织列表
WOODPECKER_ORGS=
# 特权插件
WOODPECKER_PLUGINS_PRIVILEGED=
# 登录过期时间 [必填]
WOODPECKER_SESSION_EXPIRES=72h
@@ -63,6 +63,13 @@ additionalProperties:
labelEn: Organization list
required: false
type: text
- default: ""
edit: true
envKey: WOODPECKER_PLUGINS_PRIVILEGED
labelZh: 特权插件
labelEn: Privileged plugins
required: false
type: text
- default: "72h"
edit: true
envKey: WOODPECKER_SESSION_EXPIRES
+1 -1
View File
@@ -2,7 +2,7 @@
简单而强大的CI/CD引擎,具有很强的可扩展性
![Woodpecker](https://file.lifebus.top/imgs/app_name_cover.png)
![Woodpecker](https://file.lifebus.top/imgs/woodpecker_cover.png)
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
+1 -1
View File
@@ -2,7 +2,7 @@
简单而强大的CI/CD引擎,具有很强的可扩展性
![Woodpecker](https://file.lifebus.top/imgs/app_name_cover.png)
![Woodpecker](https://file.lifebus.top/imgs/woodpecker_cover.png)
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
+1 -1
View File
@@ -14,7 +14,7 @@ services:
- verificationCodeTimeout=10
- appname=casdoor
- authState=casdoor
image: casbin/casdoor:2.246.0
image: casbin/casdoor:2.246.1
labels:
createdBy: Apps
networks:
+6
View File
@@ -0,0 +1,6 @@
# 数据持久化路径 [必填]
JACKETT_ROOT_PATH=/home/jackett
# WebUI 端口 [必填]
PANEL_APP_PORT_HTTP=9117
+24
View File
@@ -0,0 +1,24 @@
networks:
1panel-network:
external: true
services:
jackett:
container_name: jackett
env_file:
- ./envs/global.env
- .env
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000
image: linuxserver/jackett:0.24.850
labels:
createdBy: Apps
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:9117
restart: always
volumes:
- ${JACKETT_ROOT_PATH}/config:/config
- ${JACKETT_ROOT_PATH}/downloads:/downloads
+2
View File
@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env
+2
View File
@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai
+1 -1
View File
@@ -11,7 +11,7 @@ services:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
image: ghostchu/peerbanhelper:v9.2.4
image: ghostchu/peerbanhelper:v9.2.5
labels:
createdBy: Apps
network_mode: ${NETWORK_MODE:-host}
+24
View File
@@ -0,0 +1,24 @@
# 应用持久化路径 [必填]
RUST_REC_ROOT_PATH=/home/rust-rec
# 数据持久化路径 [必填]
RUST_REC_DATA_ROOT_PATH=/home/rust-rec
# WebUI 端口 [必填]
PANEL_APP_PORT_HTTP=8088
# API 端口 [必填]
PANEL_APP_PORT_API=8080
# JWT 签名密钥 [必填]
JWT_SECRET=
# 会话密钥 [必填]
SESSION_SECRET=
# 网络代理
HTTP_PROXY=
# 忽略代理 [必填]
NO_PROXY=localhost,127.0.0.1,rust-srec-backend
+72
View File
@@ -0,0 +1,72 @@
networks:
1panel-network:
external: true
services:
rust-rec-frontend:
container_name: rust-srec
depends_on:
rust-srec-backend:
condition: service_healthy
env_file:
- ./envs/global.env
- .env
environment:
- TZ=Asia/Shanghai
- BACKEND_URL=${BACKEND_URL:-http://rust-srec-backend:8080}
- COOKIE_SECURE=${COOKIE_SECURE:-}
image: ghcr.io/hua0512/rust-srec-frontend:dev
labels:
createdBy: Apps
logging:
driver: json-file
options:
max-file: '3'
max-size: 50m
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:80
restart: always
rust-srec-backend:
container_name: backend-rust-srec
env_file:
- ./envs/global.env
- .env
environment:
- TZ=Asia/Shanghai
- RUST_LOG=${RUST_LOG:-info}
- DATABASE_URL=${DATABASE_URL:-sqlite:///app/data/rust-srec.db}
- API_PORT=8080
- API_BIND_ADDRESS=0.0.0.0
- ACCESS_TOKEN_EXPIRATION_SECS=${ACCESS_TOKEN_EXPIRATION_SECS:-3600}
- REFRESH_TOKEN_EXPIRATION_SECS=${REFRESH_TOKEN_EXPIRATION_SECS:-604800}
- MIN_PASSWORD_LENGTH=${MIN_PASSWORD_LENGTH:-8}
- HTTP_PROXY=${HTTP_PROXY:-}
- HTTPS_PROXY=${HTTP_PROXY:-}
healthcheck:
interval: 30s
retries: 3
start_period: 10s
test:
- CMD
- curl
- -f
- http://localhost:8080/api/health/live
timeout: 10s
image: ghcr.io/hua0512/rust-srec:dev
logging:
driver: json-file
options:
max-file: '5'
max-size: 100m
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_API}:8080
restart: always
volumes:
- ${RUST_REC_DATA_ROOT_PATH}/data:/app/data
- ${RUST_REC_DATA_ROOT_PATH}/output:/app/output
- ${RUST_REC_ROOT_PATH}/config:/app/config
- ${RUST_REC_ROOT_PATH}/logs:/app/logs
- ${RUST_REC_ROOT_PATH}/tmp:/tmp
+8
View File
@@ -0,0 +1,8 @@
# copyright© 2024 XinJiang Ms Studio
ENV_FILE=.env
DATA_DIR=/app/data
CONFIG_DIR=/app/config
OUTPUT_DIR=/app/output
LOG_DIR=/app/logs
JWT_ISSUER=rust-srec
JWT_AUDIENCE=rust-srec-api
+2
View File
@@ -0,0 +1,2 @@
# copyright© 2024 XinJiang Ms Studio
TZ=Asia/Shanghai
+3
View File
@@ -22,6 +22,9 @@ WOODPECKER_ADMIN=
# 组织列表
WOODPECKER_ORGS=
# 特权插件
WOODPECKER_PLUGINS_PRIVILEGED=
# 登录过期时间 [必填]
WOODPECKER_SESSION_EXPIRES=72h