Skip to content

Commit

Permalink
feat: perf docker-compose.yml
Browse files Browse the repository at this point in the history
feat: update socket host env
feat: udpate doc
  • Loading branch information
iamtsm committed Aug 15, 2023
1 parent 540b1d1 commit ab27863
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 144 deletions.
165 changes: 51 additions & 114 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# tl-rtc-file-tool【始于文件传输,不止于文件传输】
# tl-rtc-file-tool

[![](https://img.shields.io/badge/webrtc-p2p-blue)](https://webrtc.org.cn/)
[![](https://img.shields.io/badge/code-simple-green)](https://github.com/iamtsm/tl-rtc-file/)
Expand All @@ -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年毕设的题目相关整理出来的
### 背景-简介

20年毕设的题目相关整理出来的,(tl webrtc datachannel filetools)用webrt在web端传输文件,支持传输超大文件。

### 优点-扩展

#### 简介 :(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后,进入项目目录运行下面命令
```
Expand All @@ -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环境启动才可以使用音视频,直播,屏幕共享功能,其他功能不影响

Expand All @@ -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` 中的管理后台相关配置即可, 启动后,输入配置的房间号,输入密码,即可进入管理后台

## 管理后台房间号
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云存储 (非必须步骤)
#### 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 (非必须步骤)
#### Chat-GPT (非必须步骤)

修改 `tlrtcfile.env` 中的openai相关配置即可

## openai-key,如果有多个key,逗号分隔
tl_rtc_file_openai_keys=
#### 管理后台 (非必须步骤)

前提 : 需要开启数据库配置

修改 `tlrtcfile.env` 中的管理后台相关配置即可, 启动后,输入配置的房间号,输入密码,即可进入管理后台

## 配置turnserver (局域网非必须步骤,公网必须步骤)
#### 配置turnserver (局域网非必须步骤,公网必须步骤)

目前有两种形式去生成使用turn服务的帐号密码,一种是固定帐号密码 (优先推荐),一种是有效期帐号密码。**选一种方式即可**

Expand Down Expand Up @@ -208,9 +139,15 @@ ubuntu示例:

目前支持 `官方镜像``自行打包镜像`,使用官方镜像目前支持两种操作方式 `docker脚本启动``docker-compose启动`

和自行在 `服务器/电脑部署` 不同的是,docke环境默认开启数据库,coturn服务,无须过多额外操作,启动即可用。
`自行部署` 操作/配置上的差异有下面两点。

- [x] docker环境默认开启数据库,coturn服务

- [x] docker环境需要挂载coturn的配置,项目基础配置(tlrtcfile.env)

由于是内置coturn和mysql服务,所以这两个相应的配置(可以在docker-compose.yml中找到具体配置文件位置),也需要在启动前修改好。

### 使用官方镜像(docker脚本启动) :
#### 使用官方镜像(docker脚本启动) :

按需修改好 `tlrtcfile.env` 配置 (或使用默认配置也可) 后,进入 `bin/` 目录执行脚本 `auto-pull-and-start-docker.sh`

Expand All @@ -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`版本在主目录执行如下对应的命令

Expand All @@ -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`版本在主目录执行如下对应的命令

Expand All @@ -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
Expand All @@ -273,7 +210,7 @@ cd ubuntu16/
./auto-stop.sh
```

### windows自动脚本
#### windows自动脚本

```
windows/auto-check-install-http.bat
Expand All @@ -283,7 +220,7 @@ windows/auto-check-install-http.bat
windows/auto-check-install-https.bat
```

### zeabur平台一键部署
#### zeabur平台一键部署

[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/898TLE?referralCode=iamtsm)

Expand Down
4 changes: 2 additions & 2 deletions doc/README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
46 changes: 26 additions & 20 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
## 用于docker-compose部署并启动官方镜像
## !!!!!!用于docker-compose部署并启动官方镜像!!!!!!
## !!!!!!挂载配置的形式启动,方便修改配置!!!!!!!!!!!!
## !!!!!!需要依赖项目配置文件!!!!!!!!!!!!!!!!!!!!!!

version: '3'
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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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"
Expand Down
Loading

0 comments on commit ab27863

Please sign in to comment.