Chatlog Alpha 部署与 CI 指南:GitHub Actions 四平台构建矩阵及安全隐私实践
后端CLIMCP 服务即时通讯RAG人工智能AI 技能【免费下载链接】chatlog_alpha原 [chatlog]项目一个微信数据库解密读取及提供mcp服务、http服务的开源软件现已支持通过微信clawbot接口推送消息可以实时转发全部或指定消息到clawbot项目地址https://gitcode.com/gh_mirrors/ch/chatlog_alpha点击查看免费下载Chatlog Alpha 是一款面向微信 4.x 的本地聊天数据库解密读取与分析工具提供 TUI 终端界面、Web 控制台、HTTP API 与 MCP 服务并支持通过 clawbot 接口将全部或指定消息实时推送到 Hermes Weixin / QQ 桥。本文带你快速完成部署并拆解它如何用 GitHub Actions 一套工作流构建四平台产物、以及围绕密钥做了哪些安全隐私设计。一、项目定位解密读取 服务化 实时推送在深入部署之前先了解它的三大能力块这决定了部署时要关心什么能力说明部署关注点数据读取解密微信本地数据库浏览会话、联系人、朋友圈、媒体本机运行数据不出设备服务化HTTP API、MCP/mcp、/sse、Web 仪表盘默认监听127.0.0.1:5030实时推送关键词事件与消息经 Hermes Agent 转发到 clawbot可选配置不影响核心完整功能清单与平台兼容性见 README.md。二、最快部署路径下载安装包或源码构建1. 直接下载官方构建产物项目通过 CI 为macOS 与 Windows 的四种架构组合自动产出压缩包内含LICENSE和README.md系统架构文件名格式macOSApple Siliconarm64chatlog_提交_darwin_arm64.zipmacOSIntelamd64chatlog_提交_darwin_amd64.zipWindowsamd64chatlog_提交_windows_amd64.zipWindowsarm64chatlog_提交_windows_arm64.zipmacOS 包还附带start-chatlog.command双击即可自动定位二进制、恢复执行权限并清理隔离标记适合不熟悉命令行的用户。2. 源码构建5 分钟上手git clone https://gitcode.com/gh_mirrors/ch/chatlog_alpha cd chatlog_alpha # 一条命令清理 lint 依赖整理 测试 构建 make allMakefile 预置了完整工具链make lint运行golangci-lintmake test带覆盖率执行go test ./...make build以CGO_ENABLED1 go build -trimpath输出当前平台二进制。版本字符串通过git describe自动获取并注入pkg/version.Version因此发布版--version能准确追溯提交。 环境要求Go 1.25、Git、支持 CGO 的 C 编译器macOS 数据库提钥额外需要 Python 3 与frida-tools。三、GitHub Actions 构建矩阵拆解四平台如何一次构建整个持续集成由单一工作流驱动.github/workflows/release.yml。它由4 个 job组成形成清理 → 双平台构建 → 汇总发布的流水线。1. 触发条件与并发控制on: push: branches: [main] pull_request: branches: [main] workflow_dispatch: concurrency: group: release-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: truemain分支每次push、每个指向main的 Pull Request 都会触发也支持手动触发。cancel-in-progress: true是关键优化同一分支的旧任务会被自动取消避免频繁提交时构建队列堆积浪费 CI 分钟数。2. 清理旧构建cleanup-old-builds发布页采用滚动更新 latest策略——旧 Release 先删、新构建再上。该 job 使用ghCLI 完成删除旧的latestRelease 及 Git 标签--cleanup-tag分页遍历并删除旧的release-macos、release-windowsActions Artifacts。⚠️ 注意两个步骤都限定github.event_name ! pull_request github.ref refs/heads/main即PR 检查时绝不清理只有主分支真实发布才动生产产物。由于旧 Release 在编译前就被删除若新构建失败latest页面会暂时缺失修复后重新推送即可恢复。3. macOS 构建build-macosamd64 arm64在macos-latest运行器上一个任务串行构建两个架构for arch in amd64 arm64; do CGO_ENABLED1 GOOSdarwin GOARCH${arch} \ go build -trimpath -ldflags -s -w -X .../version.Version${GITHUB_REF_NAME} \ -o dist/chatlog-darwin-${arch} . done构建链包含 5 个质量关卡步骤作用go test ./...全量单元测试govulncheckv1.6.0依赖漏洞扫描见第四节双架构编译-s -w去除符号表与 DWARF 调试信息显著缩小二进制Smoke Test对两个二进制执行--help验证可执行权限与启动打包二进制 start-chatlog.commandLICENSEREADME.md压成 zip打包前还会用/bin/zsh -n对生成的启动脚本做语法校验再真实执行一次--help防止能编译但脚本坏了的情况溜进发布页。4. Windows 构建build-windowsamd64 arm64Windows 侧的难点是CGO 交叉编译工作流按架构分两套策略# amd64CGO MinGW GCC通过 msys2/setup-msys2 安装 mingw-w64-x86_64-gcc $env:CC gcc; $env:CGO_ENABLED 1 go build ... -o dist/chatlog-windows-amd64.exe . # arm64非 CGO 构建语音转 MP3 等 CGO 能力运行时走提示性兜底 $env:CGO_ENABLED 0 go build ... -o dist/chatlog-windows-arm64.exe .脚本会先断言gcc已就位if (-not $gccCmd) { throw ... }失败时快速报错而不是产出残缺产物。构建前先Remove-Item -Recurse -Force dist, release清工作区避免上一次残留文件混入压缩包。5. 汇总发布publishpublishjob 依赖前两个构建 job 全部成功needs: [build-macos, build-windows]在ubuntu-latest上用actions/download-artifact拉取release-macos与release-windows两组 Artifactsfind收集所有.zip、.exe与chatlog-darwin-*文件通过softprops/action-gh-release创建标签为latest的预发布prerelease版本Latest Buildmake_latest: false保证不抢占用户打过的正式 Release。这套先删后建 prerelease的组合让普通用户始终能从latest标签拿到最新一次提交的可运行构建而开发者可以基于语义化版本打正式发布。6. 备选的 GoReleaser 方案仓库还保留了一份 .goreleaser.yamlv2 配置构建前钩子执行go mod tidy以CGO_ENABLED1交叉编译 darwin/windows × amd64/arm64输出 zip 归档与独立二进制两种格式并生成 SHA256checksums.txtrelease.mode: replace与 CI 的滚动策略保持一致。它可作为本地或 tag 触发的补充发布通道。四、安全与隐私实践密钥如何被保护Chatlog Alpha 处理的是个人聊天记录与解密密钥这类高敏感数据项目在 CI 与运行时两侧都做了防护值得同类工具借鉴。1. 密钥文件最小权限数据库密钥映射all_keys.json在 macOSinternal/wechat/key/darwin/frida.go 中经writeFileAtomic原子写入和 Windowsinternal/wechat/key/windows/data_key_windows.go两侧均以0600权限落盘——仅属主可读写其他用户连读都不行。README 也明确告诫不要把密钥、解密数据库或聊天内容提交进 Git 仓库。2. 状态接口默认脱敏action status这类机器可读的状态接口从不回传密钥原文。internal/chatlog/action.go 中的实现只暴露布尔位与占位符DataKeyPresent: dataKey ! , DataKey: redactActionSecret(dataKey), // 非空时固定返回 ******自动化脚本能判断密钥是否就绪却永远拿不到密钥本身——即使日志被意外打印泄密的也只是星号。3. 高危操作仅限本机回环发信调试Frida Hook 发送消息是能力最强的接口也是最危险的一旦可被远程调用等于把代你发消息的能力交给了局域网。项目在 internal/chatlog/http/send_debug.go 中加了硬门禁func requireLocalDebugRequest(c *gin.Context) bool { if isLoopbackRemote(c.Request.RemoteAddr) { return true } c.JSON(403, gin.H{error: Frida 发信调试仅允许从本机 Web 控制台调用}) c.Abort() return false }即使 HTTP 服务监听在0.0.0.0:5030对整个局域网可见来自非回环地址的请求也会被 403 拒绝。4. CORS 与 Host 边界检查internal/chatlog/http/middleware.go 实现了细粒度的跨域策略服务绑定回环地址时仅放行来自回环地址的请求requestHostAllowed通配符绑定0.0.0.0时Origin主机必须属于私网/链路本地地址才放行不匹配的跨站请求直接403防止浏览器端脚本被第三方页面借机调用。配套测试 internal/chatlog/http/middleware_test.go 覆盖了跨站 origin 拒绝等用例。MCP 内部转发同样通过 internal/chatlog/http/mcp.go 的loopbackCompatAddress把0.0.0.0、::等通配符归一化为127.0.0.1保证内部调用永不指向外部地址。5. 依赖漏洞扫描进 CImacOS 构建任务在编译前固定执行go run golang.org/x/vuln/cmd/govulncheckv1.6.0 ./...govulncheck不是简单比对版本号而是基于调用图分析判断有漏洞的函数是否真的被本项目调用能显著减少依赖链里带毒但实际不可达的误报。这意味着每次发布构建都自带一轮安全体检且社区通过 Dependabot 持续跟进x/crypto、x/net等基础库的安全修复见 README.md 贡献记录。6. 本地优先的模型数据边界语义检索等 AI 能力默认指向本地 Ollamahttp://127.0.0.1:11434见 internal/chatlog/conf/semantic.go。README 明确告知用户使用 GLM、DeepSeek 等远程模型时选中的检索文本会发送到所配置的模型服务改用 Ollama 或本地 llama.cpp 服务则可让模型处理完全留在本机。把数据去向讲清楚是隐私实践里容易被忽略却最重要的一环。五、关键文件速查文件用途.github/workflows/release.ymlCI 主工作流清理、双平台构建、发布.goreleaser.yamlGoReleaser 发布配置与校验和Makefile本地构建/测试/交叉编译入口go.modGo 1.25 模块与依赖声明internal/chatlog/http/middleware.goCORS / Host 边界检查internal/chatlog/http/send_debug.go发信调试本机回环门禁pkg/version/version.go版本注入目标CI 通过 ldflags 写入README.md完整部署与使用文档小结Chatlog Alpha 的 CI 设计有几个值得借鉴的要点单工作流 双平台 job覆盖四平台矩阵concurrency取消旧任务节省 CI 资源PR 检查与主分支发布严格隔离测试、漏洞扫描、冒烟测试三级质量门禁前置到发布之前。而安全侧则以密钥最小权限落盘 接口脱敏 高危操作仅限回环 CORS 边界检查四道防线配合本地优先的模型数据策略把一个直接接触聊天记录的工具守在了用户自己的机器里。对于同样需要处理敏感本地数据的 Go 项目这套 CI 模板与安全细节几乎可以直接复用。赞分享后端CLIMCP 服务即时通讯RAG人工智能AI 技能【免费下载链接】chatlog_alpha原 [chatlog]项目一个微信数据库解密读取及提供mcp服务、http服务的开源软件现已支持通过微信clawbot接口推送消息可以实时转发全部或指定消息到clawbot项目地址https://gitcode.com/gh_mirrors/ch/chatlog_alpha点击查看免费下载相关推荐如何使用Ollama实现跨平台构建从脚本到多架构部署的完整指南如何使用Ollama实现跨平台构建从脚本到多架构部署的完整指南 Ollama是一个功能强大的开源项目支持在本地运行Kimi K2.5、GLM 5、MiniM人工智能大模型模型推理服务本地部署imgaug 的 CI/CD 自动化测试升级基于 GitHub Actions 的多平台矩阵测试与 Wheel 构建实践imgaug 的 CI/CD 自动化测试升级基于 GitHub Actions 的多平台矩阵测试与 Wheel 构建实践 导读 本文基于 imgaug 仓库的数据增强计算机视觉图像处理机器学习python-mode 跨平台 CI 测试实战基于 GitHub Actions 的 Linux/macOS/Windows 三平台 Vader 测试矩阵python mode 跨平台 CI 测试实战基于 GitHub Actions 的 Linux/macOS/Windows 三平台 Vader 测试矩阵 本开发工具后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

