mirror of
https://github.com/tl-open-source/tl-rtc-file.git
synced 2025-09-26 19:41:16 +08:00
feat: perf docker-compose.yml
feat: update socket host env feat: udpate doc
This commit is contained in:
173
README.md
173
README.md
@@ -1,4 +1,4 @@
|
||||
# tl-rtc-file-tool【始于文件传输,不止于文件传输】
|
||||
# tl-rtc-file-tool
|
||||
|
||||
[](https://webrtc.org.cn/)
|
||||
[](https://github.com/iamtsm/tl-rtc-file/)
|
||||
@@ -9,42 +9,45 @@
|
||||
<p align="center">
|
||||
<a href="https://im.iamtsm.cn/file" target="_blank">体验地址</a> |
|
||||
<a href="https://hub.docker.com/u/iamtsm" target="_blank">DockerHub</a> |
|
||||
<a href="https://github.com/tl-open-source/tl-rtc-file/blob/master/doc/README_EN.md" target="_blank">EN-DOC</a>
|
||||
<a href="https://github.com/tl-open-source/tl-rtc-file/blob/master/doc/README_EN.md" target="_blank"> EN-DOC </a> |QQ群:
|
||||
<a href="https://jq.qq.com/?_wv=1027&k=TKCwMBjN" target="_blank">624214498 </a>
|
||||
</p>
|
||||
|
||||
<p align="center">QQ群: <a href="https://jq.qq.com/?_wv=1027&k=TKCwMBjN" target="_blank">624214498 </a></p>
|
||||
|
||||
## 目录
|
||||
|
||||
- [背景](#背景)
|
||||
- [简介](#简介)
|
||||
- [优点](#优点)
|
||||
- [扩展](#扩展)
|
||||
- [准备 (必须步骤)](#准备-必须步骤)
|
||||
- [配置websocket (必须步骤)](#配置websocket-必须步骤)
|
||||
- [启动 (必须步骤)](#启动-必须步骤)
|
||||
- [配置数据库 (非必须步骤)](#配置数据库-非必须步骤)
|
||||
- [管理后台 (非必须步骤)](#管理后台-非必须步骤)
|
||||
- [企微通知 (非必须步骤)](#企微通知-非必须步骤)
|
||||
- [OSS云存储 (非必须步骤)](#oss云存储-非必须步骤)
|
||||
- [Chat-GPT (非必须步骤)](#chat-gpt-非必须步骤)
|
||||
- [配置turnserver (局域网非必须步骤,公网必须步骤)](#配置turnserver-局域网非必须步骤公网必须步骤)
|
||||
- [Docker](#docker)
|
||||
- [背景-简介](#背景-简介)
|
||||
- [优点-扩展](#优点-扩展)
|
||||
- [修改配置](#修改配置)
|
||||
- [自行部署](#自行部署)
|
||||
- [安装环境](#安装环境)
|
||||
- [准备启动](#准备启动)
|
||||
- [配置数据库 (非必须步骤)](#配置数据库-非必须步骤)
|
||||
- [管理后台 (非必须步骤)](#管理后台-非必须步骤)
|
||||
- [企微通知 (非必须步骤)](#企微通知-非必须步骤)
|
||||
- [OSS云存储 (非必须步骤)](#oss云存储-非必须步骤)
|
||||
- [Chat-GPT (非必须步骤)](#chat-gpt-非必须步骤)
|
||||
- [配置turnserver (局域网非必须步骤,公网必须步骤)](#配置turnserver-局域网非必须步骤公网必须步骤)
|
||||
- [Docker部署](#Docker部署)
|
||||
- [其他形式部署](#其他形式部署)
|
||||
- [概述图](#概述图)
|
||||
- [License](#license)
|
||||
- [免责声明](#免责声明)
|
||||
|
||||
#### 背景 : 20年毕设的题目相关整理出来的
|
||||
### 背景-简介
|
||||
|
||||
#### 简介 :(tl webrtc datachannel filetools)用webrt在web端传输文件,支持传输超大文件。
|
||||
20年毕设的题目相关整理出来的,(tl webrtc datachannel filetools)用webrt在web端传输文件,支持传输超大文件。
|
||||
|
||||
#### 优点 : 分片传输,跨终端,不限平台,方便使用,内网不限速(局域网最高到过70多M/s),支持私有部署,支持多文件拖拽发送,网页文件预览
|
||||
### 优点-扩展
|
||||
|
||||
#### 扩展 : 扩展了许多丰富的小功能,如本地屏幕录制,远程屏幕共享(无延迟),远程音视频通话(无延迟),直播(无延迟),密码房间,oss云存储,中继服务设置,webrtc检测,webrtc统计,文字传输(群聊,私聊),公共聊天,远程画板,AI聊天框,丰富的后台管理,实时执行日志展示,机器人告警通知等功能... 等等
|
||||
分片传输,跨终端,不限平台,方便使用,内网不限速(局域网最高到过70多M/s),支持私有部署,支持多文件拖拽发送,网页文件预览。 扩展了许多丰富的小功能,如本地屏幕录制,远程屏幕共享(无延迟),远程音视频通话(无延迟),直播(无延迟),密码房间,oss云存储,中继服务设置,webrtc检测,webrtc统计,文字传输(群聊,私聊),公共聊天,远程画板,AI聊天框,丰富的后台管理,实时执行日志展示,机器人告警通知等功能... 等等
|
||||
|
||||
|
||||
## 准备 (必须步骤)
|
||||
## 修改配置
|
||||
|
||||
无论是自行部署,还是docker部署,还是其他脚本部署,都需要先行修改 `tlrtcfile.env` 中相应配置,再执行下面操作,且后续还需修改配置,需要重启服务
|
||||
|
||||
## 自行部署
|
||||
#### 安装环境
|
||||
|
||||
1.安装node-14.21.x或14.21.x以上,npm后,进入项目目录运行下面命令
|
||||
```
|
||||
@@ -58,19 +61,7 @@ npm install
|
||||
|
||||
3.修改 `tlrtcfile.env` 配置文件
|
||||
|
||||
## 配置websocket (必须步骤)
|
||||
|
||||
修改 `tlrtcfile.env` 中相应websocket配置
|
||||
|
||||
## websocket服务端口
|
||||
tl_rtc_file_socket_port=8444
|
||||
|
||||
## websocket服务地址
|
||||
## "ws://域名 或者 ws://ip:端口 或者 ws://域名:端口"
|
||||
tl_rtc_file_socket_host=ws://127.0.0.1:8444
|
||||
|
||||
|
||||
## 启动 (必须步骤)
|
||||
#### 准备启动
|
||||
|
||||
启动以下两个服务, 选一种模式启动即可,两者的区别就是,https环境启动才可以使用音视频,直播,屏幕共享功能,其他功能不影响
|
||||
|
||||
@@ -84,89 +75,29 @@ https模式启动后,访问 https://你的机器ip:9092 即可
|
||||
- api服务: `npm run https-api`
|
||||
- socket服务 : `npm run https-socket`
|
||||
|
||||
|
||||
## 配置数据库 (非必须步骤)
|
||||
#### 配置数据库 (非必须步骤)
|
||||
|
||||
修改 `tlrtcfile.env` 中的数据库相关配置即可
|
||||
|
||||
## 是否开启数据库
|
||||
tl_rtc_file_db_open=false
|
||||
## 数据库地址
|
||||
tl_rtc_file_db_mysql_host=mysql
|
||||
## 数据库端口
|
||||
tl_rtc_file_db_mysql_port=3306
|
||||
## 数据库名称
|
||||
tl_rtc_file_db_mysql_dbName=webchat
|
||||
## 数据库用户名
|
||||
tl_rtc_file_db_mysql_user=tlrtcfile
|
||||
## 数据库密码
|
||||
tl_rtc_file_db_mysql_password=tlrtcfile
|
||||
#### 企微通知 (非必须步骤)
|
||||
|
||||
## 管理后台 (非必须步骤)
|
||||
修改 `tlrtcfile.env` 中的企业微信通知相关配置即可
|
||||
|
||||
#### OSS云存储 (非必须步骤)
|
||||
|
||||
修改 `tlrtcfile.env` 中的OSS存储相关配置即可
|
||||
|
||||
#### Chat-GPT (非必须步骤)
|
||||
|
||||
修改 `tlrtcfile.env` 中的openai相关配置即可
|
||||
|
||||
#### 管理后台 (非必须步骤)
|
||||
|
||||
前提 : 需要开启数据库配置
|
||||
|
||||
修改 `tlrtcfile.env` 中的管理后台相关配置即可, 启动后,输入配置的房间号,输入密码,即可进入管理后台
|
||||
|
||||
## 管理后台房间号
|
||||
tl_rtc_file_manage_room=tlrtcfile
|
||||
## 管理后台密码
|
||||
tl_rtc_file_manage_password=tlrtcfile
|
||||
|
||||
|
||||
## 企微通知 (非必须步骤)
|
||||
|
||||
修改 `tlrtcfile.env` 中的企业微信通知相关配置即可
|
||||
|
||||
# ## 企业微信通知开关
|
||||
tl_rtc_file_notify_open=false
|
||||
## 企业微信通知机器人KEY,正常通知,如果有多个key,逗号分隔
|
||||
tl_rtc_file_notify_qiwei_normal=
|
||||
## 企业微信通知机器人KEY,错误通知,如果有多个key,逗号分隔
|
||||
tl_rtc_file_notify_qiwei_error=
|
||||
|
||||
## OSS云存储 (非必须步骤)
|
||||
|
||||
修改 `tlrtcfile.env` 中的OSS存储相关配置即可
|
||||
|
||||
## oss-seafile存储库ID
|
||||
tl_rtc_file_oss_seafile_repoid=
|
||||
## oss-seafile地址
|
||||
tl_rtc_file_oss_seafile_host=
|
||||
## oss-seafile用户名
|
||||
tl_rtc_file_oss_seafile_username=
|
||||
## oss-seafile密码
|
||||
tl_rtc_file_oss_seafile_password=
|
||||
|
||||
## oss-alyun存储accessKey
|
||||
tl_rtc_file_oss_alyun_AccessKey=
|
||||
## oss-aly存储SecretKey
|
||||
tl_rtc_file_oss_alyun_Secretkey=
|
||||
## oss-aly存储bucket
|
||||
tl_rtc_file_oss_alyun_bucket=
|
||||
|
||||
## oss-txyun存储accessKey
|
||||
tl_rtc_file_oss_txyun_AccessKey=
|
||||
## oss-txyunt存储SecretKey
|
||||
tl_rtc_file_oss_txyun_Secretkey=
|
||||
## oss-txyun存储bucket
|
||||
tl_rtc_file_oss_txyun_bucket=
|
||||
|
||||
## oss-qiniuyun存储accessKey
|
||||
tl_rtc_file_oss_qiniuyun_AccessKey=
|
||||
## oss-qiniuyunt存储SecretKey
|
||||
tl_rtc_file_oss_qiniuyun_Secretkey==
|
||||
## oss-qiniuyun存储bucket
|
||||
tl_rtc_file_oss_qiniuyun_bucket=
|
||||
|
||||
## Chat-GPT (非必须步骤)
|
||||
|
||||
修改 `tlrtcfile.env` 中的openai相关配置即可
|
||||
|
||||
## openai-key,如果有多个key,逗号分隔
|
||||
tl_rtc_file_openai_keys=
|
||||
|
||||
## 配置turnserver (局域网非必须步骤,公网必须步骤)
|
||||
#### 配置turnserver (局域网非必须步骤,公网必须步骤)
|
||||
|
||||
目前有两种形式去生成使用turn服务的帐号密码,一种是固定帐号密码 (优先推荐),一种是有效期帐号密码。**选一种方式即可**
|
||||
|
||||
@@ -208,9 +139,15 @@ ubuntu示例:
|
||||
|
||||
目前支持 `官方镜像` 和 `自行打包镜像`,使用官方镜像目前支持两种操作方式 `docker脚本启动`,`docker-compose启动`
|
||||
|
||||
和自行在 `服务器/电脑部署` 不同的是,docke环境默认开启数据库,coturn服务,无须过多额外操作,启动即可用。
|
||||
和 `自行部署` 操作/配置上的差异有下面两点。
|
||||
|
||||
### 使用官方镜像(docker脚本启动) :
|
||||
- [x] docker环境默认开启数据库,coturn服务
|
||||
|
||||
- [x] docker环境需要挂载coturn的配置,项目基础配置(tlrtcfile.env)
|
||||
|
||||
由于是内置coturn和mysql服务,所以这两个相应的配置(可以在docker-compose.yml中找到具体配置文件位置),也需要在启动前修改好。
|
||||
|
||||
#### 使用官方镜像(docker脚本启动) :
|
||||
|
||||
按需修改好 `tlrtcfile.env` 配置 (或使用默认配置也可) 后,进入 `bin/` 目录执行脚本 `auto-pull-and-start-docker.sh`
|
||||
|
||||
@@ -219,7 +156,7 @@ chmod +x ./auto-pull-and-start-docker.sh
|
||||
./auto-pull-and-start-docker.sh
|
||||
```
|
||||
|
||||
### 使用官方镜像(docker-compose启动) :
|
||||
#### 使用官方镜像(docker-compose启动) :
|
||||
|
||||
按需修改好 `tlrtcfile.env` 配置 (或使用默认配置也可) 后,根据你的`Docker Compose`版本在主目录执行如下对应的命令
|
||||
|
||||
@@ -233,7 +170,7 @@ docker-compose --profile=http up -d
|
||||
docker compose --profile=http up -d
|
||||
```
|
||||
|
||||
### 自行打包启动镜像(docker-compose打包启动) :
|
||||
#### 自行打包启动镜像(docker-compose打包启动) :
|
||||
|
||||
确认修改好 `tlrtcfile.env` 配置文件 (或使用默认配置也可) 后, 进入 `docker/` 目录后根据你的`Docker Compose`版本在主目录执行如下对应的命令
|
||||
|
||||
@@ -253,9 +190,9 @@ docker compose -f docker-compose-build-code.yml up -d
|
||||
|
||||
下载项目后,可以进入 `bin/` 目录,选择对应的系统脚本,直接执行即可,会自动检测安装环境,自动安装依赖,自动启动服务
|
||||
|
||||
**注意 : 执行之前可以先修改好配置,如使用默认配置,后续修改需要重启两个服务才能生效**,重启可以先执行 `停止服务脚本`,然后再次执行 `自动脚本` 即可
|
||||
**注意 : 执行之前可以先修改好 tlrtcfile.env 配置,如使用默认配置,后续修改需要重启两个服务才能生效**,重启可以先执行 `停止服务脚本`,然后再次执行 `自动脚本` 即可
|
||||
|
||||
### ubuntu自动脚本 (比如ubuntu16)
|
||||
#### ubuntu自动脚本 (比如ubuntu16)
|
||||
|
||||
```
|
||||
chmod +x ./ubuntu16/*.sh
|
||||
@@ -273,7 +210,7 @@ cd ubuntu16/
|
||||
./auto-stop.sh
|
||||
```
|
||||
|
||||
### windows自动脚本
|
||||
#### windows自动脚本
|
||||
|
||||
```
|
||||
windows/auto-check-install-http.bat
|
||||
@@ -283,7 +220,7 @@ windows/auto-check-install-http.bat
|
||||
windows/auto-check-install-https.bat
|
||||
```
|
||||
|
||||
### zeabur平台一键部署
|
||||
#### zeabur平台一键部署
|
||||
|
||||
[](https://zeabur.com/templates/898TLE?referralCode=iamtsm)
|
||||
|
||||
|
@@ -65,8 +65,8 @@ Modify the corresponding websocket configurations in `tlrtcfile.env`:
|
||||
tl_rtc_file_socket_port=8444
|
||||
|
||||
## Websocket server address
|
||||
## "ws://domain or ws://ip:port or ws://domain:port"
|
||||
tl_rtc_file_socket_host=ws://127.0.0.1:8444
|
||||
## "domain or ip:port or domain:port"
|
||||
tl_rtc_file_socket_host=127.0.0.1
|
||||
|
||||
## Startup (Essential Steps)
|
||||
|
||||
|
@@ -1,4 +1,6 @@
|
||||
## 用于docker-compose部署并启动官方镜像
|
||||
## !!!!!!用于docker-compose部署并启动官方镜像!!!!!!
|
||||
## !!!!!!挂载配置的形式启动,方便修改配置!!!!!!!!!!!!
|
||||
## !!!!!!需要依赖项目配置文件!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
version: '3'
|
||||
services:
|
||||
@@ -6,10 +8,10 @@ services:
|
||||
#http模式启动api服务
|
||||
api-http:
|
||||
profiles: ['http']
|
||||
container_name: api
|
||||
image: iamtsm/tl-rtc-file-api
|
||||
container_name: api
|
||||
env_file:
|
||||
- ./tlrtcfile.env
|
||||
- tlrtcfile.env
|
||||
environment:
|
||||
- tl_rtc_file_env_mode=http
|
||||
- tl_rtc_file_db_open=true
|
||||
@@ -23,15 +25,15 @@ services:
|
||||
- mysql
|
||||
- coturn
|
||||
volumes:
|
||||
- ./tlrtcfile.env:/tlrtcfile/tlrtcfile.env
|
||||
- tlrtcfile.env:/tlrtcfile/tlrtcfile.env
|
||||
|
||||
#https模式启动api服务
|
||||
api-https:
|
||||
profiles: ['https']
|
||||
container_name: api
|
||||
image: iamtsm/tl-rtc-file-api
|
||||
container_name: api
|
||||
env_file:
|
||||
- ./tlrtcfile.env
|
||||
- tlrtcfile.env
|
||||
environment:
|
||||
- tl_rtc_file_env_mode=https
|
||||
- tl_rtc_file_db_open=true
|
||||
@@ -45,17 +47,17 @@ services:
|
||||
- mysql
|
||||
- coturn
|
||||
volumes:
|
||||
- ./tlrtcfile.env:/tlrtcfile/tlrtcfile.env
|
||||
- tlrtcfile.env:/tlrtcfile/tlrtcfile.env
|
||||
|
||||
#http模式启动socket服务
|
||||
socket-http:
|
||||
profiles: ['http']
|
||||
container_name: socket
|
||||
image: iamtsm/tl-rtc-file-socket
|
||||
container_name: socket
|
||||
command:
|
||||
- tlsocket
|
||||
env_file:
|
||||
- ./tlrtcfile.env
|
||||
- tlrtcfile.env
|
||||
environment:
|
||||
- tl_rtc_file_env_mode=http
|
||||
- tl_rtc_file_db_open=true
|
||||
@@ -67,17 +69,17 @@ services:
|
||||
- mysql
|
||||
- coturn
|
||||
volumes:
|
||||
- ./tlrtcfile.env:/tlrtcfile/tlrtcfile.env
|
||||
- tlrtcfile.env:/tlrtcfile/tlrtcfile.env
|
||||
|
||||
#https模式启动socket服务
|
||||
socket-https:
|
||||
profiles: ['https']
|
||||
container_name: socket
|
||||
image: iamtsm/tl-rtc-file-socket
|
||||
container_name: socket
|
||||
command:
|
||||
- tlsocket
|
||||
env_file:
|
||||
- ./tlrtcfile.env
|
||||
- tlrtcfile.env
|
||||
environment:
|
||||
- tl_rtc_file_env_mode=https
|
||||
- tl_rtc_file_db_open=true
|
||||
@@ -89,20 +91,26 @@ services:
|
||||
- mysql
|
||||
- coturn
|
||||
volumes:
|
||||
- ./tlrtcfile.env:/tlrtcfile/tlrtcfile.env
|
||||
- tlrtcfile.env:/tlrtcfile/tlrtcfile.env
|
||||
|
||||
#mysql服务
|
||||
mysql:
|
||||
profiles: ['http','https']
|
||||
container_name: mysql
|
||||
image: iamtsm/tl-rtc-file-mysql
|
||||
container_name: mysql
|
||||
restart: always
|
||||
env_file:
|
||||
- ./docker/mysql/mysql.env
|
||||
environment:
|
||||
#设置root密码
|
||||
- MYSQL_ROOT_PASSWORD=tlrtcfile
|
||||
#设置数据库
|
||||
- MYSQL_DATABASE=webchat
|
||||
#设置用户
|
||||
- MYSQL_USER=tlrtcfile
|
||||
#设置用户密码
|
||||
- MYSQL_PASSWORD=tlrtcfile
|
||||
ports:
|
||||
- 3306:3306
|
||||
volumes:
|
||||
- ./docker/mysql/data/mysql.env:/tlrtcfile/docker/mysql/mysql.env
|
||||
- ./docker/mysql/data/db:/var/lib/mysql
|
||||
- ./docker/mysql/data/my.cnf:/etc/mysql/conf.d/my.cnf
|
||||
- ./docker/mysql/data/log:/var/log/mysql
|
||||
@@ -111,10 +119,8 @@ services:
|
||||
#coturn服务
|
||||
coturn:
|
||||
profiles: ['http','https']
|
||||
container_name: coturn
|
||||
image: iamtsm/tl-rtc-file-coturn
|
||||
env_file:
|
||||
- ./docker/coturn/coturn.env
|
||||
container_name: coturn
|
||||
ports:
|
||||
- "3478:3478/udp"
|
||||
- "3478:3478/tcp"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "10.3.8",
|
||||
"version": "10.4.0",
|
||||
"socket": {
|
||||
"port": "请到 tlrtcfile.env 中进行配置",
|
||||
"host": "请到 tlrtcfile.env 中进行配置"
|
||||
|
@@ -28,9 +28,11 @@ function initData(req, res) {
|
||||
ip = "127.0.0.1"
|
||||
}
|
||||
|
||||
let wsHost = conf.socket.host || ip;
|
||||
|
||||
let data = {
|
||||
version : conf.version,
|
||||
wsHost: conf.socket.host || ip,
|
||||
wsHost: "ws://" + wsHost + ":" + conf.socket.port,
|
||||
rtcConfig: { iceServers },
|
||||
options: webrtcConf.options,
|
||||
logo : utils.genClientLogo(),
|
||||
@@ -39,9 +41,11 @@ function initData(req, res) {
|
||||
res.json(data)
|
||||
}else{
|
||||
|
||||
let wsHost = conf.socket.host || ip;
|
||||
|
||||
let data = {
|
||||
version : conf.version,
|
||||
wsHost: conf.socket.host,
|
||||
wsHost: "wss://" + wsHost + ":" + conf.socket.port,
|
||||
rtcConfig: { iceServers },
|
||||
options: webrtcConf.options,
|
||||
logo : utils.genClientLogo(),
|
||||
|
@@ -4,7 +4,7 @@ tl_rtc_file_api_port=9092
|
||||
## websocket服务端口
|
||||
tl_rtc_file_socket_port=8444
|
||||
## websocket服务地址
|
||||
tl_rtc_file_socket_host=ws://127.0.0.1:8444
|
||||
tl_rtc_file_socket_host=127.0.0.1
|
||||
|
||||
|
||||
#-----------------以下为webrtc相关配置-----------------#
|
||||
@@ -75,13 +75,13 @@ tl_rtc_file_manage_room=tlrtcfile
|
||||
tl_rtc_file_manage_password=tlrtcfile
|
||||
|
||||
|
||||
# #-----------------以下为openai相关配置-----------------#
|
||||
# ## openai-key,如果有多个key,逗号分隔
|
||||
#-----------------以下为openai相关配置-----------------#
|
||||
## openai-key,如果有多个key,逗号分隔
|
||||
tl_rtc_file_openai_keys=
|
||||
|
||||
|
||||
# #-----------------以下为企业微信通知相关配置-----------------#
|
||||
# ## 企业微信通知开关
|
||||
#-----------------以下为企业微信通知相关配置-----------------#
|
||||
## 企业微信通知开关
|
||||
tl_rtc_file_notify_open=false
|
||||
## 企业微信通知机器人KEY,正常通知,如果有多个key,逗号分隔
|
||||
tl_rtc_file_notify_qiwei_normal=
|
||||
|
Reference in New Issue
Block a user