背景

我们的需求是在本地部署一套 IM 系统,选择 tinode。为便于后端启动,我们采用 WSL 环境,配合 docker 安装数据库,来启动 IM 应用。

解决

WSL 启动前端和后台服务

  1. cmd 输入WSL --update,确保 WSL 比较新
  2. 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

  3. docker 安装 mysql

    docker run --network="host" --name im-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
  4. 下载 https://github.com/tinode/chat/releases/ linux 包
  5. 放到 WSL 目录中,解压
  6. 执行 ./init-db -data=data.json
  7. 执行 ./tinode

    如果要在服务器启动,使用

    nohup ./tinode >im.out 2>&1 &
  8. 检查是否启动成功 ps aux|grep tinode
  9. 打开 http://localhost:6060/
  10. 登陆测试,用户名 bob 密码 bob123,用户 alice 密码 alice123

本地部署已经完成,如果要配合修改前端代码,前端需要从另一个仓库来拉取

前端二次开发

首先确保后台已经正常启动,然后单独看前端部分

  1. WSL 确保安装了 git, 空目录下拉取前端代码

    git clone https://github.com/tinode/webapp.git
  2. WSL 确保安装了 nodejs(参考nodejs-on-wsl ),安装依赖

    cd webapp
    npm i
  3. 修改代码后打包
    他这个项目没有开发模式,每次修改完只能重新打包

    npm run build
  4. 使用 VSCODE Live Server 插件打开 index-dev.html
    但是需要把127.0.0.1改成localhost

    http://localhost:8080/index-dev.html`

    每次打开的时候,最好还要清空浏览器缓存再刷新

    如何清空浏览器缓存:打开浏览器控制台,在地址栏左侧的刷新按钮右击,点击清空缓存并硬性重新加载
  5. 登陆测试

参考


OpenHacker
0 声望1 粉丝

全栈工程师