深度剖析fullstack-agent核心实现:一份Markdown提示词文件如何变成完整安装向导

深度剖析fullstack-agent核心实现:一份Markdown提示词文件如何变成完整安装向导

【免费下载链接】fullstack-agent Give your AI a full stack: memory, voice, face, and hands. This is the "I want an AI agent" shortcut. It sets up the entire jaredrhod stack for you with an installation wizard. Select which pieces you want or do it…

2026/10/16 1:59:44 阅读更多 →
Windows 运行 Chatlog Alpha 指南:微信数据库解密与查询入门

Windows 运行 Chatlog Alpha 指南:微信数据库解密与查询入门

后端CLIMCP 服务即时通讯RAG人工智能AI 技能 【免费下载链接】chatlog_alpha 原 [chatlog]项目(一个微信数据库解密读取及提供mcp服务、http服务的开源软件),现已支持通过微信clawbot接口推送消息,可以实时转发全部或指定消息到cl…

2026/10/16 1:59:44 阅读更多 →
Product Manager Mock Prep 指令解析:用八步框架系统化攻破产品设计面试题

Product Manager Mock Prep 指令解析:用八步框架系统化攻破产品设计面试题

提示工程AI 安全治理 【免费下载链接】TheBigPromptLibrary A collection of prompts, system prompts and LLM instructions 项目地址: https://gitcode.com/gh_mirrors/th/TheBigPromptLibrary 点击查看 免费下载 导读 产品经理面试中,Design a X 类…

