大概两年前我自己部署了 Uptime Kuma 来监控我的各项服务在线情况,这两年内一直工作非常稳定,除了偶尔的网络波动带来的误报,基本上没有其他大问题。
但是用了超过两年,最近访问后台加载起来越来越慢,经常需要好久才能将监控的列表加载出来。对于使用上的问题,对我的影响越来越不能忽视, 所以今天来讲一下如何优化 Uptime Kuma 的数据库。
原因
Uptime Kuma 在 1.x 版本中需要对整个 heartbeat 表进行扫描来执行一些操作,数据库中存在大量数据时,会导致显著的性能下降。根据开发者的说明,性能限制依赖于硬件配置,超过 50
Read more ...
在之前的文章当中已经介绍过如何在 K3S 当中使用 Longhorn 作为分布式存储方案,那么本文再记录一下如何将 Longhorn 的备份存储到 S3 兼容的对象存储当中。
要完成这个备份,需要完成两个核心步骤。创建一个 S3 访问凭证,然后在 Longhorn 的 UI 当中配置备份目标。
创建 S3 访问凭证
首先,您需要在 longhorn-system 命名空间中创建一个 Kubernetes Secret,用于安全地存储访问 S3 存储桶所需的凭证。
准备如下的信息
Access Key ID: 访问 S3 服务的授权 I
Read more ...
这两天在发布 iOS 应用到 App Store 的时候,在第一步创建 Bundle ID 的地方就卡住了,这是 iOS 开发过程中的一大坑,所以本文记录一下。
什么是 Bundle ID
Bundle ID 是苹果用于标识应用的唯一字符。每一个 iOS 应用都有一个唯一的 Bundle ID,有字符串组成,通常是反向域名的形式,比如 com.domain.appname。
Bundle ID 的作用非常关键,不仅用于区分应用,还用于应用的各种资源,比如推送通知,iCloud,SDK 验证等等。
所以本文下方就展开讲讲我是怎么调入 Bundle
Read more ...
在 Android 平台上,开屏广告一直是影响用户体验的一大顽疾。虽然市面上已经有不少类似「李跳跳」的工具,但随着 Android 系统的更新和应用厂商的对抗,很多工具逐渐停止维护或失效。
今天要介绍的是一款名为 GKD (搞快点) 的开源工具。它不仅能跳过开屏广告,还能通过自定义规则实现应用内的自动化操作(如自动领取奖励、关闭弹窗等),是一款由于其强大的扩展性而备受推崇的神器。
什么是 GKD?
GKD(全称:搞快点)是一款基于 Android 无障碍服务 (AccessibilityService) 的自动化点击工具。它本身是一个空壳软件,不包
Read more ...
前几个月很多人分享通过 [[Stripe Atlas]] 注册美国公司(LLC),但是 Atlas 及时通过微软的创业者链接也需要 250 美元,今天就教一下大家如何只需要 133 美元就可以注册一家美国 LLC。
现在全球化的商业环境中,不论是初创的 SaaS 公司,还是实际经营跨境电商,进出口业务,都需要有一个正式的商业实体,一方面可以为个人提供责任保护,将个人资产和公司债务分离,另外一方面也可以在税务上提供更大的灵活性,并且有助于提升商业信誉。
我个人结合我自身的需求以及经过大量的研究和比较之后,最终选择了 [[Northwest Regist
Read more ...
去年开始因为一些海淘的原因,所以租赁了一个美国静态住宅 IP,299 美元买了一台 Google Pixel 9,后来陆陆续续又因为申请美国网站的各种服务就一直续费了下来。所以本文就记录一下非常个人的使用。
住宅 IP 是什么
首先我们来说一下什么是住宅 IP。 住宅 IP 是由互联网服务提供商(ISP)分配给个人用户的真实家庭网络 IP 地址,由 100%真实 WIFI 网络用户组成。这些 IP 地址与实际物理位置关联,具有不连号、散点分布的特点,与普通网民使用的 IP 完全一致。相比数据中心 IP,住宅 IP 更难被网站识别和屏蔽,被列入黑名单的
Read more ...
在如今 AI 时代,个人开发者和企业都想要高效,经济,且容易部署的 AI 模型,尤其是 DeepSeek 横空出世之后使得个人在部署使用私有 AI 模型方面变得异常简单,但问题随之出现,普通人的电脑无法带动 DeepSeek 发布的更消耗内存更消耗计算能力的模型,普通用户也很难去给自己的每台电脑都配上英伟达 4090,更不用说去管理 GPU 集群,而普通开发者如果想要将自己的模型部署到云服务上也非常棘手,而这就是今天我要介绍的 Novita.AI 要解决的问题。
什么是 Novita
Novita.AI 是一个专为开发者设计的 AI 云平台,用户可以
Read more ...
在 Linux 上我使用 [[Guake]],到后来换成 macOS 之后使用 Kitty,直到前段时间更换成 Warp,但是没想到这几天又发现一款不错的终端 Ghostty。没查不知道,但是一查之后才发现 Ghostty 背后的作者的故事是多么精彩,并且 Ghostty 使用的 Zig 语言也是我第一次听说。
Ghostty 由著名的开发者 Mitchell Hashimoto(HashiCorp 联合创始人)使用 Zig 语言编写的一款终端模拟器,在速度,功能性方面都有不错的优势。
Ghostty 目标是成为一个更快,功能更丰富的下一代终端应用,
Read more ...
这两天遇到一个和 Docker 运行相关的问题,我们使用 Azure App Service 来运行服务,但是每次重启服务的时候,发现不会出发 Javalin 的 stop,感觉 Java 进程没有接受到 Docker 容器停机的信号,然后就被系统杀死了,所以就这个问题,仔细地研究了一下 Docker 运行以及如何优雅地关闭 Docker 容器中的 Java 进程。
问题原因
信号是操作系统用于向正在运行的进程发送消息,使其以特定方式运行的一种方式,常见的情况是操作系统会向进程 ID 发送 SIGTERM 信号来终止进程,当我们执行 kill PID
Read more ...
这两天在 IBKR 上买了一点按月分红的 ETF,然后在邮箱中就收到了 IBKR 发过来的建议邮件,说 IB 还提供了一个共同基金的工具可以来寻找类似表现,但是费用更低的其他 ETF,这就是一款 ETF 发掘工具。
所以收到邮件之后,我就立即定了一个计划,晚上回来就登录 IBKR 的后台,下载 Trader Workstation(TWS),然后在其中找到了这一款工具。
Mutual Fund/ETF Replicator 是一个非常使用的分析工具,可以帮助用户找到相似业绩的共同基金和 ETF,通过比较可以找到管理费用更低的组合。
Mutual
Read more ...