2026-04-22 17:14:04
![]()
前几天一个周末,我把自己博客用的主题 fork 了一份,花了 3 天时间,发了 61 个版本,解决了一堆多年来一直想改但没改的小问题,顺便踩了 N 个大坑。
这篇就把这段 "非程序员 × Claude Code" 的 vibe coding 实录和大家分享一下。也顺便聊聊用下来对几家 AI 订阅的真实看法,还有一点关于 "软件门槛" 和 "肉身能力" 的胡思乱想。
内容会有点长,但都是真金白银踩出来的体感。
咕咕这个博客用的是 Halo 平台 + Joe3 主题,作者是 Jiewenhuang。这个主题其实非常好用,做得也很漂亮,我前前后后用了好几年,一直挺满意的。
但最近一两年,作者因为工作原因更新慢了下来。这完全可以理解——开源主题作者本来就是用爱发电,有自己的主业和生活,能一直维护已经很难得。但对用户来说就是:
这些东西我其实都想自己动手改,但之前一直有个拦路虎——我不是程序员,平时也就是会点 VPS 折腾、写写 Docker 命令,真要去啃主题源码,心里还是怯的。
那为啥现在突然敢动手了?因为一个东西:Claude Code。
我在openclaw出来不久的时候,一开始订阅了kimi的coding plan,后来觉得不够好用,听网上一堆人说GPT和Claude好用,就尝试订阅了 Claude Pro(每月 20 美元那种),偶尔用来问问问题、写写文案,确实不错。但一直没用它写代码——总觉得太复杂了。
直到有一次,我随口让 Claude 帮忙看了下主题里一段 CSS,想改个小边距。它不光改对了,还顺带解释了为什么这么改,甚至告诉我 "你这个改动会影响移动端,建议加个 media query"。
那一瞬间我突然意识到:原来这事儿是可以自己干的。
不是说我一夜之间学会了前端,而是——有 Claude 在,你只要能描述清楚你要什么、看得懂 git diff、会复制报错,剩下的它都能兜住。这个门槛突然低到一个非程序员也能跨过去的程度。
然后想法就顺理成章了:
打定主意,Max 套餐开了(后面会细聊为啥咬牙从 Pro 升 Max),本地 Halo 环境跑了起来,VS Code + Claude Code 都准备好了。
然后故事就开始了。
一开始我没想到会搞这么快。本来预期是"一周弄个能用的版本",结果 Claude Code 的节奏推着我往前走,一发不可收拾,根本停不下来。
![]()
这是真实的 git log 统计:
| 日期 | 星期 | 发了多少版 | 主要做了啥 |
|---|---|---|---|
| 2026-04-19 | 周日 | 5 版 | 热身 · SEO / 初版性能优化 |
| 2026-04-20 | 周一 | 44 版 | 暴风骤雨日 · 翻车最多的一天 |
| 2026-04-21 | 周二 | 12 版 | 安全补丁 hotfix 系列收官 |
3 天, 61 个 tag。 作为对比,原作者过去两年发了大概 30 个版本——Claude Code 这个节奏,直接比原作者快 15 倍(当然其实很多小改动完全可以合并起来一次发版,不知道是Claude还是我给的skill的原因,这边图快就直接一个改动一个 tag 推了,虚胖成分有一些)。
当然这不是在炫耀速度。这个速度之所以能跑起来,是因为:
整个反馈循环被压缩到 10 分钟以内。人只要负责 "想清楚要啥 + 看一眼做对了没"。
仓库在这里,感兴趣的同学可以看下完整的 commit history:
👉 github.com/Lau0x/halo-theme-joe-next
光说 "3 天 61 版" 好像挺厉害,但真相是:其中至少一半,都是在修前一个版本的坑。
下面这几个翻车故事,是这 3 天里最有代表性的。不展开技术细节,就聊故事感——让大家感受下 AI 写代码到底是啥体验。
想加一个 "相关推荐" 小卡片,在每篇文章末尾展示 3 篇同分类的文章。
Claude 几分钟写完,跑起来一看——页面上出现了 30 张卡。多了整整 27 张。
让它修,它改了一版,还是 30 张。再改一版,还是 30 张。连续 10 个候选版本 (rc.01 → rc.10) 都没修对。
最后逼它把变量打出来看,才发现是个非常隐蔽的类型问题:后台的 "3" 不是数字 3,是字符串 "3"。字符串 "3" + 1 在某些语言里等于 "31",然后程序就真的去拉了 31 条文章。
一个让人哭笑不得的 bug。但也正因为它这么反直觉,Claude 自己怎么改都绕着走。
教训:AI 连续两三版修不对同一个问题的时候,不要再让它瞎猜了,直接让它打印真实的变量值。否则就是纯纯在 token 上烧钱。
Claude 看了下主题代码,说 "jQuery 这样加载影响性能,给它加个属性可以异步加载,更快"。
听着有道理,就让它改了。
改完推上去,整个博客都打不开了。
翻车原因说起来也合理:jQuery 延迟加载之后,页面里好几十处其他脚本依赖它的地方跑得太早,找不到 jQuery,整站一片红。
最后直接把改动撤了,恢复原状。这个 "优化" 看上去简单,但真要做对,得把主题里几十处相关脚本一起调整,不是一下午能搞完的活。
教训:性能优化类的改动,生产验证前别打 tag。开个浏览器点一遍主要功能再发版。省事儿的 10 分钟,能省下一晚上查事故。
这个可能是最戏剧性的一段。
我某天看动态页觉得不够好看,跟 Claude 说 "美化一下,搞得稍微有设计感一些"。
Claude 很兴致地给了个方案,发了 rc.01。我一看:不好看,页面上这个蓝色小圈圈是干啥的。
Claude:好的,我马上收紧!发 rc.02,删了一些元素。
我:完全不想要这套了。
Claude:那换个设计语言!现代社交网络风格!rc.03。
我:……这是好看了,但布局塌了,左边一列文字挤得一个字一行。
Claude:我修!rc.04,布局修对了。
我:还是没有原来的好看。算了,咱们回原版吧。
四个版本全废,一键 git revert 回到上一个 stable。
这段翻车事后反思,根因不是 Claude 审美差——而是我一开始就没把"想要什么样"说清楚。它在自己的审美空间里闭环了四版,每版都是"它认为的美化",但和我脑子里那个隐约的画面完全对不上。
所以后来我给自己加了条规矩:以后让 AI 做视觉类改动,开工前必须给它一个参考站 URL,或者几个情绪板关键词。不然就是四版起步的翻车。
这个翻车比较严重。
起因是一个真实的安全问题:后台某条动态设为 "私有" 之后,但管理员登录访问博客前台,私有动态居然还能看到内容。
典型的主题层漏了一道过滤。
我让 Claude 加过滤,它加了一行判断,推上去。
我一看:所有动态都不显示了,包括本该显示的公开动态。
再查才发现 Claude 用错了比较方式——字段的实际类型和它以为的不一样,导致判断永远失败,全部被过滤掉了。
再改一版,修对了。再改一版,清理掉调试代码,收官。就为了修这一个 bug,一口气发了三个补丁版本。
教训:AI 的判断看起来都挺合理,但一定要跑真实数据验证。不然它拍胸脯说"这下肯定对了",上生产之后可能就是另一个故事。
这个就是翻车 3 里那个 rc.03。上完新设计,打开一看——两列内容里,左边一列宽大约 100 像素, 右边一列 800 像素。左边那列里的文字被压得一个字一行竖着排,像被揉过一样。
Claude 以为是自己写错了参数,改了好几次边距和间距,都没用。
后来查出来是 CSS 里的一个经典陷阱——简单说就是 "平均分配宽度" 这个写法遇到了 "不能换行的超长内容",两边就不平均了。
这个坑是前端圈公认的经典老坑,但如果不踩一次,你根本不知道会有这种问题。
这就是 vibe coding 的真实面貌——你不是在写代码, 你是在和各种古怪的坑玩。
聊完翻车,顺带聊一下订阅选择。因为这一波下来,我对 "哪家 AI 最值得付费" 有了点新认识。
我一开始用的是 Claude Pro(每月 $20),觉得挺够用的,日常搞点东西没啥压力。
但真要让 Claude Code 做 vibe coding 这种 "一天 20+ 版本" 的节奏,Pro 套餐很快就触顶——几个小时就把当日额度用完,然后就只能干等着刷新。
咬着牙升了 Max(每月 $100)。升级那一刻说实话是有点肉疼的。
但用了两天就想通了:
100 美元每月, 当学费其实很便宜。
你想想——如果我去找个独立开发者,把这 3 天干的活外包出去,主题 fork + 新 feature + 安全补丁 + SEO 优化 + 性能优化 + 几个 bug fix,怎么也得 500-1000 美元起步。Max 这 $100,算当月 "学费 + 外包费",比外包便宜,比自学快,最后东西还完全属于我自己。
除此之外,我还可以用它来辅助我的工作(excel里也可以用Claude了)。
顺便放张 Max 使用面板截图给大家感受一下强度:
![]()
![]()
一周用到 77%(All models),Current session 也跑了 17%。真用爆了。
为了写这篇,我盘了下自己每月的 AI 订阅费:
| 工具 | 月费 | 主要用途 | 实测体感 |
|---|---|---|---|
| Claude Max | $100 | Claude Code / 主力 vibe coding / 长对话 | ⭐⭐⭐⭐⭐ 最稳最聪明,开发主力 |
| ChatGPT Plus | $20 | OpenClaw / 日常问答 / GPT 5.4 | ⭐⭐⭐⭐ 最近升级的 GPT 5.4 确实聪明了不少 |
| Gemini Pro | $20 | 偶尔对比答案,长文本场景 | ⭐⭐⭐ 特定场景还行 |
| Kimi | ¥199 (≈$28) | 中文长文,OpenClaw 备用 | ⭐⭐ 体感明显弱一个档次 |
合计:约 $168 / 月。
这个钱多不多?不少。但我就当学习AI交的学费了,之后看看能不能取消掉1-2个不常用的。
过去这段时间同一套 OpenClaw 工具链,我分别用 Kimi 2.5、GPT 5.4 试了一遍:
同一个任务,两家结果差异非常大。
我得出的一条经验是:
选模型,在自己能力范围内选最好的,会用得更爽。
便宜 20% 但差 50%,算总账其实亏。因为差的模型浪费的不是钱, 是你自己的时间和耐心,甚至你还会怀疑这个东西真的好用吗?。就和你刚学琴买了一把300块的吉他,F和弦怎么也按不出来,你会怀疑自己我是不是真的学不会吉他。
最后吐个槽。GPT 的 Codex(OpenAI 自己的命令行工具)我也试了,结果最大的体验是——老是弹这个:
⚠️ Agent failed before reply: OAuth token refresh failed for openai-codex:
Failed to refresh OAuth token for openai-codex.
Please try again or re-authenticate.
每几天就让你重新登录一次。体感很差。
聊完钱,聊聊情绪。
回头看这 3 天、61 个版本、5 个典型翻车、一堆踩坑笔记,最大的收获不是技术层面的,而是——掌控感。
这种感觉很难形容。
以前看到博客某个样式不喜欢,只能忍。
想加个小功能,只能发 issue 等。
字号大小、行高、颜色有几个小细节不爽,只能告诉自己习惯就好。
现在?
想改就改。想删就删。想加啥加啥。不喜欢这个主题了——甚至可以让 Claude 帮我从头写一个。
这种 "一切都在自己手里" 的感觉太爽了!
而且这事不只是博客。
我最近还在琢磨几个小想法——想做一个 iOS 小 APP,专门用来提醒自己 VPS 和各种订阅服务到期续费,免得哪天 "传家宝 VPS" 突然就没了(其实现在已经做差不多了);也想搞个 Chrome 插件,还没想好具体做啥,但感觉总能用上。
这些以前想都不敢想。Swift 学起来多难啊,Xcode 折腾一整天,可能只出一个崩溃。
但现在,描述清楚需求,Claude 自己写、自己跑、自己调、自己解释。一个非程序员,3 天能发 61 版博客主题,那做个小 APP 呢?可能也就是一个周末。
软件的门槛,正在以肉眼可见的速度降低。
不是说程序员没用了——真正的工程问题还是需要专业的人。但对于 "我想给自己做个小东西" 这个诉求,门槛已经被 AI 摊平了。这是肉眼可见的变化。
聊到这儿,我想说点更胡思乱想的东西。
如果软件门槛真的降低了, 那下一道墙在哪?
我最近一直在琢磨这个问题。想法不成熟,但大致是这样。
第一道墙:硬件。
代码可以让 AI 写,但服务器会坏、光纤会断、电池会衰减、螺丝会生锈。未来 3 年 5 年,能动手改硬件、能拆能焊、能找到小众元器件、能修能造的人,可能反而稀缺。毕竟 AI 目前还没长手。
当然,机器人也在路上。
特斯拉的 Optimus、波士顿动力的 Atlas、还有国内各种人形机器人——再过几年,它们大概率能帮你做一部分 "需要手" 的事:拧螺丝、搬东西、简单清洁、甚至可能插插线修修电路。
但即便如此,我觉得还是有些事它们短期干不了:
所以硬件这道墙,会被机器人慢慢矮化,但不会马上塌。
第二道墙, 可能更有意思——肉身能力。
我越来越觉得,那些必须花时间训练才能掌握的能力——英语、西班牙语、游泳、骑车、做饭、长跑——反而变得越来越重要。
为啥?因为软件可以让 AI 写,文案可以让 AI 编,图片可以让 AI 画,视频可以让 AI 生成。硬件未来让机器人干。
但你的身体不能让 AI 代练,也不能让机器人代练。
机器人再强,也没法替你去学一门新语言的肌肉记忆、没法替你游 1000 米感受水的阻力、没法替你骑车穿过一整座城市感受风。这些东西必须是你自己的时间、汗水、年轻换来的。
当所有人都有 AI 之后,大家的 "软件产出" 会被拉到差不多的水平。再过几年当所有人都有机器人之后,生活里 "需要动手做的事" 也会被拉到差不多。
那时候,真正拉开差距的,反而是那些最原始、最肉身、最不能外包的能力。
所以如果你问我,现在手头有点闲时间,该干啥?
去学一门新语言。去游个泳。去学骑公路车。去学做红烧肉。
因为那些东西,将来可能比写代码还值钱。
主题的仓库在这里:github.com/Lau0x/halo-theme-joe-next。
如果你也用 Joe3 主题,欢迎去下载最新版 zip 试试看,也欢迎提 issue。我维护得动,就一直维护下去,维护不动了,至少留一份 fork 给后来人。
OK,那差不多今天就聊这些,不知道有没有勾起大家 vibe coding 的兴趣,也欢迎大家评论区留下你的 AI 订阅搭配和踩坑经历~
2026-04-15 17:59:44
![]()
大家好,好久没有和大家更新了。
最近好像也没找到特别有意思的 Docker 项目,随着 Claude Code 和 OpenClaw 的火爆,其实玩 Docker 也变得容易了很多,感觉是不是都没啥必要出教程啥的了,直接让它们搞定。
前俩天看到国内最早的云服务新浪云终止服务了。
今天就来做个回顾吧,回顾一下我买过的服务器们。
这个是目前咕咕持有的服务器的情况(不完全,有些比如新的VMRACK、还有腾讯云香港轻量的34元/月的没挂上去),很多都是老伙计了,可能现在买不太到。
![]()
不知道大家看到这个页面的第一反应是什么,应该第一时间是看到了两台红色的已经阵亡的机器。(当然还有其他的阵亡的机器可能被我删了 = =)
第一台是 Olink,Olink 当年最出名的是没记错的话是德国的 AS9929,36 刀/年的,还有一个是 GRE 隧道,给线路不好的服务器用的。
老板运营一直很佛系,机器很稳,用的很省心。咕咕收过一台二手的,续费 36 刀/年的,后来自己又原价买了一台。
去年好像迁移过一次机房到圣何塞,今年没想到就运营困难了,官宣了停止运营。挺可惜的(对了推广收益好像还没结算给我 = =)
![]()
第二个是搬瓦工的 The Chicken,这个其实是咕咕忘记续费了,导致阵亡。性价比其实还可以,但是和我其他的搬瓦工比起来不够高(否则我也不会忘记续费了哈哈)
然后咕咕自己看到的是在线天数。
毫无疑问,这个代表了稳定性。
买 VPS,可能一开始是为了折腾,但是时间久了之后,尤其是跑了一些项目或者部署了一些网站之后,最在乎的,肯定是稳定性。
虽然之前和大家反复强调不要相信任何一个服务器厂商,对于自己在意的数据一定要多备份。但是三天两头宕机的厂商,即使再便宜,我们也会被搞的很难受。
![]()
而搬瓦工在咕咕看来,就是稳定的代表。
我刚接触 VPS 的时候,就已经早闻大名,搬瓦工到现在至少有 10 年历史了吧。我目前的博客用的反向代理就是 The Plan V2 的套餐,一年 100 多刀,可以切换十多个机房(不过我基本没切过,一直用的 DC09),这两三年时间下来,很稳定。
还有其他的几台,也基本买了之后配置完就没怎么登录过。
双十一套餐的,一年才 29 刀,我跑了几个基础服务在上面,包括现在这个服务器网站就是跑这个上面的。
49 刀的套餐,曾经很多 mjj 溢价想要购买,咕咕这台是后面一次放货的时候抢的,500G 流量,和 The Plan V2 一样可以切换十多个机房,CN2 GIA 最便宜的套餐了,目前咕咕畅游互联网全靠它,转眼都快 3 年了。
所以如果要推荐一个稳定好用的机器,咕咕第一选择也会考虑推荐搬瓦工,前俩天还用 Claude Code 辅助做了一个简单的 HTML,上面是瓦工的产品合集:https://bwg.laoda.de/
![]()
另外值得一提的是斯巴达。
这台也是黑五抢的,当时是 31 刀/年,AMD 处理器,第二年黑五的时候升级了配置,变成 62 刀/年,然后之前老被 DDoS,刷流量(咕咕曾经一个月买了 5T 的额外流量 = =),后来我狠心加钱买了升级防御包和年付流量包,目前好像也是 100 多刀/年,我主要搭了 NPM,用做反向代理。非常稳。
老板就是客服,回复非常快,之前黑五 3、4 点熬夜抢鸡的场景历历在目,只是这俩年好像老板也佛系了,没怎么搞黑五活动。
![]()
BuyVM 之前最大的优势就是无限流量,而且便宜,VPS 只要 3 刀/月好像,加上你可以买存储块,256G、512G、1T 的都可以,所以是 PT 党们的最爱,尤其是卢森堡无视 DMCA。
咕咕这个就是卢森堡 + 256G 的最丐版配置,不过前段时间好像换老板了,卢森堡的机器也迁移到了瑞士。咕咕 PT 退烧了,偶尔用家宽下点影视作品,这个机器已经好久没登录过了。
【VPS选购分享】BuyVM——下载神器!无限流量,无视版权投诉,经常缺货DMCA版权投诉/适合BT/PT下载/Netflix解锁
![]()
CloudCone 这台是黑五抢的机器,看看已经是 3 年前的了~
1 核 2G 内存 60G 硬盘,重点是续费只要 10.44 刀/年,放着挂着看看就很香。(之前还有一个 7 刀的,出掉了,那台价格更便宜,但是配置不如这台)
![]()
DMIT 的两台,头脑发热跟风抢的,虽然说 DMIT 是搬瓦工的上游,但是我怎么觉得没搬瓦工稳呢。
线路不错,他家的一个特色是默认是用密钥登录服务器的,第一次买的小伙伴可能有点晕晕的,不知道怎么连接服务器,我应该出过小白教程,安全性确实会高一些。
![]()
机器性能强,价格低,性价比非常高,而且很稳。咕咕目前的博客就部署在它们家美西的机器上,支持备份快照,防火墙也很好用,非常省心。
他家的竞拍的独立服务器也非常受 PT 党的欢迎,曾经拥有过两台,后面因为价格和自己用不上那么高的性能而没有继续续费。
竞拍地址:https://www.hetzner.com/sb
![]()
唯一遗憾是之前咕咕写的这篇文章 【VPS 选购分享】Hetzner——欧洲阿里云!性能小钢炮!非常适合跑业务,还有适合刷 PT 的神鸡!,被一个热心的 PT 网友转载了,然后他是给大家介绍用来类似薅羊毛刷 PT 的(新用户可以用邀请链接注册可以获得 20 欧的试用金),他那篇文章火了,然后他也是好心好像用了他和我的邀请链接,最后导致咕咕的账户的链接推广功能被官方禁止了(认为通过我链接注册账户的都是低价值客户 = =)
之前其实 Hetzner 注册挺难的,现在不知道会不会容易一些了。
![]()
关键词:大盘鸡。
咕咕这个是 3 年 65 刀的,1T 的硬盘,不多说,它家的机器基本也是 PT 党用来刷 PT 用的,我这台是 3 年付的黑五版本,他家稳定性一般,不过对 PT 来说还好,我也很久没登录过了。
![]()
荷兰小钢炮,黑五买的,他家黑五基本都有活动,这台好像 18 欧/年,2G 够用,目前搭了几个简单的小服务,也是稳的一批~
![]()
和 Hetzner 一样,性价比非常高的商家,之前一直持有他家的 RS2000,基本是一个小杜甫的状态,无限流量,性能还牛逼,一个月十多欧,非常好用,目前由于经济原因,换了一台 VPS,很好用的机器。
唯一需要提醒的是他家是有合约制的,不续费要提前告知,否则一样给你续费,不交钱给你寄律师函!
![]()
法国的,最出名的是抗 DDoS,独立服务器比较有名,经常会有抽奖(买到的实际配置比官方标注的高,比如 2T 硬盘变成 4T,200M 带宽变成 1G 的),咕咕现在持有一台,每个月付费 16.99 欧,2×960 GB SSD SATA(抽奖开出来是 4×960 GB SSD SATA)的 KS-LE-2。
他家基本不给大陆的小伙伴注册,咕咕当时还不是很严格,找的代理帮忙注册的账号。
然后 OVH 和 Netcup 似乎你账号上没有订购东西,一段时间之后会删除账号,OVH 的话可以买个 OVH 后缀的域名挂着,一年就几欧。
【VPS 选购经验分享】OVH——欧洲最大、世界第三的托管服务提供商,抗 DDOS(独立服务器测评及取消 RAID、挂载硬盘分享)
![]()
性价比之王,最适合新人入坑的鸡,很多一年就 10 刀左右。够折腾,高配一些的价格也便宜。
之前有整理过列表,看看能不能捡漏~
地址:https://blog.laoda.de/vps
![]()
咕咕这台是 2019 年的,续费 20.19 刀的款,联通优化线路,1T 的流量,还是单向流量!非常高性价比的鸡。
当然最有性价比的是双十一的,同配置但是续费 11.11 刀的。咕咕曾经也有过,后来转手了。
iON 现在老板似乎也换过人了,机器也稍微偏贵一些,但是品质可以。
【VPS 选购分享】iON —— 咕咕的神鸡!Krypt 旗下,专为国人优化的 VPS,适合电信用户!7×24 小时全天候人工服务,还是单向流量!
好了,差不多了。
现在一个一个看过来,满满都是当年玩鸡的回忆。
可惜现在工作生活琐事太多,玩鸡的时间越来越少了。
列表上的这些鸡,除非是厂商跑路了或者是咕咕实在是入不敷出了,大概率会继续续费下去,也算是对过去日子的一些回忆。
OK,那差不多今天就聊这些,不知道有没有勾起老玩家的回忆,也欢迎大家评论区留下你印象最深的机器~
参考链接:
2026-04-13 13:40:00
![]()
好久没折腾服务器了,今天趁着下雨在家,把手头目前已有的服务器都登录了一遍,收拾一下,也顺便给大家更新一下咕咕服务器的最新近况~
![]()
目前持有的机器很多都是老古董了,买不到了。
Olink 实在是可惜,由于资金问题,加上老板本来就佛系运营,已经官宣停止运营了。
搬瓦工还是稳如老狗,咕咕的几台机器都已经要超过 1000 天在线了(The Chicken忘记续费被取消了 = =),之前黑五买的 Naranja Tech 也累计运行 886 天。
对搬瓦工有感兴趣的小伙伴可以在这边选购:
CN2 GIA 高速优化线路 VPS 选购:https://bwg.laoda.de
好久没买新的机器了,今天来测一下 VMRACK 这家宣传做了三网优化的精品线路的机器,看看到底怎么样。
VMRACK 主打三网优化线路,电信走 CN2 GIA,联通走 9929,移动走 CMIN2,看宣传还是挺有吸引力的。
先说结论,实测下来,线路确实非常稳。
咕咕手头的这台是 2 核 2G 内存,40G 硬盘,1.5T 流量/月,500Mbps 带宽,三网精品线路(电信走 CN2 GIA,联通走 9929,移动走 CMIN2)。
注意商家把三网优化线路和三网精品线路做了区分,三网精品线路更高一级
![]()
![]()
![]()
续费价格:
![]()
不过现在官方有特惠活动,
![]()
相同线路,最高性价比的35刀/年的售罄了,49刀/年的也售罄了,99刀/年的还有,还是比我这个常规款便宜不少 = = 地址:https://www.vmrack.net
这边咕咕用的是融合怪测试脚本,一键跑完各项测试~
curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh
GitHub 地址:https://github.com/spiritLHLS/ecs
![]()
CPU 型号:AMD EPYC-Rome Processor
单核跑分 1581,多核跑分 3178,表现还是不错的~
![]()
内存读写速度正常,日常使用(跑 Docker 服务)没问题,fio 的 19.5k IOPS 足够撑住大多数应用场景。但 dd 测试暴露出读取性能偏弱,如果跑读密集型的业务(比如大量随机读取的数据库查询),可能会感受到瓶颈。
解锁情况还是比较理想的,直接丢几张图:
![]()
![]()
Netflix、Disney+、ChatGPT、YouTube 这些主流平台基本都解锁了,日常使用完全够用~
![]()
![]()
IP 为原生 IP,信任得分 100,整体质量不错。
![]()
主流邮箱的 SMTP 端口基本都是开放的,有自建邮件服务需求的小伙伴可以参考~
![]()
这个是重点了!确实是三网优化:
三网都走了优化线路。
![]()
![]()
从路由追踪可以看到,电信确实走了 CN2 GIA 到香港再回国,联通走的 9929,移动走的 CMIN2,和宣传一致。
![]()
150ms 左右,属于美西正常 ping 值。
![]()
上下行基本都能跑满 500Mbps 的带宽,表现相当不错。
另外,VMRACK 支持 1 美元更换 IP,对于有换 IP 需求的小伙伴来说还是比较友好的。
VPS 性能不错,具体的参数大家可以看上面的测评结果。
简单总结一下亮点:
有感兴趣的小伙伴可以去官网看看:https://www.vmrack.net
测评频道: https://t.me/+UHVoo2U4VyA5NTQ1
VPS融合怪版本:2026.02.28
Shell项目地址:https://github.com/spiritLHLS/ecs
Go项目地址 [推荐]:https://github.com/oneclickvirt/ecs
---------------------基础信息查询--感谢所有开源项目----------------------
CPU 型号 : AMD EPYC-Rome Processor
CPU 核心数 : 2
CPU 频率 : 2595.124 MHz
CPU 缓存 : L1: 64.00 KB / L2: 1.00 MB / L3: 32.00 MB
AES-NI指令集 : ✔ Enabled
VM-x/AMD-V支持 : ❌ Disabled
内存 : 208.23 MiB / 1.92 GiB
Swap : [ no swap partition or swap file detected ]
硬盘空间 : 1.67 GiB / 39.17 GiB
启动盘路径 : /dev/vda1
系统在线时间 : 1 days, 1 hour 27 min
负载 : 0.54, 0.16, 0.05
系统 : Debian GNU/Linux 12 (bookworm) (x86_64)
架构 : x86_64 (64 Bit)
内核 : 6.1.0-33-amd64
TCP加速方式 : bbr
虚拟化架构 : KVM
NAT类型 : Full Cone
IPV4 ASN : AS46783 EASY LINK LLC
IPV4 位置 : Los Angeles / California / US
------------------------CPU测试--通过sysbench测试-------------------------
-> CPU 测试中 (Fast Mode, 1-Pass @ 5sec)
1 线程测试(单核)得分: 1581 Scores
2 线程测试(多核)得分: 3178 Scores
--------------------内存测试--感谢lemonbench开源----------------------------
-> 内存测试 Test (Fast Mode, 1-Pass @ 5sec)
单线程读测试: 41550.52 MB/s
单线程写测试: 19125.71 MB/s
--------------------磁盘dd读写测试--感谢lemonbench开源--------------------
-> 磁盘IO测试中 (4K Block/1M Block, Direct Mode)
测试操作 写速度 读速度
100MB-4K Block 34.7 MB/s (8465 IOPS, 3.02s) 5.6 MB/s (1357 IOPS, 18.86s)
1GB-1M Block 554 MB/s (528 IOPS, 1.89s) 122 MB/s (115 IOPS, 8.62s)
----------------------磁盘fio读写测试--感谢yabs开源-----------------------
Block Size | 4k (IOPS) | 64k (IOPS)
------ | --- ---- | ---- ----
Read | 78.10 MB/s (19.5k) | 1.02 GB/s (16.0k)
Write | 78.31 MB/s (19.5k) | 1.03 GB/s (16.1k)
Total | 156.41 MB/s (39.1k) | 2.06 GB/s (32.2k)
| |
Block Size | 512k (IOPS) | 1m (IOPS)
------ | --- ---- | ---- ----
Read | 612.37 MB/s (1.1k) | 528.12 MB/s (515)
Write | 644.91 MB/s (1.2k) | 563.29 MB/s (550)
Total | 1.25 GB/s (2.4k) | 1.09 GB/s (1.0k)
---------------流媒体解锁--感谢oneclickvirt/UnlockTests测试----------------
Can not detect IPv6 Address
测试时间: 2026-04-11 08:37:32
IPV4:
============[ 跨国平台 ]============
Apple YES (Region: USA)
BingSearch YES (Region: US)
Claude YES
Dazn YES (Region: US)
Disney+ YES (Region: US)
Gemini YES (Region: US)
GoogleSearch YES
Google Play Store YES (Region: US)
IQiYi YES (Region: US)
Instagram Licensed Audio YES
KOCOWA YES
MetaAI YES
Netflix YES (Region: US)
Netflix CDN US
OneTrust YES (Region: US CALIFORNIA)
ChatGPT YES (Region: US)
Paramount+ YES
Amazon Prime Video YES (Region: US)
Reddit YES
SonyLiv YES (Region: IN)
Sora YES (Region: US)
Spotify Registration NO
Steam Store YES (Community Available) (Region: US)
TVBAnywhere+ YES (Region: US)
TikTok YES (Region: US)
Viu.com YES
Wikipedia Editability YES
YouTube Region YES
YouTube CDN LAX
---------------------TikTok解锁--感谢lmc999的源脚本---------------------
Tiktok Region: 【US】
-------------IP质量检测--基于oneclickvirt/securityCheck使用--------------
数据仅作参考,不代表100%准确,如果和实际情况不一致请手动查询多个数据库比对
以下为各数据库编号,输出结果后将自带数据库来源对应的编号
ipinfo数据库 [0] | scamalytics数据库 [1] | virustotal数据库 [2] | abuseipdb数据库 [3] | ip2location数据库 [4]
ip-api数据库 [5] | ipwhois数据库 [6] | ipregistry数据库 [7] | ipdata数据库 [8] | db-ip数据库 [9]
ipapiis数据库 [A] | ipapicom数据库 [B] | bigdatacloud数据库 [C] | dkly数据库 [D] | ipqualityscore数据库 [E]
ipintel数据库 [F] | ipfighter数据库 [G] | fraudlogix数据库 [H] | cloudflare数据库 [I] |
IPV4:
安全得分:
信任得分(越高越好): 100 [8]
VPN得分(越低越好): 0 [8]
代理得分(越低越好): 0 [8]
社区投票-无害: 0 [2]
社区投票-恶意: 0 [2]
威胁得分(越低越好): 1 [8]
欺诈得分(越低越好): 65 [E]
滥用得分(越低越好): 0 [3]
ASN滥用得分(越低越好): 0.0152 (Elevated) [A]
公司滥用得分(越低越好): 0.0009 (Low) [A]
威胁级别: low [B]
流量占比: 真人(越高越好)47% [I] 机器人(越低越好)52% [I]
黑名单记录统计:(有多少黑名单网站有记录):
无害记录数: 0 [2] 恶意记录数: 0 [2] 可疑记录数: 0 [2] 无记录数: 94 [2]
安全信息:
使用类型: unknown [8] hosting [0 3 7 C] business [A]
公司类型: hosting [A] isp [0 7]
浏览器类型: 主流82% 其他17% [I]
设备类型: 桌面77% 移动22% 其他0% [I]
操作系统类型: 主流94% 其他5% [I]
是否云提供商: Yes [7]
是否数据中心: No [5 8 A G] Yes [0 C]
是否移动设备: No [5 A C G] Yes [E]
是否代理: No [0 4 5 7 8 A B C] Yes [E G]
是否VPN: Yes [E] No [0 7 A C G]
是否Tor: No [0 3 7 8 A B C E]
是否Tor出口: No [7]
是否网络爬虫: No [A B E]
是否匿名: No [7 8]
是否攻击者: No [7 8]
是否滥用者: No [7 8 A C E]
是否威胁: No [7 8 C]
是否中继: No [0 7 8 C]
是否Bogon: No [7 8 A C]
是否机器人: No [E]
DNS-黑名单: 304(Total_Check) 0(Clean) 10(Blacklisted) 17(Other)
Google搜索可行性:NO
------------邮件端口检测--基于oneclickvirt/portchecker开源------------
Platform SMTP SMTPS POP3 POP3S IMAP IMAPS
LocalPort ✔ ✔ ✔ ✔ ✔ ✔
QQ ✔ ✔ ✔ ✘ ✔ ✘
163 ✔ ✔ ✔ ✘ ✔ ✘
Sohu ✔ ✔ ✔ ✘ ✔ ✘
Yandex ✔ ✔ ✔ ✘ ✔ ✘
Gmail ✔ ✔ ✘ ✘ ✘ ✘
Outlook ✔ ✘ ✔ ✘ ✔ ✘
Office365 ✔ ✘ ✔ ✘ ✔ ✘
Yahoo ✔ ✔ ✘ ✘ ✘ ✘
MailCOM ✔ ✔ ✔ ✘ ✔ ✘
MailRU ✔ ✔ ✘ ✘ ✔ ✘
AOL ✔ ✔ ✘ ✘ ✘ ✘
GMX ✔ ✔ ✔ ✘ ✔ ✘
Sina ✔ ✘ ✔ ✘ ✔ ✘
Apple ✘ ✔ ✘ ✘ ✘ ✘
FastMail ✘ ✔ ✘ ✘ ✘ ✘
ProtonMail✘ ✘ ✘ ✘ ✘ ✘
MXRoute ✔ ✘ ✔ ✘ ✔ ✘
Namecrane ✔ ✘ ✔ ✘ ✔ ✘
XYAMail ✘ ✘ ✘ ✘ ✘ ✘
ZohoMail ✘ ✔ ✘ ✘ ✘ ✘
Inbox_eu ✔ ✔ ✔ ✘ ✘ ✘
Free_fr ✘ ✔ ✔ ✘ ✔ ✘
-------------上游及三网回程--基于oneclickvirt/backtrace开源--------------
国家: US 城市: Los Angeles 服务商: AS46783 EASY LINK LLC
北京电信v4 219.141.140.10 电信CN2GIA [精品线路]
北京联通v4 202.106.195.68 联通9929 [优质线路]
北京移动v4 221.179.155.161 移动CMI [普通线路] 移动CMIN2 [精品线路]
上海电信v4 202.96.209.133 检测不到回程路由节点的IPV4地址
上海联通v4 210.22.97.1 联通9929 [优质线路] 联通4837 [普通线路]
上海移动v4 211.136.112.200 移动CMI [普通线路] 移动CMIN2 [精品线路]
广州电信v4 58.60.188.222 电信CN2GIA [精品线路]
广州联通v4 210.21.196.6 联通9929 [优质线路]
广州移动v4 120.196.165.24 移动CMI [普通线路] 移动CMIN2 [精品线路]
成都电信v4 61.139.2.69 电信CN2GIA [精品线路]
成都联通v4 119.6.6.6 联通9929 [优质线路] 联通4837 [普通线路]
成都移动v4 211.137.96.205 移动CMI [普通线路] 移动CMIN2 [精品线路]
准确线路自行查看详细路由,本测试结果仅作参考
同一目标地址多个线路时,检测可能已越过汇聚层,除第一个线路外,后续信息可能无效
----------------------回程路由--基于nexttrace开源-----------------------
依次测试电信/联通/移动经过的地区及线路,核心程序来自nexttrace,请知悉!
广州电信 58.60.188.222
0.52 ms * RFC1918
1.24 ms AS4134 [CHINANET-US] 美国 加利福尼亚 洛杉矶 chinatelecom.com.cn 电信
149.67 ms * [CN2-Global] 中国 香港 chinatelecom.cn 电信
150.87 ms * [CN2-BackBone] 中国 广东 广州 chinatelecom.cn 电信
157.66 ms * [CN2-BackBone] 中国 广东 广州 chinatelecom.cn 电信
151.97 ms AS4134 [CHINANET-BB] 中国 广东 广州 chinatelecom.com.cn 电信
159.56 ms AS4134 [APNIC-AP] 中国 广东 深圳 chinatelecom.com.cn 电信
广州联通 210.21.196.6
1.12 ms * RFC1918
1.31 ms AS10099 中国 香港 chinaunicomglobal.com
165.78 ms AS10099 [CUG-BACKBONE] 中国 香港 chinaunicomglobal.com 联通
172.08 ms AS9929 [CNC-BACKBONE] 中国 上海 chinaunicom.cn 联通 CUII
149.18 ms AS9929 [CNC-BACKBONE] 中国 广东 广州 chinaunicom.cn 联通 CUII
160.21 ms * [CNC-BACKBONE] 中国 广东 广州
190.30 ms AS17623 [APNIC-AP] 中国 广东 深圳 chinaunicom.cn 联通
193.60 ms AS17623 中国 广东 深圳 宝安区 chinaunicom.cn 联通
广州移动 120.196.165.24
0.68 ms * RFC1918
1.12 ms AS58807 [CMIN2-NET] 中国 cmi.chinamobile.com 移动
129.02 ms AS58807 [CMIN2-NET] 美国 加利福尼亚 洛杉矶 cmi.chinamobile.com 移动
126.54 ms AS58807 [CMIN2-NET] 中国 上海 洛杉矶-上海 cmi.chinamobile.com 移动
129.41 ms AS9808 [CMNET] 中国 上海 X-I chinamobileltd.com 移动
128.32 ms AS9808 [CMNET] 中国 上海 I-C chinamobileltd.com 移动
129.03 ms AS9808 [CMNET] 中国 上海 chinamobileltd.com
153.36 ms AS9808 [CMNET] 中国 北京 chinamobileltd.com 移动
151.70 ms AS9808 [CMNET] 中国 北京 chinamobileltd.com 移动
154.29 ms AS9808 [CMNET] 中国 北京 chinamobileltd.com 移动
153.31 ms AS56040 [APNIC-AP] 中国 广东 深圳 gd.10086.cn 移动
---------------------自动更新测速节点列表--本脚本原创----------------------
位置 上传速度 下载速度 延迟 丢包率
Speedtest.net 511.98 Mbps 494.12 Mbps 1.04 0.0%
检测到错误:Aborted或core dumped,终止测速
执行出现错误,如果有必要请使用 https://github.com/oneclickvirt/ecs 进行测试,避免环境依赖出现问题
联通上海5G 535.07 Mbps 546.82 Mbps 173.12 NULL
检测到错误:Aborted或core dumped,终止测速
执行出现错误,如果有必要请使用 https://github.com/oneclickvirt/ecs 进行测试,避免环境依赖出现问题
电信Suzhou5G 513.73 Mbps 553.80 Mbps 138.52 NULL
电信Zhenjiang5G 557.11 Mbps 548.61 Mbps 137.32 NULL
移动Suzhou 372.13 Mbps 0.39 Mbps 137.64 0.0%
------------------------------------------------------------------------
总共花费 : 6 分 1 秒
时间 : Sat Apr 11 08:41:13 UTC 2026
------------------------------------------------------------------------
2026-04-03 10:15:29
![]()
好久没和大家更新博客了,这段时间真的事情巨多(家里的事情+公司出差+回来之后研究小龙虾和Claude Code),一直想着有时间就要更新一下,但是每次回到家忙完事情已经挺晚了,也感觉累了,就迟迟没有动手写博客。
今天趁着闲暇时间,赶紧和大家更新一波。
我在3月份的时候出差去了趟德国,工作结束之后,我突然心血来潮说要不要整一部国际版的iPhone。
熟悉咕咕的小伙伴知道,其实我目前有一台美版的iPhone SE3在服役中(支持实体SIM+eSIM),手感非常好,续航问题我也通过背夹电池的方法解决了(官方方案的升级版,后续和大家分享,可以重度使用一天),但问题就是屏幕确实有点小了,打字也容易按错。
"这次出差算是比较成功的,下次带队不知道是啥时候了,买台iPhone 17 Pro Max奖励一下自己,也顺便给大家实测一下在德国购买iPhone的流程和后续的退税流程。"
嗯,我是这么说服我自己的。虽然我知道港版功能一样,而且更便宜……
德国这边对换手机这件事情好像他们不怎么在意,地铁公交上很多都用的旧手机。因为我第二天就要出发返回国内,我先看了下小红书攻略,说最好提前预约,然后门店提货,会更稳一点,于是我就用我的SE3 在苹果的德国官网上下单了一台蓝色 512G的iPhone 17 Pro Max,用的Apple Pay选的Chase的信用卡付款的,选择线下提货的地点是慕尼黑玛丽亚广场的苹果官方旗舰店。
![]()
早起过去,人果然很多。
![]()
和工作人员说明来取货,出示了订单和二维码,
![]()
很快小姐姐就给我拿来了手机。
图片 小姐姐
然后我表示我需要退税,小姐姐似乎不太懂,询问了身边的同事,叽里咕噜的,德语我们也听不懂,然后小姐姐去拿来了一张单子,长这样:
![]()
![]()
你敢相信,在德国给外国人的退税的单子居然是德语的,而且小姐姐很抱歉地说没有英语的版本,可能需要我们自己借助翻译填写一下……
而且由于我们是线上下单的,店里并没有给我们发票。(我查询了一下发现退税需要有退税单和发票还有实物的)
我虽然表示震惊,但也接受了,凭借我多年官网购买iPhone的经验,苹果官方肯定会给我邮件发一个发票的,而且看起来这个表是苹果官方的退税,没有中间商赚差价,可以退全额,你知道德国的电子产品消费税是多少吗?19% !
![]()
怪不得感觉大家都换新手机不感冒……
然而新的问题出现了……
我下午翻看邮件,一直没有等到苹果给我发的发票,没有发票就意味着海关不可能给我退税,我又查了下,发现在官网购买的手机,电子发票可能是在24-48小时内送达到邮箱!我的机票是第二天早上的,时间上来不及了。
于是我和同事又感受了大概四十分钟的地铁,从慕尼黑机场的希尔顿返回到玛丽亚广场。我找了个理由和店员说支付的时候卡弄错了,想要把这台网上订的、上午刚提的iPhone退了,然后换一张卡在店里直接买一台。
这次接待的是一个小哥,小哥欣然同意表示没问题,简单检查了手机之后,直接给我退了款,然后我换了一张招行的卡支付,他还是把这台手机给了我,并熟练地给我global blue的单子,告诉我可以退大概10%的税,而且在玛丽亚广场不远的地方有global blue的柜台。(同事略懂日语,还和小哥谈起了他手臂上的纹身 = =)
我们过去之后工作人员给盖了章,然后工作人员让我出示了信用卡(因为我打算退到信用卡里),最后告诉了我慕尼黑机场的海关的位置,以及告诉我敲完海关的章需要把信封交给机场的global blue的柜台,整体体验非常丝滑。
![]()
![]()
手机总算告一段落,但是还有一个问题出现了……
本来我打算直接拆封使用的,但是我还是做了一下功课——购买的产品不能使用,一旦使用了之后海关不给退税!
所以还是只能老老实实装在包里,等第二天退完税之后使用。
我这次是慕尼黑 T1 航站楼出发,海关在 B 区,Global Blue 就在对面,流程还算比较清楚。
![]()
![]()
![]()
如果你买的东西是走 Global Blue 退税的,而且放在托运行李箱里,值机的时候一定要先跟工作人员说:
箱子里有 tax free items
工作人员会先给你的行李箱贴标签,然后你拿着箱子去海关那边盖章,盖完之后海关会直接帮你把行李托运走,因为前面已经贴好标签了,所以不用担心箱子乱跑。
之后你再去对面的 Global Blue 柜台办后续就可以。
如果退税物品是在随身行李里,正常来说是要过完安检以后,再去里面的海关检查盖章。
不过我这次也直接拿给外面的海关看了,结果他也给我盖章了,所以我这次就一起退掉了,但这个我感觉不一定每次都行,可能还是看现场工作人员。
几个小经验:
这次买的手机,海关那边检查了非常久,反复用手指抠,问我是不是拆过。所以像 iPhone 这种高价值商品,千万别提前拆,不然很容易影响退税。
顺便说一下,这次除了手机,我在 dm 也顺手买了一些东西。dm 的退税流程和 Global Blue 不太一样,麻烦不少——要么你下次回店里,拿海关盖章的小票再去退;要么走国内的易退税邮寄处理。两种我个人觉得都不算方便,有机会还是直接去店里退更省事。不过这次 dm 的东西,海关是完全没检查。
最后,看看这部手机退税下来一共花了多少钱:
手机原价 13525.96 - 汇率优惠 13.53 - Global Blue 退税 1340.78 - 招行1%返现 131.46 = 12040.19 元
招行那个1%的返现好像实际到账不足1%?
比起国内还是贵了不少的。
最后,给大家看一下德国版本的iPhone有啥不一样的地方:
其实除了这个CE标识,其他的和港版应该是一样的,日常eSIM需求的更推荐港版,我这个就当纪念了 = =
2026-01-20 15:12:49
![]()
好久没更新了,这周来和大家分享一个自托管的在线文件转换器。支持超过一千种不同格式。使用 TypeScript、Bun 和 Elysia 编写。
![]()
功能特性
![]()
支持转换的类型
| Converter | Use case | Converts from | Converts to |
|---|---|---|---|
| Inkscape | Vector images | 7 | 17 |
| libjxl | JPEG XL | 11 | 11 |
| resvg | SVG | 1 | 1 |
| Vips | Images | 45 | 23 |
| libheif | HEIF | 2 | 4 |
| XeLaTeX | LaTeX | 1 | 1 |
| Calibre | E-books | 26 | 19 |
| LibreOffice | Documents | 41 | 22 |
| Dasel | Data Files | 5 | 4 |
| Pandoc | Documents | 43 | 65 |
| msgconvert | Outlook | 1 | 1 |
| VCF to CSV | Contacts | 1 | 1 |
| dvisvgm | Vector images | 4 | 2 |
| ImageMagick | Images | 245 | 183 |
| GraphicsMagick | Images | 167 | 130 |
| Assimp | 3D Assets | 77 | 23 |
| FFmpeg | Video | ~472 | ~199 |
| Potrace | Raster to vector | 4 | 11 |
| VTracer | Raster to vector | 8 | 1 |
| Markitdown | Documents | 6 | 1 |
官方 GitHub 地址:https://github.com/C4illin/ConvertX (目前 15.3k 个 star,欢迎大家去给项目点星星!)
当然如果你想自己用 docker 搭建一个,那我们就继续往下!
视频地址:
哔哩哔哩:
可以直接参考这篇内容:
https://blog.laoda.de/archives/nginxproxymanager/
创建一下安装的目录:
sudo -i
mkdir -p /root/data/docker_data/convertx
cd /root/data/docker_data/convertx
接着我们来编辑下docker-compose.yml
vim docker-compose.yml
services:
convertx:
image: ghcr.io/c4illin/convertx
container_name: convertx
restart: unless-stopped
ports:
- "3001:3000"
environment:
- JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken123412 # will use randomUUID() if unset
# - HTTP_ALLOWED=true # uncomment this if accessing it over a non-https connection 如果通过 http 访问的话取消这行注释
- LANGUAGE=zh
volumes:
- ./data:/app/data
其中的左边的3001可以改成服务器上没有用过的端口。
修改完成之后,可以在英文输入法下,按 i 修改,完成之后,按一下 esc,然后 :wq 保存退出。
所有都是可选的,但建议设置 JWT_SECRET。
| Name | Default | Description |
|---|---|---|
| JWT_SECRET | when unset it will use the value from randomUUID() | 用于签署 JSON Web Token 的一串密钥字符串 |
| ACCOUNT_REGISTRATION | false | 允许用户注册账户 |
| HTTP_ALLOWED | false | 允许 HTTP 连接,仅在本地部署的时候将它设置为 true |
| ALLOW_UNAUTHENTICATED | false | 允许未认证用户使用该服务,仅在本地部署的时候将它设置为 true。 |
| AUTO_DELETE_EVERY_N_HOURS | 24 | 每 n 小时检查一次,删除超过 n 小时的文件,设置为 0 表示禁用。 |
| WEBROOT | 将根路径设置为 "/convert" 的地址将在 "example.com/convert/" 上提供网站。 | |
| FFMPEG_ARGS | 传递给 ffmpeg 输入文件的参数,例如 -hwaccel vaapi。有关硬件加速的更多信息,请参见 #190。 |
|
| FFMPEG_OUTPUT_ARGS | 传递给 ffmpeg 输出的参数,例如 -preset veryfast
|
|
| HIDE_HISTORY | false | 隐藏历史页面 |
| LANGUAGE | en | 用于格式化日期字符串的语言,指定为 BCP 47 language tag |
| UNAUTHENTICATED_USER_SHARING | false | 所有未经身份验证用户共享转换历史记录 |
| MAX_CONVERT_PROCESS | 0 | 允许的最大并发转换进程数量。设置为 0 表示无限制。 |
按需添加修改,修改完成之后,可以在英文输入法下,按 i 修改,完成之后,按一下 esc,然后 :wq 保存退出。
查看端口是否被占用(以 3001 为例),输入:
lsof -i:3001 #查看 3001 端口是否被占用,如果被占用,重新自定义一个端口
如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~
如果出现:
-bash: lsof: command not found
运行:
apt install lsof #安装 lsof
如果端口没有被占用(被占用了就修改一下端口,比如改成 8381,注意 docker 命令行里和防火墙都要改)
cd /root/data/docker_data/convertx
docker compose up -d # 注意,老版本用户用 docker-compose up -d
![]()
镜像还是比较大的……
耐心等待拉取好镜像,出现 Created的字样之后,
理论上我们就可以输入 http://ip:3001 访问了。
但是我们部署在公网一定要考虑使用反向代理工具配置 SSL!
做反向代理前,你需要一个域名!
namesilo 上面 xyz 后缀的域名一年就 7 块钱,可以年抛。(冷知识,namesilo 上 6 位数字的 xyz 续费永远都是 0.99 美元 = =)
如果想要长期使用,还是建议买 com 后缀的域名,更加正规一些,可以输入 laodade 来获得 1 美元的优惠(不知道现在还有没有)
namesilo 自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些
丑
古老 = =)
【域名购买】Namesilo 优惠码和域名解析教程(附带服务器购买推荐和注意事项)
我们接着往下看!
在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程) (名称改成你自己想要的域名前缀即可)
![]()
之后,登陆 Nginx Proxy Manager(不会的看这个:安装 Nginx Proxy Manager(相关教程))
注意:
Nginx Proxy Manager(以下简称 NPM)会用到
80、443端口,所以本机不能占用(比如原来就有 Nginx)
直接丢几张图:
注意填写对应的
域名、IP和端口,按文章来的话,应该是3001
IP 填写:
如果 Nginx Proxy Manager 和 convertx 在同一台服务器上,可以在终端输入:
ip addr show docker0
查看对应的 Docker 容器内部 IP。
否则直接填 convertx 所在的服务器 IP 就行。
然后访问域名就可以访问了!
发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:
直接新建一个站点,不要数据库,不要 php,纯静态即可。
然后打开下面的配置,修改 Nginx 的配置。
代码如下:
location / {
proxy_pass http://127.0.0.1:3001/; # 注意改成你实际使用的端口
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。
有同学可能会问,为什么不直接用宝塔自带的反向代理功能。
也可以,不过咕咕自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况 = =
所以后来就不用了,直接用上面的方法来操作了。
非常简单,所见即所得。
先注册账号:
![]()
![]()
JPG 转换成 webp
![]()
![]()
MP4 转 AVI
![]()
正常转换。
转换历史:
![]()
服务器里还是能看到文件的,
![]()
这个项目后续会持续有更新,所以提供一个更新的方式。
cd /root/data/docker_data/convertx
docker compose pull
docker compose up -d # 请不要使用 docker compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。
docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像
提示:
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]
输入 y
利用 Docker 搭建的应用,更新非常容易~
同样进入安装页面,先停止所有容器。
cd /root/data/docker_data/convertx
docker compose down
cd ..
rm -rf /root/data/docker_data/convertx # 完全删除
可以卸载得很干净。
大家使用上有什么心得或者问题,欢迎评论区交流~
祝大家用得开心,有问题可以去 GitHub 提 Issues,也可以在评论区互相交流探讨。
同时,有能力给项目做贡献的同学,也欢迎积极加入到 项目 中来,贡献自己的一份力量!
最后,感谢作者 @C4illin 的辛苦付出,让我们能用到这么优秀的项目!欢迎大家都去给这个项目点个 star。
官方 GitHub:https://github.com/C4illin/ConvertX
2025-12-18 17:11:24
![]()
好久没更新了,这周来和大家分享一个 AI 驱动的图表生成器——Next-AI-Draw.io
Next-AI-Draw.io 是一个集成了 AI 功能的 Next.js 网页应用,与 draw.io 图表无缝结合。通过自然语言命令和 AI 辅助可视化来创建、修改和增强图表。
![]()
![]()
功能特性
官方 GitHub 地址:https://github.com/DayuanJiang/next-ai-draw-io (目前 13k 个 star,欢迎大家去给项目点星星!)
Demo 地址:https://next-ai-drawio.jiang.jp/
当然如果你体验完还想自己用 docker 搭建一个,那我们就继续往下!
视频地址:
哔哩哔哩:
可以直接参考这篇内容:
https://blog.laoda.de/archives/nginxproxymanager/
创建一下安装的目录:
sudo -i
mkdir -p /root/data/docker_data/drawioai
cd /root/data/docker_data/drawioai
接着我们来编辑下docker-compose.yml
vim docker-compose.yml
name: nextaidrawio
services:
next-ai-draw-io:
ports:
- 3001:3000
env_file:
- .env
image: ghcr.io/dayuanjiang/next-ai-draw-io:latest
其中的左边的3001可以改成服务器上没有用过的端口。
修改完成之后,可以在英文输入法下,按 i 修改,完成之后,按一下 esc,然后 :wq 保存退出。
接着我们来编辑下.env
cd /root/data/docker_data/drawioai
vim .env
粘贴如下内容:
# AI Provider Configuration
# AI_PROVIDER: Which provider to use
# Options: bedrock, openai, anthropic, google, azure, ollama, openrouter, deepseek, siliconflow, gateway
# Default: bedrock
AI_PROVIDER=bedrock
# AI_MODEL: The model ID for your chosen provider (REQUIRED)
AI_MODEL=global.anthropic.claude-sonnet-4-5-20250929-v1:0
# AWS Bedrock Configuration
# AWS_REGION=us-east-1
# AWS_ACCESS_KEY_ID=your-access-key-id
# AWS_SECRET_ACCESS_KEY=your-secret-access-key
# Note: Claude and Nova models support reasoning/extended thinking
# BEDROCK_REASONING_BUDGET_TOKENS=12000 # Optional: Claude reasoning budget in tokens (1024-64000)
# BEDROCK_REASONING_EFFORT=medium # Optional: Nova reasoning effort (low/medium/high)
# OpenAI Configuration
# OPENAI_API_KEY=sk-...
# OPENAI_BASE_URL=https://api.openai.com/v1 # Optional: Custom OpenAI-compatible endpoint
# OPENAI_ORGANIZATION=org-... # Optional
# OPENAI_PROJECT=proj_... # Optional
# Note: o1/o3/gpt-5 models automatically enable reasoning summary (default: detailed)
# OPENAI_REASONING_EFFORT=low # Optional: Reasoning effort (minimal/low/medium/high) - for o1/o3/gpt-5
# OPENAI_REASONING_SUMMARY=detailed # Optional: Override reasoning summary (none/brief/detailed)
# Anthropic (Direct) Configuration
# ANTHROPIC_API_KEY=sk-ant-...
# ANTHROPIC_BASE_URL=https://your-custom-anthropic/v1
# ANTHROPIC_THINKING_TYPE=enabled # Optional: Anthropic extended thinking (enabled)
# ANTHROPIC_THINKING_BUDGET_TOKENS=12000 # Optional: Budget for extended thinking in tokens
# Google Generative AI Configuration
# GOOGLE_GENERATIVE_AI_API_KEY=...
# GOOGLE_BASE_URL=https://generativelanguage.googleapis.com/v1beta # Optional: Custom endpoint
# GOOGLE_CANDIDATE_COUNT=1 # Optional: Number of candidates to generate
# GOOGLE_TOP_K=40 # Optional: Top K sampling parameter
# GOOGLE_TOP_P=0.95 # Optional: Nucleus sampling parameter
# Note: Gemini 2.5/3 models automatically enable reasoning display (includeThoughts: true)
# GOOGLE_THINKING_BUDGET=8192 # Optional: Gemini 2.5 thinking budget in tokens (for more/less thinking)
# GOOGLE_THINKING_LEVEL=high # Optional: Gemini 3 thinking level (low/high)
# Azure OpenAI Configuration
# Configure endpoint using ONE of these methods:
# 1. AZURE_RESOURCE_NAME - SDK constructs: https://{name}.openai.azure.com/openai/v1{path}
# 2. AZURE_BASE_URL - SDK appends /v1{path} to your URL
# If both are set, AZURE_BASE_URL takes precedence.
# AZURE_RESOURCE_NAME=your-resource-name
# AZURE_API_KEY=...
# AZURE_BASE_URL=https://your-resource.openai.azure.com/openai # Alternative: Custom endpoint
# AZURE_REASONING_EFFORT=low # Optional: Azure reasoning effort (low, medium, high)
# AZURE_REASONING_SUMMARY=detailed
# Ollama (Local) Configuration
# OLLAMA_BASE_URL=http://localhost:11434/api # Optional, defaults to localhost
# OLLAMA_ENABLE_THINKING=true # Optional: Enable thinking for models that support it (e.g., qwen3)
# OpenRouter Configuration
# OPENROUTER_API_KEY=sk-or-v1-...
# OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 # Optional: Custom endpoint
# DeepSeek Configuration
# DEEPSEEK_API_KEY=sk-...
# DEEPSEEK_BASE_URL=https://api.deepseek.com/v1 # Optional: Custom endpoint
# SiliconFlow Configuration (OpenAI-compatible)
# Base domain can be .com or .cn, defaults to https://api.siliconflow.com/v1
# SILICONFLOW_API_KEY=sk-...
# SILICONFLOW_BASE_URL=https://api.siliconflow.com/v1 # Optional: switch to https://api.siliconflow.cn/v1 if needed
# Vercel AI Gateway Configuration
# Get your API key from: https://vercel.com/ai-gateway
# Model format: "provider/model" e.g., "openai/gpt-4o", "anthropic/claude-sonnet-4-5"
# AI_GATEWAY_API_KEY=...
# Langfuse Observability (Optional)
# Enable LLM tracing and analytics - https://langfuse.com
# LANGFUSE_PUBLIC_KEY=pk-lf-...
# LANGFUSE_SECRET_KEY=sk-lf-...
# LANGFUSE_BASEURL=https://cloud.langfuse.com # EU region, use https://us.cloud.langfuse.com for US
# Temperature (Optional)
# Controls randomness in AI responses. Lower = more deterministic.
# Leave unset for models that don't support temperature (e.g., GPT-5.1 reasoning models)
# TEMPERATURE=0
# Access Control (Optional)
# ACCESS_CODE_LIST=your-secret-code,another-code
# Draw.io Configuration (Optional)
# NEXT_PUBLIC_DRAWIO_BASE_URL=https://embed.diagrams.net # Default: https://embed.diagrams.net
# Use this to point to a self-hosted draw.io instance
# PDF Input Feature (Optional)
# Enable PDF file upload to extract text and generate diagrams
# Enabled by default. Set to "false" to disable.
# ENABLE_PDF_INPUT=true
# NEXT_PUBLIC_MAX_EXTRACTED_CHARS=150000 # Max characters for PDF/text extraction (default: 150000)
这里头有很多选项可以开启,当然你也可以不管它,到网页端输入,这样的话就保存在本地浏览器里了,如果在这边输入,所有知道这个网址的人都能用你的 AI 模型。
假设我们用的 OPEN AI 的,其实.env里面只要这仨:
AI_PROVIDER=openai
AI_MODEL=gpt-4o
OPENAI_API_KEY=your_api_key
your_api_key改成你的 API 密钥。
修改完成之后,可以在英文输入法下,按 i 修改,完成之后,按一下 esc,然后 :wq 保存退出。
查看端口是否被占用(以 3001 为例),输入:
lsof -i:3001 #查看 3001 端口是否被占用,如果被占用,重新自定义一个端口
如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~
如果出现:
-bash: lsof: command not found
运行:
apt install lsof #安装 lsof
如果端口没有被占用(被占用了就修改一下端口,比如改成 8381,注意 docker 命令行里和防火墙都要改)
cd /root/data/docker_data/drawioai
docker compose up -d # 注意,老版本用户用 docker-compose up -d
耐心等待拉取好镜像,出现 done的字样之后,
理论上我们就可以输入 http://ip:3001 访问了。
但是我们部署在公网一定要考虑使用反向代理工具配置 SSL!
做反向代理前,你需要一个域名!
namesilo 上面 xyz 后缀的域名一年就 7 块钱,可以年抛。(冷知识,namesilo 上 6 位数字的 xyz 续费永远都是 0.99 美元 = =)
如果想要长期使用,还是建议买 com 后缀的域名,更加正规一些,可以输入 laodade 来获得 1 美元的优惠(不知道现在还有没有)
namesilo 自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些
丑
古老 = =)
【域名购买】Namesilo 优惠码和域名解析教程(附带服务器购买推荐和注意事项)
我们接着往下看!
在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程) (名称改成你自己想要的域名前缀即可)
![]()
之后,登陆 Nginx Proxy Manager(不会的看这个:安装 Nginx Proxy Manager(相关教程))
注意:
Nginx Proxy Manager(以下简称 NPM)会用到
80、443端口,所以本机不能占用(比如原来就有 Nginx)
直接丢几张图:
注意填写对应的
域名、IP和端口,按文章来的话,应该是3001
IP 填写:
如果 Nginx Proxy Manager 和 drawioai 在同一台服务器上,可以在终端输入:
ip addr show docker0
查看对应的 Docker 容器内部 IP。
否则直接填 drawioai 所在的服务器 IP 就行。
然后访问域名就可以访问了!
发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:
直接新建一个站点,不要数据库,不要 php,纯静态即可。
然后打开下面的配置,修改 Nginx 的配置。
代码如下:
location / {
proxy_pass http://127.0.0.1:3001/; # 注意改成你实际使用的端口
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。
有同学可能会问,为什么不直接用宝塔自带的反向代理功能。
也可以,不过咕咕自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况 = =
所以后来就不用了,直接用上面的方法来操作了。
非常简单,所见即所得。
登录页,
![]()
语言设置,改成中文,
![]()
简单展示
![]()
右边可以输入提示词,比如让它画一只猫猫,
![]()
画的熊猫不太像……
![]()
当然你也可以隐藏掉这个提示词输入框,把它当成一个普通的画图软件来用,
![]()
如果用默认的,其实是用的项目作者的 API,速率可能会有限制,当然用自己的 API 就没有这个问题了,如果手上富裕,也可以考虑捐赠作者,支持开源项目长久发展。
![]()
这个项目后续会持续有更新,所以提供一个更新的方式。
cd /root/data/docker_data/drawioai
docker compose pull
docker compose up -d # 请不要使用 docker compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。
docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像
提示:
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]
输入 y
利用 Docker 搭建的应用,更新非常容易~
同样进入安装页面,先停止所有容器。
cd /root/data/docker_data/drawioai
docker compose down
cd ..
rm -rf /root/data/docker_data/drawioai # 完全删除
可以卸载得很干净。
那个保存按钮点了似乎没有任何反馈……
不过画的图导出是没问题的。
大家使用上有什么心得或者问题,欢迎评论区交流~
祝大家用得开心,有问题可以去 GitHub 提 Issues,也可以在评论区互相交流探讨。
同时,有能力给项目做贡献的同学,也欢迎积极加入到 项目 中来,贡献自己的一份力量!
最后,感谢作者 @DayuanJiang 的辛苦付出,让我们能用到这么优秀的项目!欢迎大家都去给这个项目点个 star。