zlzchat-rss
Home
文档
Home
文档
  • 文档

文档

须知

github地址:https://github.com/565800105/zlzchat 可以点个Star防止丢失

文档中 处请修改为你实际宿主机存在的挂载目录

部署成功后访问 /admin 登录账号:system 密码:admin123

logo

全部订阅源地址 /atom

当前镜像最新版本:

应用最新版本(查看登录后首页标签):欢迎登陆!当前更新版本:

logo

提示:可以使用常用微信注册的辅助账号使用(同手机号可以注册两个微信账号分为主号跟辅助号) 注册路径为 微信 我-》设置-》切换账号-》添加账号-》注册新账号-》通过当前微信的手机号辅助注册

logo

钉钉webhook机器人通知

logo

logo

logo

需通过钉钉登录后创建机器人群聊拿到对应的token跟秘钥,设置如下

logo

logo

logo

logo

logo

复制后拿到秘钥

logo

复制链接会拿到https://oapi.dingtalk.com/robot/send?access_token=**e1f045a59ae10e248880bff6bd9ab2631a41d33cbee17e7f414aea99f8 取出access_token=后的值即可

logo

最后配置到后台参数这两个

logo

飞书webhook机器人通知

logo

飞书请将安全设置为签名校验

logo

拿到webhook Url(为https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxxxxxxxxx)跟签名后设置到后台参数

logo

cron定时任务

定时任务默认关闭,请从后台手动开启 logo

cron表达式不知道怎么写的可以用cron表达式生成工具,或者群里问

注意:表达式前两位不能为*号 如: 0 * * ? 这样会导致每分每秒都执行

生成表达式后点击查询最近10次运行时间,看看预计运行时间是否符合预期

logo

logo

开放api

需先从参数设置中设置api.apikey

logo

执行公众号更新任务

/updateFeedAll?key=

指定某个公众号更新任务

/updateFeed?key=&wxsId=

获取指定某个公众号文章信息

不传pageNum、pageSize 默认1页20条

/getFeedArticleList?key=&wxsId=&pageNum=&pageSize=&orderByColumn=publish_time&isAsc=desc

docker原生命令服务安装

例如我服务器挂载的磁盘为/volume1 我需要把相关项目放到 /volume1/docker中

Mysql安装

1.创建数据库data文件后续持久化防止下次删除Mysql容器数据丢失

mkdir -p /mysql/data
mkdir -p /mysql/conf.d

2.镜像拉取

docker pull mysql:8.0

3.启动容器

docker run -d \
  --name mysql8 \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -e MYSQL_DATABASE=gzhweb \
  -v /mysql/data:/var/lib/mysql \
  -v /mysql/conf.d:/etc/mysql/conf.d \
  --restart unless-stopped \
  mysql:8.0 \
  --character-set-server=utf8mb4 \
  --collation-server=utf8mb4_general_ci
  

4.检查是否容器安装成功

docker ps -a

logo

Redis安装

1.拉取镜像

docker pull redis:latest

2.启动容器

docker run -d \
  --name redis \
  -p 6379:6379 \
  -e TZ=Asia/Shanghai \
  -e REDIS_PASSWORD=123456 \
  redis:latest \
  --requirepass 123456 \
  --appendonly yes
  

服务新装

1.创建项目目录

mkdir -p /zlzchat

2.从镜像文件中拉取文件到创建的项目目录(如何省略这步?)

docker run --rm \
-v /zlzchat:/output \
crpi-ah24egza1axyf372.cn-hangzhou.personal.cr.aliyuncs.com/docker-zlz/ck: \
sh -c "cp -r /www/wwwroot/zlzchat/. /output/ && chown -R 1000:1000 /output"

检验是否拉取成功,查看目录下是否有拉取的项目文件

logo

3.程序服务容器启动

