5 Star 39 Fork 18

tl-open-source / tl-rtc-file

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

tl-rtc-file-tool (tl webrtc file(media) tools)

DemoDocumentDockerHub中文文档 | QQ Group: 624214498

Table of Contents

Background

This project was developed based on the topic of the graduation project in 2020. It allows file transfer using WebRTC in web applications and supports transferring large files.

Advantages

Fragmented transmission, cross-platform, platform-independent, easy to use, no speed limit in the local network (up to over 70 MB/s in the LAN), supports private deployment, supports drag-and-drop sending of multiple files, web file preview. Many additional features have been added, such as local screen recording, remote screen sharing (zero-latency), remote audio and video calls (zero-latency), live streaming (zero-latency), password-protected rooms, OSS cloud storage, relay service settings, WebRTC detection, WebRTC statistics, text transmission (group chat, private chat), public chat, remote whiteboard, AI chatbox, feature-rich admin panel, real-time execution log display, robot alert notifications, and more.

Pre-deployment Considerations

Whether it's self-deployment, Docker deployment, or other script deployments, you need to modify the corresponding configurations in tlrtcfile.env before performing the following operations. Further configuration modifications and service restarts are required.

Of course, you can also use the default configurations without modifications, but the default configurations are only suitable for testing on localhost. They won't be accessible to others, making it impossible for others to use. Therefore, if you intend to deploy on a server for local network or public network users, you must configure tlrtcfile.env accordingly.

Self-Deployment

Installing Dependencies

Install Node.js 14.21.x or above, and npm. Then, navigate to the project directory and run the following command:

cd svr/

npm install

For the first run, execute the following command:

npm run build:pro

If you need to develop or modify the frontend pages, use this command. If not, you can skip this step:

npm run build:dev

Starting the Service

Start the following two services. Choose one mode to start. The only difference between them is that the HTTPS mode is required to use features like audio/video streaming, live streaming, and screen sharing. Other features are not affected.

After starting in HTTP mode, access the service at http://your_machine_ip:9092.

  • Start the API and socket services:
npm run http-api
npm run http-socket

Or, start in HTTPS mode and access the service at https://your_machine_ip:9092.

  • Start the API and socket services:
npm run https-api
npm run https-socket

Docker Deployment

Currently, both official images and self-built images are supported. For official images, there are two ways to operate: docker script startup and docker-compose startup.

One-Click Docker Script

Navigate to the bin/ directory and execute the auto-pull-and-start-docker.sh script:

chmod +x ./auto-pull-and-start-docker.sh
./auto-pull-and-start-docker.sh

Using docker-compose

In the main directory, execute the corresponding command based on your Docker Compose version:

  • For Docker Compose V1:
docker-compose --profile=http up -d
  • For Docker Compose V2:
docker compose --profile=http up -d

Self-Building and Starting the Image

Navigate to the docker/ directory and execute the corresponding command based on your Docker Compose version:

  • For Docker Compose V1:
docker-compose -f docker-compose-build-code.yml up -d
  • For Docker Compose V2:
docker compose -f docker-compose-build-code.yml up -d

Other Deployment Methods

In addition to the manual installation, Docker official images, and self-built Docker images, there are other methods such as automatic scripts and one-click deployments on hosting platforms.

After downloading the project, navigate to the bin/ directory and choose the appropriate system script to execute. It will automatically detect the environment, install dependencies, and start the service.

Automatic script for Ubuntu (e.g., Ubuntu 16)

  • If the script doesn't have execution permission, run the following command:
chmod +x ./ubuntu16/*.sh
  • If using HTTP, execute this script:
./auto-check-install-http.sh
  • If using HTTPS, execute this script:
./auto-check-install-https.sh
  • To stop the service:
./auto-stop.sh

Automatic script for Windows

  • If using HTTP, execute this script:
windows/auto-check-install-http.bat
  • If using HTTPS, execute this script:
windows/auto-check-install-https.bat

One-Click Deployment on Zeabur Platform

Deploy on Zeabur

Other Configuration Options

Configuring the Database (Optional)

You need to install MySQL database manually, create a database named webchat, and then modify the database-related configurations in tlrtcfile.env.

Admin Panel (Optional)

Prerequisite: Database configuration must be enabled.

Modify the admin panel-related configurations in tlrtcfile.env. After starting, enter the configured room number and password to access the admin panel.

WeChat Notifications (Optional)

If you need to set up notification for access and error alerts, you can create a WeChat Work robot and get an API key. Modify the WeChat notification configurations in tlrtcfile.env.

OSS Cloud Storage (Optional)

The project currently supports Seafile storage integration, and future updates will include support for Alibaba Cloud, Tencent Cloud, Qiniu Cloud, and self-hosted server storage methods. Modify the OSS storage configurations in tlrtcfile.env.

Chat-GPT (Optional)

Integrated with the OpenAI API, this project includes a chat dialog. Modify the OpenAI configurations in tlrtcfile.env.

Configuring turnserver (Optional for LAN, Required for WAN)

There are two ways to generate TURN server credentials: fixed credentials (recommended) and time-limited credentials. Choose one method. The following example uses Ubuntu.

Install coturn:

sudo apt-get install coturn

For time-limited credentials, modify the configuration file docker/coturn/turnserver-with-secret-user.conf.

  • Modify the fields in the configuration file:
`listening-device`, `listening-ip`, `external-ip`, `static-auth-secret`, `realm`
  • Start the turnserver:
turnserver -c /path/to/conf/turn/turnserver-with-secret-user.conf

For fixed credentials, modify the configuration file docker/coturn/turnserver-with-fixed-user.conf.

  • Modify the fields in the configuration file:
`listening-device`, `listening-ip`, `external-ip`, `user`, `realm`
  • Generate a user:
turnadmin -a -u username -p password -r realm_in_config_file
  • Start the turnserver:
turnserver -c /path/to/docker/coturn/turnserver-with-secret-user.conf

After setting up coturn, configure the WebRTC-related information in the corresponding tlrtcfile.env configuration.

Overview Diagram

image

License

MIT License Copyright (c) 2020 ~ 2023 iamtsm

Disclaimer

Disclaimer

MIT License Copyright (c) 2022 iamtsm Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

WebRTC P2P online web media streaming tool (for files, video, screen, live streaming, text, etc.) with management and statistical monitoring capabilities 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/tl-open-source/tl-rtc-file.git
git@gitee.com:tl-open-source/tl-rtc-file.git
tl-open-source
tl-rtc-file
tl-rtc-file
master

搜索帮助