2026/10/16 1:59:44 阅读更多 →

最新新闻

三相SVG静止无功发生器Simulink仿真模型:主电路与双闭环控制设计

三相SVG静止无功发生器Simulink仿真模型:主电路与双闭环控制设计

做无功补偿仿真这些年,SVG(静止无功发生器)一直是我觉得最值得研究的装置之一。这次分享的项目,就是基于MATLAB/Simulink的三相静止无功发生器仿真模型,主电路采用电压型桥式结构,除了完整的Simulink源文件…

2026/10/16 4:25:19 阅读更多 →
PaddleOCR中文场景文字识别实践:从环境搭建到模型微调全流程解析

PaddleOCR中文场景文字识别实践:从环境搭建到模型微调全流程解析

做OCR相关开发这几年,我越来越确认一件事:英文场景文字识别和中文场景文字识别,根本是两个难度级别。英文场景里翻来覆去就是 26 个字母加少量数字符号,中文场景里光常用汉字就有三千多个,再加上繁体、生僻字、竖排、倾…

2026/10/16 4:25:19 阅读更多 →
Spring流上传ByteArray越界根因分析:从并发复用改为流式处理

Spring流上传ByteArray越界根因分析:从并发复用改为流式处理

1. 问题现场:这个异常到底长什么样先讲一个我最近处理过的真实案例,某项目上报了一个文件上传偶发报错,接口高峰时段会出现ArrayIndexOutOfBoundsException,日志堆栈差不多长这样:java.lang.ArrayIndexOutOfBoundsExce…