docker run -d \
  --name zlzchat \
  -p 10082:801 \
  -v /zlzchat:/www/wwwroot/zlzchat \
  -e TZ=Asia/Shanghai \
  -e JAVA_OPTS="-Duser.timezone=GMT+08 -Xms1024m -Xmx2048m -Dlogging.config=/www/wwwroot/zlzchat/resources/logback.xml" \
  -e PROFILES_ACTIVE="pro" \
  -e MYSQL_URL="jdbc:mysql://:3306/gzhweb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8" \
  -e TZ=Asia/Shanghai \
  -e MYSQL_NAME="root" \
  -e MYSQL_PWD="123456" \
  -e SERVICE_PORT="801" \
  -e REDIS_HOST="" \
  -e REDIS_PORT="6379" \
  -e REDIS_PASSWORD="123456" \
  -e SERVER_URL=":10082" \
  -e API_SERVER="https://server.zlzchat.top" \
  -e PROFILE="/www/wwwroot/zlzchat/uploadPath" \
  --restart always \
  crpi-ah24egza1axyf372.cn-hangzhou.personal.cr.aliyuncs.com/docker-zlz/ck: \
  java ${JAVA_OPTS} -jar /www/wwwroot/zlzchat/website.jar
  

-e 参数说明

PROFILES_ACTIV 请勿修改

MYSQL_URL 数据库地址

MYSQL_NAME 数据库登录名

MYSQL_PWD 数据库密码

REDIS_HOST redis地址

REDIS_PORT redis端口

REDIS_PASSWORD redis密码

SERVICE_PORT 服务容器内运行端口

SERVER_URL 服务对外访问地址

API_SERVER 中转服务地址,请勿改动

PROFILE 后续上传文件存储地址(容器内)

4.验证程序是否启动成功

docker logs -f --tail 100 zlzchat

logo

服务更新方式一

1.首先删除原有容器

docker stop zlzchat
docker rm zlzchat

2.删除镜像

镜像id为 crpi-ah24egza1axyf372.cn-hangzhou.personal.cr.aliyuncs.com/docker-zlz/ck 开头的IMAGE ID

docker rmi -f 镜像id

3.拉取最新jar包(如何省略这步?)

docker run --rm \
-v /zlzchat:/output \
crpi-ah24egza1axyf372.cn-hangzhou.personal.cr.aliyuncs.com/docker-zlz/ck: \
sh -c "cp -r /www/wwwroot/zlzchat/. /output/ && chown -R 1000:1000 /output"

4.程序服务容器启动

docker run -d \
  --name zlzchat \
  -p 10082:801 \
  -v /zlzchat:/www/wwwroot/zlzchat \
  -e TZ=Asia/Shanghai \
  -e JAVA_OPTS="-Duser.timezone=GMT+08 -Xms1024m -Xmx2048m -Dlogging.config=/www/wwwroot/zlzchat/resources/logback.xml" \
  -e PROFILES_ACTIVE="pro" \
  -e MYSQL_URL="jdbc:mysql://:3306/gzhweb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8" \
  -e TZ=Asia/Shanghai \
  -e MYSQL_NAME="root" \
  -e MYSQL_PWD="123456" \
  -e SERVICE_PORT="801" \
  -e REDIS_HOST="" \
  -e REDIS_PORT="6379" \
  -e REDIS_PASSWORD="123456" \
  -e SERVER_URL=":10082" \
  -e API_SERVER="https://server.zlzchat.top" \
  -e PROFILE="/www/wwwroot/zlzchat/uploadPath" \
  --restart always \
  crpi-ah24egza1axyf372.cn-hangzhou.personal.cr.aliyuncs.com/docker-zlz/ck: \
  java ${JAVA_OPTS} -jar /www/wwwroot/zlzchat/website.jar
  

服务更新方式二

1.https://github.com/565800105/zlzchat

任选一种下载后覆盖到挂载目录,重启容器

docker-compose.yml 命令服务安装

例如我服务器挂载的磁盘为/volume1 我需要把相关项目放到 /volume1/docker中

服务新装

1.创建项目目录

mkdir -p /zlzchat

2.从镜像文件中拉取文件到创建的项目目录(如何省略这步?)

docker run --rm \
-v /zlzchat:/output \
crpi-ah24egza1axyf372.cn-hangzhou.personal.cr.aliyuncs.com/docker-zlz/ck: \
sh -c "cp -r /www/wwwroot/zlzchat/. /output/ && chown -R 1000:1000 /output"

检验是否拉取成功,查看目录下是否有拉取的项目文件

logo

3.配置docker-compose.yml 文件

