# Telemeter
**Repository Path**: wz6b/Telemeter
## Basic Information
- **Project Name**: Telemeter
- **Description**: Telemeter:基于MERN技术栈及WebSocket,WebRTC的即时通讯软件
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2024-01-14
- **Last Updated**: 2024-03-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Telemeter
## 介绍
项目原型为 YouTube 博主**Kishan Sheth**的实时聊天 webapp
原项目教程视频:[🔴 Realtime Chat App with React, Node.js, Socket.io and MongoDB (youtube.com)](https://www.youtube.com/watch?v=otaQKODEUFs)
项目在原项目的基础上,主要进行了如下改动 :
1. 添加了好友系统
发送好友请求:点击侧边栏下方的添加好友图标,在搜索框中输入好友昵称,系统即可发出好友请求。
接受好友请求:在侧边栏中,选择`系统通知`,会显示收到的好友请求。
2. 添加了音视频对话模块
点击输入栏右侧的视频通话按钮,即可发出视频通信请求。
注意:该模块使用了WebRTC,若要公网环境下正常使用此功能需要申请SSL证书将HTTP协议升级为HTTPS协议。
在复杂的NAT环境下,P2P连接可能会失败,在此情况下需添加STUN服务进行流量中转。
3. 添加了邮件验证模块
在用户注册时,点击发送验证码按钮,系统会向填写的电子邮箱发送验证码。
注意:使用此功能需在服务端代码中填写自己的邮箱和对应邮箱的授权码。
4. 针对小型移动设备进行了适配
## 部署
### 安装docker
卸载之前的docker
```sh
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
```
安装官方密钥,更新docker源
```sh
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
```
安装docker和docker-compose
```sh
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
```
```sh
curl -SL https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
```
### 运行项目
```sh
git clone https://gitee.com/wz6b/Telemeter.git
cd Telemeter
vi .env
```
修改.env文件,配置自己的邮箱、邮箱授权码、服务器IP、web服务器端口号
**.env**
```sh
#EMAIL_USER is email server address
EMAIL_USER = "1234567890@qq.com"
#EMAIL_PASS is an authorization code used to authorize email addresses to send messages
EMAIL_PASS ="xxxxxxxxxxxxx"
#HOST is IP or domain name of your server
HOST = 127.0.0.1
#NGINX_PORT is the port that provide web server
NGINX_PORT = 80
```
使用docker构建并运行docker-compose.yml
```sh
docker-compose build #构建docker镜像
docker-compose up -d #后台运行docker容器
```