忘机山人
之前写过一篇《懒猫微服开发篇(零):上架应用需要哪些知识》,里面列了 NPM、Linux、Docker、HTTP,后面做登录还会遇到 OIDC。
那个时候的结论是:如果你只是移植现成的开源软件,开发能力可以弱一点,但是 Docker Compose 总得会一点吧,端口、环境变量、目录映射这些东西也得看得懂。
这话没有错,就是普通用户看完可能已经被劝退了。
最近官方制作了一个项目:Lazycat Skills,也是,我之前的答案可能要改一改了。
不会写代码,也可以给懒猫贡献软件。
当然,这里的不会代码,不是说对着 AI 喊一句“给我写个软件”,然后喝杯茶回来就能上架。更现实的玩法是:找一个已经能运行的开源项目,让 AI 帮你看 Docker 配置、写懒猫的 LPK 文件、执行打包命令,再根据日志一点点修改。
说白了,AI 帮你干开发和运维的活,你负责提需求和验收。
现在的 AI 会写 Python、JavaScript,也会写 Docker Compose,但是它不一定知道懒猫微服最新的应用规范。
我以前让 AI 写配置的时候也遇到过类似问题。它看起来什么都会,YAML 写得整整齐齐,字段也挺像那么回事,结果一打包就报错。继续问,它再换一种写法,最后可能把新旧版本的配置混到了一起。
Lazycat Skills 相当于给 AI 准备了一套懒猫开发手册。
仓库里和普通应用移植关系比较大的有:
lazycat-developer-expert:负责判断这是打包、路由、认证还是上架问题。lazycat-lpk-builder:把 Docker 镜像、Docker Compose 或源码转换成 LPK。lazycat-dynamic-deploy:处理安装应用时需要用户填写的参数。lazycat-advanced-routing:处理路径转发、二级域名和 TCP/UDP 端口。lazycat-auth-integration:处理 OIDC 登录和用户身份。AI 遇到打包问题就去看打包文档,遇到 OIDC 再去看认证文档,不用一次把所有资料都塞进上下文。这个设计和我们查手册也差不多,用到什么再看什么。
安装方式也很简单,在项目目录执行:
npx skills add whoamihappyhacking/lazycat-skills
或者你干脆把GitHub链接扔给AI,然后就可以对它说:
帮我把当前的 Docker 项目打包成懒猫微服 LPK 应用。
请先读取 Lazycat Skills,再检查端口、环境变量、
持久化目录、权限和 CPU 架构,最后生成 LPK V2 配置。
这个 Skill 不是替你开发一个软件,而是让 AI 更懂懒猫。
可以看,但是需要注意版本。
我之前写懒猫全栈上架指南时,主要讲的是 lzc-build.yml、lzc-manifest.yml 和应用图标。现在仓库的 main 和 v2 分支已经按照 LPK V2 编写,应用元数据和运行配置被拆开了:
package.yml:应用名称、版本、作者、多语言和权限。lzc-manifest.yml:容器、路由、环境变量和数据目录。lzc-build.yml:正式版本如何构建和打包。lzc-build.dev.yml:开发调试时的覆盖配置,可选。以前文章里的 Docker、路由和数据持久化思路没有过时,但是具体字段应该以新版 Skill 和文档为准。
有意思的是,这正是 AI Skill 适合做的事情。人很容易搜到一篇旧文章照着抄,AI 也一样。现在直接把当前规范装进项目里,至少不会上来就拿旧版 Manifest 硬套。
第一次做应用,不建议让 AI 从零写网盘、相册或者密码管理器。这类软件看起来很常见,实际上涉及账号、权限、数据库、文件上传和数据迁移,后面全是坑。
最简单的方式是找一个自己已经使用过的开源项目,而且最好已经提供 Docker 镜像或者 docker-compose.yml。
比如项目文档里有这样的内容:
services:
app:
image: example/app:latest
ports:
- "8080:8080"
environment:
- TZ=Asia/Shanghai
volumes:
- ./data:/app/data
以前我们需要自己分析:
8080 是应用端口。TZ 是环境变量。/app/data 需要持久化。example/app:latest 是需要复制到懒猫镜像仓库的镜像。现在这些工作可以先交给 AI。它会读取 Compose,再生成懒猫对应的服务、路由、权限和存储配置。
LPK 的 Manifest 和 Docker Compose 本来就有不少相似之处,所以 Docker 应用移植是最容易成功的路线。
第一次选项目,我建议满足下面几个条件:
懒猫商店需要的还是应用场景。数据库、开发库和只有程序员才会使用的中间件,原则上并不适合当作第一个上架项目。
如果连 Docker 都觉得麻烦,还可以先找一个纯前端项目。
我以前移植过纸砚双拼,这种 Vue、React 写的工具,构建完成后基本就是 HTML、JavaScript、CSS 和图片。懒猫可以直接托管静态文件,不需要数据库,也没有数据持久化的问题。
计算器、文本处理、格式转换、小游戏、学习工具,这些都很适合拿来练手。
大致流程就是:
npm install 和 npm run build。dist 或 build 目录。这类项目甚至不一定需要自己做 Docker 镜像。
再往前一步,就可以让 AI 根据自己的需求写一个小工具。
我之前用 Amazon Q 写过一个 Docker 客户端 Containly,后来也上架了懒猫商店。它的起点很简单:群晖里的容器多了以后,我记不住每个服务的端口,每次登录 Container Manager 又比较麻烦,所以想要一个简洁的面板,能看容器状态、URL、日志,也能做启动和停止。