services:
  mysql8:
    image: mysql:8.0
    container_name: mysql8
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_DATABASE: gzhweb
    volumes:
      - "/mysql/data:/var/lib/mysql"
      - "/mysql/conf.d:/etc/mysql/conf.d"
    restart: unless-stopped
    command: [
      "--character-set-server=utf8mb4",
      "--collation-server=utf8mb4_general_ci"
    ]
  redis:
    image: redis:latest
    container_name: redis
    ports:
      - "6379:6379"
    environment:
      TZ: Asia/Shanghai
    command: [
      "--requirepass", "123456",
      "--appendonly", "yes"
    ]
    restart: unless-stopped
  zlzchat:
    image: crpi-ah24egza1axyf372.cn-hangzhou.personal.cr.aliyuncs.com/docker-zlz/ck:
    container_name: zlzchat
    ports:
      - "10082:801"
    environment:
      TZ: Asia/Shanghai
      PROFILES_ACTIVE: "pro"
      MYSQL_URL: "jdbc:mysql://mysql8:3306/gzhweb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"
      MYSQL_NAME: "root"
      MYSQL_PWD: "123456"
      SERVICE_PORT: "801"
      REDIS_HOST: "redis"
      REDIS_PORT: "6379"
      REDIS_PASSWORD: "123456"
      SERVER_URL: ":10082"
      API_SERVER: "https://server.zlzchat.top"
      PROFILE: "/www/wwwroot/zlzchat/uploadPath"
    volumes:
      - "/zlzchat:/www/wwwroot/zlzchat"
    restart: always
    depends_on:
      - mysql8
      - redis
    command: >
      sh -c "java
      -Duser.timezone=GMT+08
      -Xms1024m
      -Xmx2048m
      -Dlogging.config=/www/wwwroot/zlzchat/resources/logback.xml
      -jar /www/wwwroot/zlzchat/website.jar"

4.运行 docker-compose up -d

服务更新方式一

1.首先删除原有容器

docker-compose down

2.删除镜像

镜像id为 crpi-ah24egza1axyf372.cn-hangzhou.personal.cr.aliyuncs.com/docker-zlz/ck 开头的IMAGE ID

docker rmi -f (镜像id)

3.拉取最新jar包(如何省略这步?)

docker run --rm \
-v /zlzchat:/output \
crpi-ah24egza1axyf372.cn-hangzhou.personal.cr.aliyuncs.com/docker-zlz/ck: \
sh -c "cp -r /www/wwwroot/zlzchat/. /output/ && chown -R 1000:1000 /output"

4.重新执行docker-compose.yml

docker-compose up -d

服务更新方式二

1.https://github.com/565800105/zlzchat

任选一种下载后覆盖到挂载目录,重启容器

非dokcer部署

windows本机部署方式

1.首先需要安装mysql、redis、jdk8+ 环境

2.数据库创建一个空数据库 名称为gzhweb ,字符集utf8mb4 排序规则为 utf8mb4_general_ci

3.github地址:https://github.com/565800105/zlzchat 下载编译后的代码

4.将编译后的代码放到要部署的文件夹内

5.修改resources文件夹下application.yml跟application-pro.yml配置(红框处都需要修改) 首次配置后更新代码这两个文件不要覆盖,否则需要重新设置

logologo

-e 参数说明

SERVER_URL 服务对外访问地址,就是你服务通过IP端口或域名能访问到的地址 例如 :http://sss.test.com 或 http://192...*:10082

API_SERVER 中转服务地址固定改为https://server.zlzchat.top

MYSQL_URL 数据库地址:jdbc:mysql://{链接地址}:{端口}/gzhweb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8

MYSQL_NAME 数据库登录名

MYSQL_PWD 数据库密码

REDIS_HOST redis地址

REDIS_PORT redis端口

REDIS_PASSWORD redis密码

SERVICE_PORT 服务容器内运行端口

PROFILE 后续上传文件存储地址Windows配置 例如 D:/www/wwwroot/uploadPath

6.设置完成后启动 cmd cd进入后项目目录后 执行命令:java -jar website.jar -Xms512m -Xmx512m -jar website.jar -Dfile.encoding=UTF-8 --spring.profiles.active=pro

