背景
我们的需求是在本地部署一套 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`
每次打开的时候,最好还要清空浏览器缓存再刷新
如何清空浏览器缓存:打开浏览器控制台,在地址栏左侧的刷新按钮右击,点击
清空缓存并硬性重新加载
- 登陆测试
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。