最早用 GPT 写,项目大了之后,它经常忘记之前改过什么。后来换成可以直接操作本地目录的 Amazon Q,体验就好很多。现在 Claude、Codex 这一类工具也能直接读取文件、修改工程、运行命令和查看报错。
所以不会写代码并不代表做不了软件。很多时候,能把自己的问题说清楚,比上来就讨论用 React 还是 Vue 更重要。
比如可以直接告诉 AI:
我想做一个运行在懒猫微服上的网页工具。
它用来记录家里的设备、IP 地址和管理页面,
支持搜索、分类和导出,不需要注册账号。
请先给出最小可用版本,不要一次加入太多功能。
项目可以本地运行后,再读取 Lazycat Skills,
生成 LPK V2 配置并部署到测试设备。
不要第一次就让 AI 做十几个功能。先把最小版本跑起来,再一点点加。这个和正常开发没有区别,只不过以前是程序员敲代码,现在是你和 AI 结对。
首先还是安装懒猫的命令行工具:
npm install -g @lazycatcloud/lzc-cli
然后在准备移植的项目目录安装 Skill:
npx skills add whoamihappyhacking/lazycat-skills
我建议第一轮不要让 AI 直接修改文件,先让它做检查:
我不会写代码,想把这个项目移植到懒猫微服。
请先不要修改文件,检查以下内容:
1. 项目使用什么开源许可证;
2. Docker 镜像是否公开可下载;
3. 支持 amd64 还是 arm64;
4. 应用端口、环境变量和持久化目录;
5. 是否需要访问互联网、局域网或用户文稿;
6. 是否适合提交到懒猫应用商店。
检查完成后,再按照 Lazycat Skills 的 LPK V2 规范生成文件。
每次执行命令前,用中文告诉我这条命令是干什么的。
代码看不懂不要紧,命令看不懂也可以继续问。最重要的是报错不要只截最后一行,更不要只告诉 AI“不能用”。把完整日志交给它,说明自己点了什么、原本想看到什么、最后出现了什么,排查会快很多。
打包和安装使用:
lzc-cli project build -o release.lpk
lzc-cli app install release.lpk
能够生成 LPK,只能说明配置通过了打包检查,还不能说明应用真的能用。
第一个是数据持久化。
很多应用第一次安装可以正常打开,写数据也没问题,结果重启或者升级之后全部没了。因为数据写在容器内部,没有映射到 /lzcapp/var 或 LPK V2 对应的文稿目录。
所以测试的时候不要只看首页能不能打开。先创建几条数据,重启应用,再升级一个版本看看数据还在不在。
第二个是镜像。
自己电脑上能拉取,不代表商店审核时也能拉取。正式上架前,需要把公网可访问的镜像复制到懒猫官方仓库:
lzc-cli appstore copy-image <镜像名称>
复制完成后,再把返回的 registry.lazycat.cloud/... 地址写进 lzc-manifest.yml。
第三个是架构。
有些镜像只有 amd64,有些只有 arm64。在 M 芯片电脑上构建成功,也不代表放到另一种架构的微服上就能运行。这个问题我以前移植镜像时也踩过,所以第一轮就让 AI 检查镜像清单,省得最后再返工。
第四个是默认密码和权限。
示例里的密码只能拿来测试,不能原样上架。应用需要联网、访问局域网、读取文稿或者使用 GPU,也应该在 package.yml 中声明对应权限,而不是一股脑把权限全部打开。
第五个是 AI 一本正经地写错。
Skill 能减少错误,但不能保证项目一定成功。第三方镜像的启动方式、文件权限、健康检查、Host 校验都可能有自己的脾气。遇到问题继续看日志,实在不行就在社区里问,不要和一个错误配置死磕。
正式上架需要注册懒猫开发者,准备应用名称、介绍、图标、截图、使用须知和多语言信息。
然后构建并提交:
lzc-cli project build
lzc-cli appstore publish ./your-app.lpk
商店审核不是只看能不能打开,还会看应用有没有真实场景、依赖是否能下载、启动是否正常,以及重启和升级以后会不会丢数据。
我觉得普通用户反而很适合做这一部分。程序员可能觉得服务返回 HTTP 200 就算完成了,普通用户会在意按钮好不好找、手机上能不能点、第一次打开知不知道密码在哪里、报错能不能看懂。
软件并不是代码写完就结束了。能安装、能使用、能升级、数据不丢,才算一个完整的软件。
当然lzc-cli 也提供了给 AI 查询Docker 的能力:

如果实在不想碰终端,也一样可以给懒猫生态做贡献:
懒猫商店里的应用越来越多,靠的不只是会写代码的人,也需要愿意折腾、愿意测试、愿意把过程记录下来的人。
就像我之前写懒猫教程一样,很多内容并不是坐在那里背文档背出来的,而是自己遇到问题,问技术、看日志、试几遍,最后把操作记录下来。下一位遇到相同问题的人,就不用再从头踩坑了。
所以,不会代码,可以给懒猫贡献软件吗?
可以。
最简单的是移植一个已经提供 Docker 镜像的开源应用,再简单一点可以从纯前端工具开始。有了本地 AI 编程工具和 Lazycat Skills,写 LPK 配置、执行命令、分析日志这些事情,已经不一定需要自己从头学会。
但是不会代码不等于什么都不用管。
你至少要知道自己为什么要做这个应用,打开以后应该是什么样子,哪些数据不能丢,以及出了问题怎么完整地告诉 AI。
我一直觉得技术不应该只是程序员的专属技能。普通用户图方便,专业用户图折腾,中间缺的无非是一套好用的工具和一份能看懂的文档。
现在工具已经有了,可以先找一个自己真正想用的软件,把项目链接交给 AI,然后告诉它:
先别急着写代码,帮我看看这个软件能不能移植到懒猫微服。
这就算迈出第一步了。
评论
0暂无评论