2026/10/16 4:25:19 阅读更多 →
基于PaddleOCR的中文场景文字识别实战:从检测到部署

基于PaddleOCR的中文场景文字识别实战:从检测到部署

上个月团队接了一个票据信息化的临时需求,对方拿来的样张五花八门:机打的增值税发票、手写快递单、混排了横竖文字的营业执照扫描件,还有用户直接在手机上拍的模糊照片。原本以为"调个OCR接口就行",结果接进去才发现&am…

2026/10/16 4:25:19 阅读更多 →
Codex自动化闭环:感知-决策-执行-反馈四层轻量骨架

Codex自动化闭环:感知-决策-执行-反馈四层轻量骨架

1. 项目概述:不是写死的脚本,而是一套能自己“长脑子”的自动化骨架“Codex 多场景自动化:一套闭环,适配所有场景”——这个标题里藏着一个被很多人忽略的关键矛盾:“多场景”和“一套”天然互斥。我们日常见到的所谓“…

2026/10/16 4:25:19 阅读更多 →
离散变量编码三件套:因子化、One-Hot与哑变量实战解析

离散变量编码三件套:因子化、One-Hot与哑变量实战解析

做数据分析这几年,几乎每个项目都会碰到一类让人头疼的字段:里面存的全是文本。地区、渠道、颜色、等级、支付方式……这些在建模时不能直接喂给模型,必须先用某种方式转成数字。这个转换过程,就是我们常说的离散变量处理。但很多…

2026/10/16 4:24:19 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →