记录在双集群 K3s Homelab 中补齐 OpenTelemetry traces 管道的过程:从 OTel Collector 配置、跨集群 Tempo 接入,到 Grafana 数据源联动和多语言 SDK 接入。
Timeslot: A Self-Hosted Calendar Availability Feed for a Static Blog
A small self-hosted tool for exposing calendar availability on a static blog without relying on a third-party scheduling platform.
我的 Homelab 架构梳理:双 K3s 集群的 IaC 与 GitOps 实践
整理当前这套 Homelab 的整体架构:从 Proxmox 和 Oracle Cloud 双集群,到 Terraform + Ansible、ArgoCD GitOps、Tailscale、Cloudflare、Vault 与 ZITADEL 的配合方式。
用 Cloudflare WAF 为双 K3s 集群补一层边缘防护
记录在 Homelab 的 Cloudflare Terraform 配置中补充 WAF 防护:Zone 安全设置、自定义规则和认证端点速率限制,用来保护 homelab 与 oracle-k3s 的子域名入口。
在 K3s 上串起一条信息管道:Miniflux → KaraKeep → Gotify → Telegram
记录我在双集群 K3s Homelab 里搭建信息管道的过程:Miniflux 保存文章后进入 KaraKeep,再经 Gotify 转发到 Telegram,并补充 Redpanda Connect 配置、跨集群通信和踩坑记录。
一次 make coverage 卡死排查:Reactive Redis 与 Lettuce SharedLock 的连锁问题
复盘一次集成测试在 make coverage 阶段卡住的问题:先看到连接池超时,继续排查后又定位到 Lettuce SharedLock 自旋,并整理这次排查路径与修复思路。
在K3s上部署ZITADEL实现SSO单点登录
在K3s homelab环境中部署ZITADEL作为OIDC身份提供者,结合oauth2-proxy和Traefik Gateway API的ForwardAuth机制,为所有自托管服务实现统一的SSO单点登录。
How a Performance Optimization Caused Cascading Redis Timeouts in Spring WebFlux
A seemingly harmless removal of publishOn(Schedulers.boundedElastic()) led to cascading Redis timeouts in production. This post explains how Spring’s @Cacheable blocks the Netty event loop when used with RedisCacheManager, and why BlockHound failed to catch it.
Microservice(1) Overview
把单体拆成可独立骑行的小车——微服务能提速也会添麻烦。了解微服务架构的优势与挑战,可以帮助团队更好地应对复杂性。
Spring AI(4)- 调整返回的Response - 今日运势
Spring AI提供了一些功能来影响LLM返回的响应。本文将介绍如何通过设置生成选项、结构化输出转换器和流式响应来优化AI生成内容的质量和用户体验。