背景
我们的需求是在本地部署一套 IM 系统,选择 tinode。为便于后端启动,我们采用 WSL 环境,配合 docker 安装数据库,来启动 IM 应用。
解决
WSL 启动前端和后台服务
-
cmd 输入
WSL --update
,确保 WSL 比较新 -
cmd 进入 WSL,确保安装了 docker,
docker ps -a
看看是否启动。如果提示
wsl Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
需要启动 docker:
sudo service docker start
-
docker 安装 mysql
docker run --network="host" --name im-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
-
下载
https://github.com/tinode/chat/releases/
linux 包 -
放到 WSL 目录中,解压
-
执行
./init-db -data=data.json
-
执行
./tinode
如果要在服务器启动,使用
nohup ./tinode >im.out 2>&1 &
- 检查是否启动成功
ps aux|grep tinode
- 打开
http://localhost:6060/
- 登陆测试,用户名 bob 密码 bob123,用户 alice 密码 alice123
本地部署已经完成,如果要配合修改前端代码,前端需要从另一个仓库来拉取
前端二次开发
首先确保后台已经正常启动,然后单独看前端部分
-
WSL 确保安装了 git, 空目录下拉取前端代码
git clone https://github.com/tinode/webapp.git
-
WSL 确保安装了 nodejs(参考nodejs-on-wsl ),安装依赖
cd webapp npm i
-
修改代码后打包
他这个项目没有开发模式,每次修改完只能重新打包npm run build
-
使用 VSCODE Live Server 插件打开 index-dev.html
但是需要把127.0.0.1
改成localhost
http://localhost:8080/index-dev.html`
每次打开的时候,最好还要清空浏览器缓存再刷新
如何清空浏览器缓存:打开浏览器控制台,在地址栏左侧的刷新按钮右击,点击
清空缓存并硬性重新加载
-
登陆测试
参考
- 开源 IM 系统 tinode 部署教程| WSL 环境
- tinode frontend
- tinode backend
- tinode backend install
- docker mysql
- nodejs-on-wsl