Bootstrap

本地编译ChatNio的问题解决

编译安装

部署成功后, 默认端口为 8094, 访问地址为 http://localhost:8094

Config 配置项 (~/config/config.yaml) 可以使用环境变量进行覆盖, 如 MYSQL_HOST 环境变量可覆盖 mysql.host 配置项

git clone https://github.com/Deeptrain-Community/chatnio.git
cd chatnio

cd app
npm install -g pnpm
pnpm install
pnpm build

cd ..
go build -o chatnio

# e.g. using nohup (you can also use systemd or other service manager)
nohup ./chatnio > output.log & # using nohup to run in background

遇到问题:

1、执行go build -o chatnio时提示webp库有问题,解决方法:

sudo apt-get update

sudo apt-get install libwebp-dev

开启Cgo

export CGO_ENABLED=1

查看是否开启

go env CGO_ENABLED

如果返回值为1则已经开启

2、没有安装gcc,解决方法:安装build-essential,里面包含了gcc编译的相关库

sudo apt update

sudo apt install build-essential

本地chatnio配合docker的mysql和redis调试(不想在本地机器安装mysql和redis)

1、先按照chatnio的GitHub库的docker compose方式部署

2、将docker配置文件docker-compose.yaml修改为对宿主机开放端口(mysq开放为13306,Redis开放为16379),mysql和redis的配置最终如下

services:
  mysql:
    image: mysql:latest
    container_name: db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: chatnio
      MYSQL_USER: chatnio
      MYSQL_PASSWORD: chatnio123456!
      TZ: Asia/Shanghai
    #expose:
    #  - "3306"
    ports:
        - "13306:3306"  # Map MySQL port from container to host
    volumes:
        - ./db:/var/lib/mysql
    networks:
      - chatnio-network

  redis:
    image: redis:latest
    container_name: redis
    restart: always
    #expose:
    #  - "6379"
    ports:
      - "16379:6379"  # Map redis port from container to host
    volumes:
      - ./redis:/data
    networks:
      - chatnio-network

3、将chatnio代码git clone到本地,编辑chatnio/config/config.yaml文件,

将mysql端口改为上面的13306,host为127.0.0.1,密码为root,跟docker中的mysql配置一致

将redis端口改为16379,host为127.0.0.1,跟docker中的redis配置一致

mysql:
  db: chatnio
  host: 127.0.0.1
  password: root
  port: 3306
  user: root
  tls: false

redis:
  host: 127.0.0.1
  port: 16379
  db: 0
  password: ""

5、启动docker

sudo docker compose up -d

4、编译代码,启动

./chatnio > output.log

访问http://127.0.0.1:8094即可打开chatnio

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;