项目部分功能截图

logologologologologo

群聊

logo

若过期请通过github项目地址issues留言

常见问题

架构问题

uname -m查看本系统架构

如果架构为arm64请更换镜像源

crpi-ah24egza1axyf372.cn-hangzhou.personal.cr.aliyuncs.com/docker-zlz/ck 改为 crpi-ah24egza1axyf372.cn-hangzhou.personal.cr.aliyuncs.com/docker-zlz/ckarm64

启动报错Waiting for changelog lock....

如下显示 logo

解决方案:

1.可视化工具直接修改此表如下状态 logo

2.无可视化工具,执行命令

docker exec -it mysql8 bash

mysql -h localhost -P 3306 -u root -p

输入数据库密码默认为123456

update gzhweb.DATABASECHANGELOGLOCK set LOCKED=0,LOCKGRANTED=null,LOCKEDBY=null;

windows系统非docker部署

windows系统只需要本机能访问到redis跟Mysql,并且有jdk8+环境即可 查看条目非dokcer部署

windows通过docker部署拉取文件都是0字节

这个问题在 Windows 上运行 Docker 时​​非常常见​​,根本原因是: ​​Windows 的文件系统(NTFS)和 Linux 容器之间的挂载是通过虚拟文件系统层实现的(如 9p 文件系统 或 WSL2 的文件共享机制),存在写入延迟、缓存不一致、权限限制等问题,导致容器内看似写入了文件,但实际上宿主机上文件内容没有正确同步。​​ 尤其是当你执行 cp 命令向挂载的目录写入文件时,容器内的写入操作可能只是“写入到了虚拟层”,而没有真正同步到宿主机的物理磁盘上,从而导致宿主机上的文件是空的或 0 字节。

解决方案:通过github地址:https://github.com/565800105/zlzchat 手动下载项目文件丢到挂载目录 跳过以下拉取最新jar包那一步骤

logo

根据步骤执行后版本没更新

根本原因为:1.旧镜像没删除 2.文件没重新拉3.文件拉的地址跟安装时不一致

docker如果操作不清晰,经常更新不到位,可以从github下载文件覆盖挂载目录,直接docker-compose restart zlzchat

忘记登录密码

解决方案:

1.可视化工具直接修改此表如下字段

password改为51ac2ee511ec767e0154f771b0b5886b78e94e88d4e99683de388be804e8632d

salt改为e253cd

logo

2.无可视化工具,执行命令

docker exec -it mysql8 bash

mysql -h localhost -P 3306 -u root -p

输入数据库密码默认为123456

update gzhweb.sys_user set password='51ac2ee511ec767e0154f771b0b5886b78e94e88d4e99683de388be804e8632d',salt='e253cd';

重置后密码恢复原始密码 admin123

账号经常499

微信读书针对账号会有人机识别(请求访问一定次数后出现),每次出现时等几个小时后会自动解除,也可进入微信读书app,搜索一个公众号进入主页弹出人机识别手动解除。

目前发现开读书会员风控会减少,但是达到一定量后还是会出现风控

同步提示,同步失败:已有任务进行中

可通过【系统管理-参数设置】菜单查看同步状态值是否为1不为1改成1

logo

如果改动【系统管理-参数设置】还是不行需要通过【系统监控-缓存监控】菜单,查看redis键名是否有wxsSynchronous,有的话删除即可

logo

为什么部署需要先拉取文件,操作步骤麻烦?

首先这样可以防止docker拉取很慢的时候可以通过其他途径如github,网站下载更新包进行更新,如果你的docker网络很好可以只挂载logs跟uploadPath文件夹,更新时不需要敲拉取镜像文件命令

docker原生:

-v /zlzchat/logs:/www/wwwroot/zlzchat/logs \

-v /zlzchat/uploadPath:/www/wwwroot/zlzchat/uploadPath \

更新命令:删除容器、删除镜像、重新docker run即可

docker-compose:

- "/zlzchat/logs:/www/wwwroot/zlzchat/logs"

- "/zlzchat/uploadPath:/www/wwwroot/zlzchat/uploadPath"

更新命令 docker-compose down && docker-compose pull zlzchat && docker-compose up -d