This commit is contained in:
2026-04-25 16:36:34 +08:00
commit db90e7579b
1876 changed files with 189777 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
{
"label": "Video Conference",
"position": 35
}

View File

@@ -0,0 +1,98 @@
---
sidebar_position: 10
title: Agora Plugin Deployment Guide
---
:::info
The agora plugin needs to ensure that your `tailchat` image version is 1.4.0+
:::
## Apply for projects on the agora platform
The Tailchat agora integration is an audio and video call function that relies on the agora service, so it needs to be registered on the agora platform before use.
Agora website: [https://www.agora.io/](https://www.agora.io/)
### Get configuration parameters
After registration/login, it will automatically jump to the console. Project configuration can be done in the console
![](./images/1.png)
If you have not created a project, you need to create a project first. As shown below
![](./images/2.png)
It is recommended to use safe mode to avoid being stolen by others.
Next we need to get some configuration items to configure the Tailchat's agora plugin.
![](./images/3.png)
In project configuration we can get `appid` and `app cert`. These two are the environment variables `AGORA_APP_ID` and `AGORA_APP_CERT` that we will use later
### Get client credentials
In addition, we also need to obtain the customer's permission at the `RESTful API` in the upper right corner,
The operation is as shown in the figure:
![](./images/4.png)
![](./images/5.png)
In this way we get two other environment variables: `AGORA_CUSTOMER_KEY` and `AGORA_CUSTOMER_SECRET`.
Our initial preparations are complete
## Install plugin
At present, the server-side plugin of the Agora plugin has been installed by default, and you do not need to do anything. However, environment variables need to be configured for use.
### Configure environment variables
To configure environment variables, see [environment variables](../deployment/environment.md)
The agora plugin requires environment variables as follows:
- `AGORA_APP_ID`: the application id of the Agora project
- `AGORA_APP_CERT`: AGORA project certificate
- `AGORA_CUSTOMER_KEY`: AGORA customer id
- `AGORA_CUSTOMER_SECRET`: AGORA customer secret key
These environment variables can be obtained in the above tutorial.
After configuring the environment variables, every will be final
## Application service status callback
:::info
you can skip it if you dont need it.
:::
In order to synchronize the call status to `Tailchat`, it is necessary to apply for a server callback in Agora.
In project configuration, we need to enable `Notification Center Service Configuration` in `Service Config`
![](./images/6.png)
Need to subscribe to the following events:
- channel create=101
- channel destroy=102
- broadcaster join channel=103
- broadcaster leave channel=104
The receiving server URL is generally: `https://<YOUR SERVER DOMAIN>/api/plugin:com.msgbyte.agora/webhook`, where `<YOUR SERVER DOMAIN>` is replaced with your `Tailchat` domain name.
:::info
The service of Agora will check the connectivity of the server, so it is necessary to configure the environment variables and start the service before performing this step.
In addition, the Agora needs to configure `https` and `webrtc` service also depends on `https`, so you need to ensure that the server gateway supports the `https` protocol
:::
After the configuration is complete, you will see the following prompt. It will take effect after the confirmation of the staff of the agora.
![](./images/7.png)

View File

@@ -0,0 +1,100 @@
---
sidebar_position: 2
title: Deploy Tailchat Meeting
---
:::info
The `Tailchat Meeting` solution is currently not integrated with `Tailchat`, if you want to use the video conferencing solution in Tailchat, please choose `agora` or `livekit` solution
:::
The video conferencing service `Tailchat Meeting` can exist as an independent application. In this section, we will describe how to deploy `Tailchat Meeting` independently
The following content is based on the `docker` environment, please ensure that the server has the most basic `docker` environment.
If you haven't installed `docker` + `docker-compose`, you can check the document [Install docker environment](../deployment/install-docker.md)
## Fast deployment
```bash
git clone https://github.com/msgbyte/tailchat-meeting --depth=1
```
> NOTE: Next, the host mode of docker will be used for installation. That means, `docker-compose` will automatically bind the host port
The ports that need to be reserved by the server are as follows:
- swag (server gateway, nginx enhanced version, the port can be modified through the configuration file tailchat-meeting/compose/nginx.conf)
- 80
- 443
- tailchat-meeting
- 13001
- 40000-49999 (for RTC service, dynamic occupancy)
-redis
- 6379
**The above ports will be exposed on the host machine. For the sake of server security, it is recommended to configure a suitable firewall policy, and only expose the necessary ports 443 and 40000-49999**
```bash
cd tailchat-meeting/compose
cp docker-compose.env.example docker-compose.env
vi docker-compose.env
```
Modify environment variables.
The environment variables are as follows:
```
# Internal IP
MEDIASOUP_IP=
# Public IP
MEDIASOUP_ANNOUNCED_IP=
# swag
URL=
SUBDOMAINS=
TZ=Asia/Shanghai
```
其中
- If you only deploy on a single machine, `MEDIASOUP_IP` and `MEDIASOUP_ANNOUNCED_IP` can both fill in the public network ip of the server, **But for service providers with flexible deployment networks (such as domestic AWS, Tencent Cloud, Alibaba Cloud, etc.) must strictly follow the notes to fill in the internal IP and public network IP** (because the external network IP provided by this type of service provider is not bound to the network card)
- `tailchat-meeting` is based on **webrtc** service, so it strongly depends on https/wss protocol. The swag service can automatically apply for an https certificate for you, but you must assign a valid domain name and ensure that the dns point has been pointed to the server.
- More related documents can be viewed [README](https://github.com/linuxserver/docker-letsencrypt/blob/master/README.md)
- Sample configuration:
```bash
URL=meeting.example.com # 这里请填入
SUBDOMAINS= # 该参数用于多域名证书申请,可留空
```
After the modification, you can directly execute the following command
```bash
docker compose up -d
```
`docker compose` will automatically download images from the network and build `tailchat-meeting`
Building may take time and resources. Especially for building the frontend code, please be patient if you use a server with a low server.
> In the real world test, the time-consuming reference of a small resource server with 1 core and 2G is as follows:
> - Download dependencies: 3 minutes
> - Compile frontend code: 5 minutes
Visit `https://meeting.example.com` to see `tailchat-meeting` page
## Combined usage
For fool-proof deployment, it only needs one command to execute. If there are ready-made gateway services (such as nginx, caddy, etc.) and redis instances, you can selectively start the services.
For example:
```bash
docker compose up tailchat-meeting -d # Only run the tailchat-meeting instance
```
## Reasons for using host mode
The core RTC service of `tailchat-meeting` needs to apply for a port at runtime, but this function cannot be realized for docker. Pre-applying for a certain range of port bindings will not only waste meaningless ports, but also occupy a lot of resources and kill the system instantly when starting.
**It should be noted that please do not expose the 6379 port where redis is located, which may cause security risks. **

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

View File

@@ -0,0 +1,47 @@
---
sidebar_position: 1
title: Summary
---
:::info
Video Conference solutions require SSL support, so only websites that support https will work properly
:::
`Tailchat` provides those solutions for video and voice calls, you can choose according to the actual situation:
- ~~`tailchat-meeting` self-deploying video conferencing (WIP)~~
- `agora` Acoustic Network integration, for details, see: [Acoustic Network Plug-in Deployment Guide](./agora.md)
- `livekit` Allow self-host solution: [Livekit Plugin Deployment Guide](./livekit.md)
<details>
<summary>Collapsed content is outdated</summary>
## Tailchat Meeting
The video conferencing module is an important part of the suite of `Tailchat` series. Capabilities are provided as follows:
- Voice communication
- Video session
- screen sharing
- virtual background
- file transfer
- chat record
At the same time, `tailchat-meeting` can also exist as an independent product, and you can quickly initiate/join meetings without logging in
### Project repository
- Open source address: [https://github.com/msgbyte/tailchat-meeting](https://github.com/msgbyte/tailchat-meeting)
- Open source agreement: Apache 2.0
:::info Open source statement
This project is based on secondary development of [edumeet](https://github.com/edumeet/edumeet) and [mediasoup](https://github.com/versatica/mediasoup).
On this basis, function addition, SDK implementation and code optimization were carried out. If you want to find a looser implementation of the open source protocol (MIT + ISC protocol), you can take a look at these two projects
:::
### Project Architecture
![](/img/architecture/meeting.excalidraw.svg)
</details>

View File

@@ -0,0 +1,73 @@
---
sidebar_position: 20
title: Livekit Plugin Deployment Guide
---
`Livekit` is an open source video conferencing solution based on the `Apache-2.0` open source protocol, allowing self-host, supporting video conferencing, live streaming, recording and other scenarios
You can use his cloud service or self-host. Below I will introduce how to integrate `Livekit` into `Tailchat`:
## Cloud Services
First enter the Livekit cloud platform: [https://cloud.livekit.io/](https://cloud.livekit.io/), in the first time you enter, you need to create a project:
It will ask some questions, just answer them according to the situation.
![](/img/advanced-usage/livekit/1.png)
After completion, we will enter the console main dashboard:
![](/img/advanced-usage/livekit/2.png)
### Get the required environment variables
For the plugin to work, we need the following environment variables:
- `LIVEKIT_URL`
- `LIVEKIT_API_KEY`
- `LIVEKIT_API_SECRET`
Among them, `LIVEKIT_URL` can be obtained directly from the console, in the form of `wss://********.livekit.cloud`
In the `Settings` menu on the left, we need to create a pair of secret keys by ourselves
![](/img/advanced-usage/livekit/3.png)
![](/img/advanced-usage/livekit/4.png)
![](/img/advanced-usage/livekit/5.png)
Here we can get `LIVEKIT_API_KEY` and `LIVEKIT_API_SECRET`.
Record and fill in the environment variables and start `Tailchat`.
### Start the webhook
![](/img/advanced-usage/livekit/6.png)
If you need the above-mentioned channel online prompts to be updated immediately, you need to start a `webhook-receiver` separately to accept pushes from `livekit` and forward the received events to `Tailchat`, so that `Tailchat` can update all groups Display of group membership.
The official `docker-compose` configuration has been prepared for you with one click, just like `admin`:
```bash
wget https://raw.githubusercontent.com/msgbyte/tailchat/master/docker/livekit.yml
docker compose -f docker-compose.yml -f livekit.yml up -d
```
At this point you can see a `tailchat-livekit-webhook-receiver` service in the docker running container.
Then we switch to the `livekit` console and add our address in the `webhook`.
![](/img/advanced-usage/livekit/7.png)
Generally `https://<your tailchat url>/livekit/webhook`, remember to choose the same key pair as the service
![](/img/advanced-usage/livekit/8.png)
> PS: There may be some delays in cloud applications.
## Self-host
See the official documentation for self-host: [https://docs.livekit.io/oss/deployment/](https://docs.livekit.io/oss/deployment/)
In addition to the different deployment methods and configuration first, others are the same as using cloud services