# OKHK OKHK Note > URL: https://note.okhk.net ## Article - [K3s 配置 Envoy Gateway:结合 Cloudflare Tunnel 与 Tailscale 实现内外网服务隔离](https://note.okhk.net/k3s-envoy-gateway-cloudflare-tunnel-and-tailscale) (2026-09-25) 笔记记录了在 K3s 中通过 Envoy Gateway 实现服务内外网隔离的运维配置过程,包括利用 Tailscale 接入 LoadBalancer 暴露私有服务、通过 Cloudflare Tunnel 暴露公开服务,并结合 cert-manager 自动签发 Let's Encrypt TLS 证书以及配合 external-dns 实现 Cloudflare DNS 记录的自动化管理。 - [docker-traefik-dns - 根据容器标签 URL 自动创建 Cloudflare DNS 记录](https://note.okhk.net/docker-traefik-dns-with-cloudflare) (2026-09-09) 一个用 Go 语言编写的轻量级开源工具 docker-traefik-dns,自动化解决自建服务中的 DNS 配置繁琐问题。它能够读取 Docker 容器标签或 Traefik 规则中的域名,并自动调用 Cloudflare API 创建对应的 DNS 解析记录。 - [Podroid 简单体验 - Android 上无需 root 运行 Alpine Linux 虚拟机容器环境](https://note.okhk.net/podroid-android-simple-note) (2026-08-30) 文章分享了使用 Podroid 在 Android 上免 Root 运行 Alpine Linux 的体验:优点是部署门槛极低且功能完整,但缺乏 pKVM 硬件加速的旧设备在纯软件模拟下性能损耗较明显。 - [使用 Kopia(Docker) 备份 Linux 服务器文件到对象存储](https://note.okhk.net/kopia-linux-backup-to-s3) (2026-05-15) 文章介绍了如何使用开源备份工具 Kopia 通过 Docker 容器化部署将 Linux 服务器文件安全备份到对象存储(如 Cloudflare R2)。这可以帮助用户实现数据的端到端加密、高效去重以及免服务器架构的云端备份。 - [使用 Cloudflare Tunnel 和 Traefik 访问部署的 Docker 服务](https://note.okhk.net/self-hosted-service-with-traefik-and-cloudflare-tunnel) (2026-02-10) 文章记录了个人自建服务的“古法运维”方案:利用 Traefik 作为本地容器的反向代理和动态服务发现,结合 Cloudflare Tunnel 实现内网穿透和安全访问。 - [香港汇丰银行红狮子提款卡电话人工客服激活 | TERR_30004 报错](https://note.okhk.net/activate-hsbc-hk-card-by-call-human-service) (2025-12-22) 文章记录了激活香港汇丰银行红狮子提款卡的激活操作,分享了网友接通汇丰电话客服人工服务的方法步骤。 - [开源 AI/LLM API 聚合项目列表](https://note.okhk.net/awesome-ai-llm-api-open-source-project) (2025-11-11) 开源的 AI/LLM API聚合项目列表,这类项目提供统一的 AI API 接口,用于调用和管理多个大型语言模型(LLM)服务。 - [Debian 12 升级 Debian 13 简单记录](https://note.okhk.net/upgrade-debian-12-to-13-note) (2025-08-10) 文章记录了从 Debian 12 (Bookworm) 升级到 Debian 13 (Trixie) 的步骤,升级过程包括系统更新、修改软件源(引入 deb822 新格式)、检查磁盘空间、使用 screen 防止中断,并执行 apt full-upgrade 命令。升级后,文章还指出需注意 sysctl 配置文件的变化、/tmp 目录的内存存储特性,以及可选移除 exim4 和 apparmor 软件包。 - [VSCode 的 Dev Container 配置 Docker 容器中运行 Claude Code](https://note.okhk.net/claude-code-in-docker-by-vscode-devcontainer) (2025-07-13) 文章记录了在 Docker 容器中运行 AI Coding Agent(如 Claude Code)以提高安全性的方法。由于 AI Agent 可能存在绕过安全限制执行危险操作的风险,文章强调了沙盒(Sandbox)的重要性,并介绍了如何利用 VSCode 的 Dev Container 配置 Docker 环境来隔离 Claude Code,从而限制其对宿主机的访问和潜在破坏。 - [Golang 编写简单的 AI Agent Demo](https://note.okhk.net/simple-ai-agent-demo-in-golang) (2025-06-25) 文章介绍了一个使用 Go 语言实现的简单 AI Agent 示例,阐述了 AI Agent 的基本结构,即“循环 + AI(LLM) + 工具(Tools)”。文章详细说明了如何通过 Go 语言连接 OpenAI 的大型语言模型(LLM),以及如何定义和整合可供 AI 调用的工具函数(Function Calling),最终形成一个完整的 AI Agent 工作闭环。 - [使用 SquashFS 来代替传统的 tar 打包归档](https://note.okhk.net/replace-tar-with-squashfs-for-archiving) (2025-06-10) 文章推荐使用 SquashFS 作为现代文件打包归档的替代方案,因为它解决了传统格式(如tar.gz、zip、7z)在文件元数据保留、随机读取和增量追加方面的不足。SquashFS 是一个只读的压缩文件系统,广泛应用于 Linux LiveCD、嵌入式设备和软件打包,并提供了完整的元数据保留、原生随机读取和高压缩率等优点。 - [一些教育优惠(Edu 邮箱)的服务/工具整理](https://note.okhk.net/some-free-student-edu-services) (2025-05-30) 文章整理了面向学生的教育优惠服务,涵盖软件工具、人工智能、购物休闲等多个类别。优惠内容包括免费软件、云服务、AI工具会员、流媒体订阅等,多数需通过教育邮箱验证,具体优惠时效性请参考官方说明。 - [MCP Server 信息整理站点/仓库](https://note.okhk.net/mcp-server-source-site) (2025-05-02) 近期MCP(Model Context Protocol)热度上升,本文整理了一些MCP Server资源站点和仓库,包括Smithery、Composio、MCP.so、Glama等平台,以及MCP官方GitHub仓库和多个Awesome MCP仓库,方便开发者查找和使用MCP Server。 - [使用 Claw Cloud Run 平台免费容器,需要 GitHub 账户](https://note.okhk.net/claw-cloud-run-free-docker-devbox) (2025-04-19) Claw Cloud Run 提供免费容器服务,每月 $5 的免费额度供于注册时间超过 180 天的 GitHub 用户,限制包括最多 4 个 vCPU、8GB RAM 和 10GB 流量和磁盘空间。服务运行在阿里云的基础设施上,支持的注册地包括新加坡、美国东部、德国、美国西部和日本。平台还内置了应用商店,方便快速安装和部署项目。 - [自部署 Blinko AI 笔记工具并配置 Cloudflare R2 对象存储](https://note.okhk.net/self-host-blinko-and-config-cloudflare-r2) (2025-02-21) 文章介绍了一款名为 Blinko 的开源自托管 AI 笔记工具,作为 memos 的替代方案,该工具支持纯文本与 Markdown 格式记录,通过“闪念”和“笔记”双模块管理内容,并集成基于 RAG 技术的自然语言搜索功能。文章重点阐述了部署流程:使用 Xata 的 PostgreSQL 数据库服务配置数据库,通过 Docker Compose 启动服务,并详细指导如何对接 Cloudflare R2 对象存储实现文件托管。 - [使用 nftables 配置 Web 服务器仅允许 Cloudflare IP 访问](https://note.okhk.net/nftables-restrict-web-server-cloudflare-ips) (2024-12-22) 文章记录了如何使用 nftables(Linux 中现代化的防火墙框架)配置防火墙规则实现仅允许来源自 Cloudflare IP 源地址的访问,确保所有流量都通过 Cloudflare 处理。 - [macOS 上 配置 Launchctl 运行 Clash Meta(Mihomo)内核服务](https://note.okhk.net/use-launchctl-to-start-clash-meta-kernel-on-macos) (2024-11-12) 文章介绍了如何在 macOS 上使用 launchctl 配置和启动 Clash Meta(Mihomo)内核服务。首先,讲解了 launchd 和 launchctl 的基本概念及常用命令,随后提供了 clash.plist 配置文件的示例,说明了如何设置服务标识、运行参数和日志路径。接着,详细描述了如何移动内核和配置文件到相应路径,并以 root 权限启动服务。最后,介绍了如何通过 Web 面板管理 Clash,包括修改控制 API 端口和设置鉴权的建议。 - [UFW 防火墙配置端口转发实现 Hysteria 2 端口跳跃](https://note.okhk.net/how-to-configure-ufw-port-forwarding-for-hysteria2-port-hopping) (2024-10-31) 文章记录了 Hysteria 2 协议的简单配置,为了解决国内运营商对 UDP 连接的限制,文章介绍了端口跳跃的配置方法,涵盖了系统端口转发的开启、UFW 转发规则的配置和防火墙规则的设置。此外,还提供了故障排查建议和相关参考资源。 - [Spring Boot 项目 Dockerfile 调整优化备忘 —— Could not find or load main class PropertiesLauncher](https://note.okhk.net/spring-boot-3.2-dockerfile-change) (2024-10-10) 文章说明了 Spring Boot 3.2 版本将 PropertiesLauncher 和 JarLauncher 类移至org.springframework.boot.loader.launch 包。这影响了使用解压 fat JAR 方式构建 Docker 镜像的 Dockerfile,需更新 ENTRYPOINT 命令中的类路径。java -jar 启动方式不受影响。建议利用 Spring Boot 分层 JAR 特性和 Docker 多阶段构建优化镜像,并记得关注 Release Notes 以便跟进相应变更。 - [服务器容器化部署 Next.js 应用的 Dockerfile 示例](https://note.okhk.net/self-host-nextjs-app-in-docker-container) (2024-10-05) 文章讨论了如何将 Next.js 应用容器化部署,文章说明了通过配置 next.config.js 中的 output: "standalone",可以在构建时生成一个仅包含生产所需文件的文件夹,从而简化 Docker 镜像的大小。提供了一个示例 Dockerfile,详细描述了如何构建和运行 Next.js 应用的 Docker 镜像,并介绍了使用 Docker Buildx 构建多平台镜像的步骤。最后,文章提到除了使用 Docker 进行容器化,还可以考虑开源替代方案,如 Coolify 和 Dokploy,以便更灵活地部署 Next.js 应用。 - [[AI 翻译] How I write HTTP services in Go after 13 years ](https://note.okhk.net/chinese-translation-how-i-write-http-services-in-go-after-13-years) (2024-10-01) 文章是一篇翻译,主要介绍了原作者在多年 Golang 开发的经验,主要以 HTTP 标准库来讲解服务的实践经验,文中提到了更推荐阅读原文:https://grafana.com/blog/2024/02/09/how-i-write-http-services-in-go-after-13-years/ - [PVE 上 Debian 12 虚拟机部署 Kubernetes 1.31 简要记录](https://note.okhk.net/pve-debian-12-vm-deploy-kubernetes-1-31-brief-record) (2024-09-23) 文章记录了在 PVE 虚拟机上部署 Kubernetes 1.31 集群的操作过程,包括环境准备,安装并配置 containerd 作为容器运行时,使用 kubeadm 初始化 Kubernetes 集群,并部署 Cilium 。最后,文章验证了集群功能并展示了如何删除集群。 - [Git 多账户配置及按项目路径使用不同 Git 配置](https://note.okhk.net/multiple-git-identities-config) (2024-09-04) 文章介绍了在 macOS 上配置多个 Git 账户的方法,主要包括生成 SSH 密钥、将公钥添加到 Git 服务端、配置 SSH Agent 以及在 .gitconfig 文件中使用条件包含(Conditional Includes)来按项目路径使用不同的 Git 配置。通过这些步骤,用户可以在同一台电脑上方便地管理多个 Git 账户。 - [OpenWrt 无线中继上级路由时配置 IPv6 地址](https://note.okhk.net/openwrt-wifi-client-relay-mode-config-ipv6-addr) (2024-08-26) 文章梳理了在 OpenWrt 路由器配置无线中继时如何设置 IPv6 地址,并详细介绍了如何通过添加 WWAN6 接口和配置 LAN 接口,实现 IPv6 地址的自动分配和管理,同时解释了 SLAAC 和 DHCPv6 两种地址配置方法的应用和区别。 - [小米 AX3000T 路由器使用 hanwckf 版本的 ImmortalWrt 和 U-Boot](https://note.okhk.net/xiaomi-ax3000t-router-with-hanwckf-immortalwrt) (2024-08-25) 文章介绍了如何为小米 AX3000T 路由器使用 hanwckf 版本的 ImmortalWrt 和 U-Boot 固件进行刷入。此外可以通过 GitHub Action 编译固件为特定设备定制固件。 - [小米 AX3000T 路由器刷入使用官方原版 OpenWrt / ImmortalWrt 固件记录](https://note.okhk.net/xiaomi-ax3000t-router-install-openwrt-immortalwrt) (2024-08-18) 文章介绍了如何将小米 AX3000T 路由器刷入官方原版 OpenWrt 或 ImmortalWrt 固件,包括降级系统、获取 stok 值、开启 SSH、备份原始分区、刷入 initramfs system 以及最终升级固件的全过程。 - [基于 BroadcastChannel 项目将 Telegram Channel 转为微博客网站](https://note.okhk.net/turn-telegram-channel-into-a-micro-blog-website) (2024-08-04) 文章介绍了如何将 Telegram 频道转为网站,以微博客形式展示频道内容。利用 GitHub 项目 BroadcastChannel 实现。该项目基于 Telegram 公开 API ,具有 SEO 友好、浏览器端无 JS 、提供 RSS 等特点。部署步骤清晰,推荐使用 Cloudflare 等平台。文中还列举了基于该项目的其他网站示例。 - [Chrome 版本内置 Gemini Nano LLM 配置使用](https://note.okhk.net/config-gemini-nano-llm-model-on-chrome-127-or-higher) (2024-07-24) Chrome 127 版本内置了名为 Gemini Nano 的 AI 大语言模型,用户需通过启用特定的 Chrome flags、下载模型并测试其功能。配置步骤包括在地址栏输入特定链接以启用 Prompt API 和优化指南,下载模型后可通过控制台测试其功能。若遇到问题,建议检查语言设置或参考 Google 文档以获取详细指导。此外,推荐使用 Elmo 和 Chrome Built-In AI Gemini Nano 测试页面作为扩展工具。 - [一加 7Pro 更新 magisk 27 后重启卡 fastboot 模式](https://note.okhk.net/oneplus-7pro-bootloop-after-flash-magisk-update) (2024-07-14) 一加 7 Pro 在更新 Magisk 后,手机重启卡在 fastboot 模式,无法正常启动。由于未刷入 TWRP Recovery,尝试进入安全模式失败,最终通过切换系统 A/B 槽位的方法成功解决了问题。 - [个人小规模使用的免费 AI LLM API](https://note.okhk.net/some-free-llm-api-collection-for-personal-use) (2024-06-26) 文章提供了一系列适合个人小规模使用的免费大型语言模型(LLM)API 列表,包括海外和大陆地区的服务提供商信息,以及相关的开源项目和 API 网关项目。 - [无法直连 DockerHub 下载镜像的代理方案整理](https://note.okhk.net/docker-hub-registry-mirror-proxy) (2024-06-07) 由于 Docker Hub 的镜像服务受到限制,用户可以通过配置 Docker 镜像仓库加速来解决下载问题。主要步骤包括修改/etc/docker/daemon.json中的registry-mirrors地址,使用提供的多个镜像加速地址,并提供了相关的命令示例。还提到使用 Cloudflare 进行自建镜像加速的注意事项,以及一些开源项目的链接供参考。此外,文中还介绍了 Docker 镜像的离线导出与导入方法。 - [在 Docker 中运行 acme.sh 为 Nginx 容器部署免费 SSL 证书](https://note.okhk.net/run-acme.sh-to-deploy-free-ssl-cert-for-nginx-container-in-docker) (2024-05-28) 本文介绍了如何在 Docker 环境中使用 acme.sh 脚本为 Nginx 容器自动化部署免费的 SSL 证书,并且详细说明了配置记录、安装 acme.sh、签发证书以及部署证书的步骤。 - [Warp 终端中配置使用 trzsz 实现 sz/rz Zmodem 协议命令传输文件](https://note.okhk.net/use-sz-rz-commands-in-mac-warp-terminal-by-trzsz) (2024-05-06) 本文介绍了如何在Warp终端中配置使用trzsz工具实现Zmodem协议的文件传输。Zmodem协议通过sz和rz命令支持快速、可靠的文件发送和接收,增强了文件传输的效率。作者还推荐了trzsz-ssh工具,作为openssh的替代品,进一步简化了通过SSH进行文件传输的流程。 - [免费 us.kg 域名注册过程记录,可接入 Cloudflare](https://note.okhk.net/register-us-kg-free-domain) (2024-04-25) 本文记录了免费 us.kg 域名的注册过程,强调了其与 Cloudflare 的接入功能。作者分享了成功注册的步骤,包括填写注册信息、邮箱验证以及 KYC 验证等。此外,文章还指出该域名需每年续期,并建议使用 Cloudflare 进行后续管理。 - [自建书签管理应用 Hoarder App](https://note.okhk.net/self-host-hoarder-app-for-bookmark-manage) (2024-04-05) Hoarder App 是一款自建书签管理应用,支持快速保存链接、笔记和图片,并利用AI自动打标签。其特点包括全文搜索、分类管理、批量操作和深色模式,用户可通过 Docker 自部署以控制隐私。应用正在快速迭代开发中,尚未稳定。 - [搭建 Vaultwarden 服务端使用 Bitwarden 开源密码管理器](https://note.okhk.net/self-host-bitwarden-compatible-server-vaultwarden-to-manage-password) (2024-03-31) 本文介绍了如何搭建 Vaultwarden 服务端,该服务端能够兼容使用开源密码管理器 Bitwarden。Vaultwarden 是一款轻量级的非官方 Bitwarden 服务器实现,适合个人或小型组织自托管使用,与官方 Bitwarden 客户端兼容,提供安全稳定的密码管理方案。文章还提供了通过 Docker Compose 快速启动 Vaultwarden 的方法,确保用户可以高效、安全地管理密码。 - [Docker 部署微信公众号RSS生成工具 WeWe RSS](https://note.okhk.net/self-host-wechat-mp-article-rss-generate-tool) (2024-03-01) WeWe RSS 是一个自部署的微信公众号 RSS 生成工具,旨在为不喜欢在微信 App 内阅读公众号文章的用户提供更优雅的订阅方式。其特点包括: - 支持微信公众号订阅(基于微信读书) - 后台自动更新 - 支持生成 .atom、.rss、.json 格式的 RSS - 全文内容输出 - 所有订阅源可以导出 OPML - 可一键部署到 Zeabur、Railway、Hugging Face 等平台 - 支持 Docker 和本地私有化部署 用户可以通过 Docker 部署,使用 SQLite 作为数据库,配置后即可访问和管理订阅。 - [搭建开源的个人订阅服务追踪工具 Wallos](https://note.okhk.net/self-host-wallos-to-track-your-subscriptions) (2024-02-15) 随着各种订阅制付费服务的普及,管理多个订阅变得愈加重要。Wallos 是一款开源的自托管工具,它可以简化订阅管理,保护用户隐私,并支持多种货币的使用。用户可以通过 Wallos 记录和追踪到期的订阅,确保不会错过续费日期。 - [通过 Cloudflare Workers 实现 301 重定向](https://note.okhk.net/config-301-redirect-by-cloudflare-workers) (2024-01-27) 通过使用 Cloudflare Workers 实现 301 重定向,将域名 https://home.okhk.net 重定向到 https://i.okhk.net。创建 Workers 并编写代码以处理请求,设置重定向目标和状态码,最后配置自定义域名以完成重定向。 - [利用 GitHub Action 自定义构建 Padavan 路由固件](https://note.okhk.net/build-padavan-firmware-for-rm2100) (2024-01-12) 本文介绍了如何利用 GitHub Action 自定义构建红米 AC2100 路由器的 Padavan 固件。首先,在 GitHub 上新建一个仓库,并下载 Padavan 固件的源代码。然后,根据自己的需求修改配置文件和自定义脚本。接着,在 GitHub Action 的配置文件中设置编译环境和编译参数,并将编译生成的固件上传到 GitHub Release。最后,使用自定义脚本对固件进行进一步的配置和修改。通过这种方法,可以快速自定义构建适合自己需求的 Padavan 固件。 - [自部署开源网站评论系统 Twikoo](https://note.okhk.net/deploy-twikoo-comment-system) (2023-12-31) Twikoo 是一个简洁、安全、免费的静态网站评论系统,可以轻松部署在自己的网站上。使用 Docker 进行部署非常方便,只需要简单的配置即可。在 memos 中使用 Twikoo 评论系统也很简单,只需要添加自定义脚本和样式即可。最终效果清晰明了,让网站评论更加方便和美观。 - [PVE LXC 容器中安装 CasaOS 及硬盘直通](https://note.okhk.net/casaos-in-lxc-on-pve) (2023-12-30) 在 PVE 中安装体验开源私有云软件 CasaOS。通过创建 LXC 容器并安装 CasaOS,可以在 PVE 上体验这个简单易用的开源私有云系统。安装过程中可能会遇到报错,可以安装旧版本后通过 Web 更新到最新版本。安装完成后,可以进入 CasaOS Web 页面进行配置和使用。另外,还可以通过修改 LXC 容器配置实现硬盘直通,将宿主机的硬盘挂载到容器中使用。 - [PVE LXC 容器运行 OpenWRT 软路由](https://note.okhk.net/openwrt-in-lxc-on-pve) (2023-12-29) 在 PVE 的 LXC 容器中安装 OpenWRT 作为软路由,可以利用 PVE 的虚拟化技术运行 x86 架构的软路由系统。选择 LXC 容器是因为它具有更高的性能和效率,并且资源开销较少。安装 OpenWRT 的镜像可以选择第三方编译的镜像,也可以自行选择官方镜像。创建容器时需要指定一些参数,如容器 ID、根文件系统模板、主机名等。创建完成后,可以通过 Web 页面配置 OpenWRT,包括网络设置、插件安装等。通过将设备的 Wi-Fi 设置指向 OpenWRT 的 IP 地址,可以实现按需使用,方便维护和故障排除。另外,如果 PVE 运行在老旧电脑上,可以设置功耗墙来限制功耗。 - [使用 Terraform 来管理创建 PVE 中的虚拟机](https://note.okhk.net/use-terraform-on-pve) (2023-12-27) 使用 Terraform 在 PVE 中管理虚拟机,实现基础设施即代码(IaaS)。通过配置 Terraform 的 provider,使用 PVE 的 REST API 进行权限校验。可以通过用户名密码或 API Token 来鉴权。配置虚拟机资源的核心参数,包括基础信息、物理节点、cloud-init 模板、CPU、内存、磁盘、网络等。执行 terraform apply 即可创建虚拟机。如果需要销毁虚拟机,执行 terraform destroy 即可。 - [安装 PVE 驱动的个人虚拟化实验环境](https://note.okhk.net/my-homelab-powered-by-pve-install) (2023-12-26) PVE 是一款个人虚拟化环境软件,可以在小型主机或老旧笔记本上安装,提供虚拟化环境来构建自己的 HomeLab。安装 PVE 的步骤包括准备引导工具、下载安装 PVE 镜像、配置软件源、创建模板等。通过 PVE,可以方便地管理和部署虚拟机,进行基础设施即代码的实践。 - [使用 Google Gemini 免费 API](https://note.okhk.net/use-google-gemini-free-api) (2023-12-15) 谷歌在 12 月 14 日起免费开放 Gemini Pro 和 Gemini Pro Vision 的 API。Gemini Pro 的个人使用体验类似于 ChatGPT-3.5,但是它的 API 是免费的。通过 Gemini SDK,我们可以编码调用 API 来获取图片之间的区别。具体的调用方式和参数请参考谷歌 Gemini 官方文档。同时,还可以通过其他开源项目将 Telegram Bot 接入 Gemini API,并在 Vercel 等平台快速部署项目。 - [VPS 上 Docker 部署哪吒监控](https://note.okhk.net/deploy-nezha-docker) (2023-11-20) 在 VPS 上使用 Docker 部署哪吒监控,需要进行预备配置,包括创建 GitHub 应用、私有仓库和个人访问凭证,还需要获取 Argo 隧道信息。然后使用 compose.yaml 文件来部署监控服务端,配置相关环境变量,并选择是否使用 gRPCwebProxy。客户端接入可以通过 gRPC 传输,无需额外配置。最后,在监控后台管理添加服务器,并通过一键安装命令将客户端与监控服务端连接。 - [快速上手新项目不完全指北](https://note.okhk.net/how-to-quickly-get-started-on-new-project) (2023-11-16) 如何快速上手一个新项目的一些步骤: 1. 配置本地环境:根据项目要求安装必要的开发工具、数据库等。 2. 启动项目:按照项目文档的说明启动项目,体验并熟悉项目。 3. 理解项目设计:了解项目的业务架构设计和技术架构设计。 4. 数据库设计:了解项目的数据库结构和数据关系。 5. 接口设计:理解项目中各个模块的接口定义和接口文档编写方式。 6. 核心功能实现:学习项目的核心业务逻辑,如用户管理、登录认证、异常处理等。 7. 开发流程:了解代码管理工具(如 Git)、项目文件结构和开发规范。 8. 模块开发:根据需求分析进行模块开发,并进行测试和验证。 9. 图像示例:可使用相关图片辅助理解,如数据库表结构图、接口文档截图、代码片段截图等。 - [使用 Cloudflare Zero Trust 保护网站后台登录](https://note.okhk.net/cloudflare-zero-trust-protect-web-admin-login) (2023-11-05) 使用 Cloudflare Zero Trust 保护网站后台登录,可以有效防止恶意探测。注册并开通 Cloudflare 账号,添加合适的鉴权方式(如 GitHub 认证),配置访问组和访问规则,最终实现只有通过认证的用户才能访问后台登录页面。 - [Git LFS Data 使用配置](https://note.okhk.net/git-lfs-data-config) (2023-10-22) 使用 Git Large File Storage (LFS) 处理 GitHub 仓库中的大文件,可以将大文件托管在 LFS 中,避免超过 GitHub 文件大小限制。GitHub 免费用户有一定的存储空间和下载带宽,超出部分需要付费。在 GitHub 的设置中可以查看相关信息。 - [部署并配置一个自己的 Telegram RSS Bot](https://note.okhk.net/host-telegram-rss-bot) (2023-10-15) 关于搭建属于自己的 Telegram RSS Bot 的简单步骤记录,以及相关的配置说明 - [使用 yarr 来订阅浏览 RSS 信息流](https://note.okhk.net/host-yet-another-rss-reader) (2023-10-05) 使用 yarr 来订阅浏览 RSS 信息流,它是一种自托管的 RSS 阅读工具。你可以通过订阅不同的 RSS 链接,获取各种榜单、分享和活动信息。使用 yarr,你可以方便地管理和浏览你感兴趣的 RSS 内容。 - [Prometheus + Grafana 展示服务器运行状态](https://note.okhk.net/docker-prometheus-grafana-monitor) (2023-09-28) Prometheus 和 Grafana 是一对开源工具,用于监控和可视化服务器运行状态。我们可以使用 Docker 来快速部署它们。首先,在 docker-compose.yml 文件中配置 Prometheus 和 Grafana 的容器。然后,我们需要安装 Node-exporter 来采集服务器的运行指标。最后,我们通过 Grafana 的 Web 界面配置数据源和仪表盘,实现服务器状态的可视化。 - [为 Git Commit 添加 GPG 签名](https://note.okhk.net/git-commit-with-gpg) (2023-09-19) 本文介绍了如何使用 GPG 来为 Git Commit 添加签名。首先需要安装 GPG,并生成密钥对。然后将公钥导入到 GitHub 上,配置本机的 Git 使用该密钥对进行签名。配置完成后,每次提交 commit 时,都会使用相应的私钥进行签名,GitHub 会验证签名的有效性,并展示一个可信标识。 - [使用 Cloudflare Tunnel 暴露内部服务](https://note.okhk.net/cloudflare-tunnel-sample) (2023-09-13) Cloudflare Tunnel 是一种免费的内网穿透工具,可以将内部服务暴露到公网上。它通过创建加密通道,在无需公网 IP 和开放端口的情况下,让服务可以公网访问。你可以使用 cloudflared 命令行工具来管理和配置 tunnel。安装并登录授权后,可以通过命令快速创建 tunnel 连接。然后,你需要添加域名 CNAME 记录,并创建 config 配置文件来指定服务映射。验证和测试配置后,你可以运行 tunnel 并将其配置为系统服务。最后,通过一系列命令,你可以管理和控制 tunnel 的运行。 - [Vercel + Supabase 搭建 umami 服务](https://note.okhk.net/free-deploy-umami) (2023-09-01) 使用 Vercel 和 Supabase 可以免费搭建开源的轻量统计分析服务 umami。Supabase 提供免费数据存储服务,我们创建数据库并获取数据库链接 URI。在 Vercel 上部署 umami 项目,设置环境变量,并等待部署完成。最后添加统计代码到需要统计的网页中即可。 - [Debian 升级 xanmod 内核,开启 BBR v3 算法](https://note.okhk.net/enable-bbrv3-by-xanmod-kernel) (2023-08-28) 本文介绍了在 Debian 系统上升级安装 xanmod 内核并启用 BBR v3 流量控制算法的方法。BBR v3 是 Google 开发的一种拥塞控制算法,适用于丢包率较高的网络环境,性能优于传统算法。通过安装 xanmod 内核,我们可以启用 BBR v3 算法。文章中提供了具体的安装步骤和命令,包括检查 CPU 架构信息、添加 xanmod 内核仓库、安装最新稳定版内核、重启服务器等。最后还介绍了如何验证 BBR 是否开启以及删除不需要的旧内核。 - [Hysteria 2 协议的简单配置记录](https://note.okhk.net/hysteria2-protocol-simple-config) (2023-08-19) 这是一份 Hysteria 2 的简单配置记录,其中包含了协议服务端和 sing-box 客户端的配置信息。配置包括了日志记录、DNS 服务器、路由规则、入站和出站设置等。其中,DNS 服务器配置了三个不同的标签,分别用于代理、直连和屏蔽,根据地理位置进行选择。路由规则根据地理位置和 IP 地址进行选择,分别设置了代理、直连和屏蔽。入站配置了一个 tun 类型的接口和一个 mixed 类型的接口,用于监听和处理网络流量。出站配置了四种类型的出站方式,分别是 hysteria2、direct、block 和 dns。最后,还包含了 ntp 和 experimental 配置信息。 - [Cloudflare Workers 部署 vless](https://note.okhk.net/deploy-vless-server-by-cloudflare-workers) (2023-08-10) 本文介绍了如何利用 Cloudflare Workers 和 edge-tunnel 项目部署 Vless 服务器。首先需要在 Cloudflare 上创建一个 Worker,并修改其中的 userID 和 proxyIP。然后绑定自己的域名到 Workers,并确保域名不被墙。最后可以通过访问绑定的域名后加上 UUID 的方式访问节点。同时提供了当前 ClashX Pro 配置文件的示例。最后还附上了一些参考信息和扩展信息。 - [Debian 11 系统升级到 Debian 12](https://note.okhk.net/upgrade-to-debian-12) (2023-08-04) 将服务器系统从 Debian 11 升级到 Debian 12 的步骤如下: 1. 确认当前系统版本并更新系统软件包到最新。 2. 修改软件源配置文件 /etc/apt/source.list,将 bullseye 替换为 bookworm,并在第一行添加 non-free-firmware。 3. 执行系统更新命令,更新软件包。 4. 在升级过程中,根据需要进行各种配置文件的更新选择。 5. 重新启动服务器后,确认系统已升级到 Debian 12。 请注意,在升级过程中可能会出现各种询问选择,需要根据情况进行确认。完成升级后,可以使用 cat /etc/debian_version、cat /etc/os-release 和 uname -a 命令来确认系统版本。 - [配置保持 SSH 会话连接](https://note.okhk.net/keep-ssh-session-alive) (2023-07-25) SSH 会话中断与 TCP 超时有关。SSH 会话的中断可以通过配置 TCP 超时参数来延长超时时间。客户端的配置文件是~/.ssh/config,可以通过修改 ServerAliveInterval 和 ServerAliveCountMax 来保持 SSH 会话连接。服务端的配置文件是 /etc/ssh/sshd_config,可以通过修改 ClientAliveInterval 和 ClientAliveCountMax 来保持 SSH 会话连接。具体的超时时长和次数可以根据实际情况进行调整。配置完成后,需要重启 SSH 进程使配置生效。 - [Nobelium 配置记录](https://note.okhk.net/nobelium-config) (2023-07-10) Nobelium 是一个基于 Notion 的静态博客生成器,可以轻松将 Notion 页面转换为个人博客。使用 Nobelium 需要进行一些配置,包括填写个人信息、设置主题样式、选择评论插件等。在部署完成后,可以通过 Vercel 自动生成的域名访问博客。除此之外,还可以根据需求修改顶部导航栏和底部页脚的链接信息,以及调整代码块的主题样式和字体。 - [使用共享的 ChatGPT API](https://note.okhk.net/share-chatgpt-api) (2023-06-24) pandora 项目提供共享的 ChatGPT API,解决了内地使用 ChatGPT 的问题。作者提供了免费的共享站点,其中包括数千个账号和 ChatGPT Plus 账号。最近,作者还添加了模拟 API 支持,并分享了两个免费的 Pool Token。可以在各种应用中进行配置使用,例如沉浸式翻译。这种免费共享精神在当下难得,值得赞赏。 - [我的 MacBook 配置记录](https://note.okhk.net/macbook-config-record) (2023-06-03) 记录了 MacBook 的一些环境配置。包括使用 ClashX Pro 进行全局按规则分流,安装 Oh My Zsh 和 powerlevel10k 主题,以及使用 Homebrew 安装各种应用程序和工具。还包括配置 Rime 输入法和一些小技巧,如修改主机名、减少 Dock 栏动画响应时间和修改启动台行列数等。 - [IT-tools 开发常用工具集](https://note.okhk.net/deploy-your-it-tools) (2023-05-28) IT Tools 是一个开源项目,提供给开发者使用的便捷在线工具集合。这个工具集合包含了多种实用工具,为开发者和 IT 从业人员提供便利。IT Tools 提供了优秀的用户体验,并且是免费开放源代码的。 - [一次家里网络故障的处理记录](https://note.okhk.net/family-network-issue) (2023-05-20) 家里的路由器突然断网,OpenWRT 网页无法保存配置。经过排查,发现 DNS 配置有问题、负载均衡策略设置错误、广告过滤服务运行模式有误。修改后,手机网络恢复正常。但配置保存问题仍存在,通过 SSH 登录并修复磁盘问题后解决。 - [Notion 整理 RSS 订阅](https://note.okhk.net/notion-track-rss) (2023-05-12) 一个开源的自部署项目 Kodoku,可以帮助追踪 RSS 订阅。它使用 Notion 作为后端,用作者提供的模板创建了一个 Notion Database,用来存储我的 RSS 订阅信息。然后需要创建 Notion Integration 来读取这个数据库。部署完成后,可以方便地查看和管理我的 RSS 订阅。 - [Tailscale 配置 KDE Connect](https://note.okhk.net/tailscale-quick-start) (2023-04-21) Tailscale 是一款基于 WireGuard 的网络安全和隐私保护软件,能帮助我们将不同设备连接到同一个局域网内。使用 Tailscale 可以方便地配置连接 KDE Connect,使得不同设备在同一个网络下无缝连接,并实现剪贴板和通知的同步。另外,Tailscale 还提供了子网路由功能,可以通过已安装 Tailscale 的设备作为网关,将流量中继转发到目标 IP。配置过程简单,只需按照官网指引进行安装和设置即可。 - [Cloudflare WARP 解锁 NewBing / ChatGPT 等服务访问](https://note.okhk.net/cloudflare-wrap-unlock-new-bing) (2023-03-26) 本文介绍了如何借助 Cloudflare WARP 搭配 V2ray 解锁 New Bing 等服务的访问。通过使用 warp-go 脚本将 WARP 模式设置为非全局模式,并配置 V2Ray 的 outbounds 和 routing 部分,将特定网站的流量发送到 WARP 接口,实现解锁访问。配置完成后,测试并重载配置启动服务即可访问 New Bing 等服务。 - [TVBox 应用及接口](https://note.okhk.net/tvbox-app-config) (2023-02-01) 整理了有关 TVBox 的应用和接口。这个提供了 TVBox 项目仓库源、直播源等。可以在 GitHub 上找到详细信息。 - [使用 Helm 管理 K8s 集群中的应用](https://note.okhk.net/helm-k8s) (2023-01-03) Helm 是一个 Kubernetes 的包管理工具,通过使用 Charts 描述 Kubernetes 资源的集合来管理和部署应用程序。Helm 3 相对于 Helm 2 提供了更好的安全性、稳定性和易用性。一个典型的 Chart 包含了部署一个应用所需的所有配置、依赖关系和相关资源。我们可以通过修改 Chart 中的配置文件和模板文件来自定义部署应用程序的方式。使用 Helm,我们可以轻松地管理和部署复杂的应用程序,并减少人工操作的错误和遗漏。我们可以通过编写脚本,从现有的 Kubernetes Deployment 配置中提取相应配置,并将其转换为 Helm Values 文件,从而实现自动化管理和部署。 - [JAVA 上传文件到对象存储出现OOM](https://note.okhk.net/s3-upload-out-of-memory-error) (2022-11-03) 本文讨论了在Java应用程序中将文件上传到对象存储时出现的内存不足错误。当使用流式上传到S3时,如果直接调用S3客户端的putObject方法,会出现内存不足的风险,因为数据会全部缓存在内存中。解决方法是设置好对象的内容大小,即设置Content Length,以避免内存耗尽的错误。 - [Nginx buffer 配置问题记录](https://note.okhk.net/nginx-buffer-config) (2022-09-20) 最近在项目中遇到了一个问题:获取菜单树形结构数据的接口在初始时正常,过一段时间后就会出错。经过排查发现,这个问题和 Nginx 的 buffer 配置有关。Nginx 的 buffer 机制默认启用,它会将后端响应缓存在内存或磁盘上,然后再慢慢推送给客户端。但是如果后端响应较慢或数据量较大,同时缓冲区设置不足以容纳完整的响应数据,就会导致数据被截断。解决方法是调整 Nginx 的 buffer 配置,增加缓冲区的大小和数量,以及临时文件的写入大小和大小限制。此外,还可以调整超时设置。关闭 buffer 虽然可以解决问题,但不推荐,因为会影响到 Nginx 到后端的连接复用。 - [Git 常用命令整理](https://note.okhk.net/git-commands) (2022-08-25) Git 是一款代码版本控制工具,常用于团队协作开发。本文主要是整理的一些常见的 Git 命令,这些命令覆盖了 Git 常用的操作场景,可以帮助开发者更好地使用 Git 进行版本控制和协作开发。 - [Kubernetes 好用的管理软件/命令行工具](https://note.okhk.net/kubernetes-cli-gui-tools) (2022-06-23) Kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源系统。它提供了许多命令行工具和图形用户界面,用于管理和监控Kubernetes集群。其中一些常用的工具包括OpenLens(用于集群概览和资源监控)、K9s(用于实时监控和资源编辑)、kubecm(用于KubeConfig管理)、krew(用于插件管理)等。 这些工具提供了集群状态、资源监控、配置管理、事件和日志显示、可扩展性、集群拓扑、资源编辑、实时监控、快速导航、详细信息查看、KubeConfig管理、插件管理、节点调试、Pod监控、资源关系展示、状态显示、资源分配查看、镜像管理、命令执行、服务访问、Secret管理、网络流量捕获、Ingress管理、YAML文件格式化、日志跟踪等功能。 因此,Kubernetes集群的管理工具和命令行工具提供了丰富的功能,可帮助用户更轻松地管理和监控其Kubernetes环境。 - [K8s 中微服务优雅滚动更新](https://note.okhk.net/spring-cloud-microservice-graceful-upgrade-in-k8s) (2022-05-15) 本文介绍了在 Kubernetes 中实现 Spring Cloud 微服务的优雅滚动更新。通过配置 Eureka 和 Ribbon 的参数来缩短服务注册信息的刷新间隔,并让网关在请求异常时重试一次。另外,通过设置 Pod 的 terminationGracePeriod 和 PreStop 钩子来主动下线旧版本的微服务,保证服务的平滑终止。最后,建议集成 Spring Cloud Kubernetes 来代替 Eureka,进一步提升服务升级的平滑度,实现无感知更新。 - [Spring Boot 项目接口 XSS 漏洞处理](https://note.okhk.net/spring-boot-api-xss-fix) (2022-04-07) 本文介绍了在 Spring Boot 项目中避免 XSS 漏洞的几种方式。首先,可以使用 Spring 框架提供的 HtmlUtils 类对特殊字符进行转义处理。其次,可以使用 Jsoup 库对 HTML 标签进行过滤,保留需要的标签并删除不必要的标签。另外,还可以通过装饰者模式结合过滤器或拦截器对请求参数进行过滤转义。最后,对于 JSON 形式传参的场景,可以定义一个全局的 JSON 反序列化器来进行处理。总之,通过这些方式可以有效地避免 Spring Boot 项目中的 XSS 漏洞。 - [My Linux Laptop Apps](https://note.okhk.net/my-linux-desktop-apps) (2022-03-01) 这是一个关于我在 Linux 环境下使用的应用程序清单的简要记录。清单中包括了各种应用程序和插件,但不包括浏览器和集成开发环境(IDE)的扩展。 这些应用程序可以帮助我在 Linux 环境下进行开发、办公和日常使用。 - [K8s Pod中应用如何获取客户端 IP](https://note.okhk.net/get-ip-info-in-k8s-pod) (2021-09-04) 在 Kubernetes (K8s) 的 Pod 中运行的应用,想要获取客户端的真实 IP 地址信息,可以通过检查 "X-Original-Forwarded-For" 请求头来获取。在 K8s 集群中,请求经过 Ingress Controller 处理后,会将真实的客户端 IP 地址添加到该请求头中。因此,应用需要通过提取该请求头来获取客户端 IP 信息。需要注意的是,在 Ingress 资源中配置 "nginx.ingress.kubernetes.io/proxy-real-ip-cidr" 注解来启用对该请求头的支持。通过这种方式,应用可以准确获取到客户端的 IP 地址信息。 - [为什么 @Autowired 注解在 IDEA 中会有警告提示](https://note.okhk.net/autowired-annotation-in-idea) (2021-07-28) 在 IDEA 中,使用 @Autowired 注解会出现警告提示。这是由于最佳实践和设计原则导致的。字段注入方式虽然简洁方便,但存在一些问题,会增加应用程序与框架之间的紧耦合。为了消除警告,可以使用 @Resource 注解替换 @Autowired 注解。三种主要的依赖注入方式是:字段注入、构造函数注入和 Setter 方法注入。推荐使用构造函数注入,并可结合 lombok 来简化代码。 - [Docker 容器中启用 IPv6 网络](https://note.okhk.net/docker-enable-ipv6) (2021-06-24) 为 Docker 容器启用 IPv6 支持,需要在 Docker 守护进程中进行配置。在 /etc/docker/daemon.json 文件中添加以下内容:experimental 设置为 true,ipv6 设置为 true,ip6tables 设置为 true,fixed-cidr-v6 设置为一个子网。然后重启 Docker 服务。可以使用命令或 Docker Compose 创建支持 IPv6 的网络。在使用 IPv6 时需要注意修改 /etc/gai.conf 以使其优先级高于 IPv4。具体配置步骤可以参考上述文中的详细说明。 - [eu.org 域名注册记录](https://note.okhk.net/eu-org-domain-register) (2021-05-28) eu.org 是一类免费域名,个人或非营利组织可以注册。注册流程包括:注册账号、申请域名、填写地址和联系信息、添加域名到 CloudFlare。在大陆使用时需要配合 HTTPS,并且在某些运营商下无法解析。 - [OAuth 2.0 相关整理记录](https://note.okhk.net/oauth-2.0-practice) (2021-04-22) OAuth 2.0 是一种开放标准的授权协议,用于应用程序访问其他网站上用户账户的权限管理。它提供了安全性、便利性和灵活性。OAuth 2.0 支持多种授权类型,包括授权码模式、隐式 / 简化模式、密码模式和客户端凭证模式。授权码模式是最常见的,用户会被重定向到授权服务器进行身份验证,并授权应用程序访问其账户。其他类型则不同程度上降低了安全性和交互性。开发过程中需要前端、后端和授权服务器三个模块来实现授权码模式。前端生成授权请求 URL,用户登录后会重定向到授权服务器,并返回授权码给前端。前端将授权码传递给后端,后端使用授权码交换访问令牌。授权服务器验证授权码,并返回访问令牌给后端。后端可以使用访问令牌来访问受保护的资源。这是一个简单的 OAuth 2.0 授权流程。 - [K8s Nginx Ingress 配置 Basic Auth 访问](https://note.okhk.net/nginx-ingress-basic-auth-config) (2021-03-04) 为 K8s Nginx Ingress Controller 配置 HTTP Basic Auth,增强安全。首先使用 htpasswd 或 openssl 命令创建认证文件,然后创建 Secret,并将认证文件作为其值。最后,通过在 Ingress 中设置相应的注解来启用基本认证。成功应用后,访问 Ingress 对应的 URL 将需要输入用户名和密码。扩展:在 Nginx 配置文件中增加 auth_basic 和 auth_basic_user_file 指令以配置 Basic 认证。 - [Drone CI 搭建记录](https://note.okhk.net/drone-ci-cd) (2021-02-01) Drone 是一个轻量级、现代化的持续集成和持续交付平台。通过与 Docker 和 Kubernetes 集成,以及与主流的 Git 平台联动,Drone 可以实现自动化的构建、测试和部署工作流程。在搭建过程中,需要在 Git 平台上创建一个应用,并获取 Client ID 和 Client Secret,然后将这些信息配置到 Drone Server 和 Runner 中。Drone Server 负责接收和处理 CI/CD 任务,而 Drone Runner 负责在 Docker 容器中执行这些任务。在项目中,可以通过配置一个.drone.yml 文件来定义 Drone 的工作流程,包括构建、打包和部署等步骤。最后,通过 Drone Web 界面可以手动触发 Pipeline 或配置自动触发,监控任务的运行情况。通过这种方式,可以实现高效的 CI/CD 流程,提高开发效率。 - [命令行快速登录有OTP二次验证的堡垒机/跳板机](https://note.okhk.net/jump-server-quick-login-by-shell-script) (2021-01-07) 该方法通过 Shell 脚本自动输入 TOTP 验证码,实现快速登录堡垒机。通过修改 SSH Config 文件和编写 Shell 脚本,可以在终端中直接通过命令登录到堡垒机,无需手动输入密码和二次验证码。这样可以大大提高登录的效率。但是需要注意的是,这种方法可能会牺牲一定的安全性,所以建议仅在个人可信环境下使用。 - [Docker 简单使用](https://note.okhk.net/docker-and-docker-compose) (2020-12-01) Docker 是一个容器化的解决方案,可以帮助我们创建和管理统一的运行环境。它使用镜像来构建容器,并且可以轻松地运行、停止和删除容器。我们可以使用 Docker-compose 来定义和管理多个容器应用的部署。安装 Docker 后,我们可以使用一些常用的命令来操作镜像和容器,如查看镜像列表、删除镜像、启动容器、停止容器等。我们还可以修改 Docker 的配置文件以满足特定需求。除了 Docker,还有一些其他工具和应用可以帮助我们更方便地管理容器化应用,如 Lazydocker、Portainer、Watchtower、Composerize 等。 - [搬砖 Shell 脚本整理](https://note.okhk.net/some-shell-scripts-collect) (2020-09-25) 这是一篇关于Shell脚本的整理文章,其中包括了一些实用的Shell脚本和命令组合,以及它们的用法和作用说明。文章内容涵盖了删除备份文件、批量重命名文件、变量替换、去除换行符、统计匹配行数、分析Nginx日志、DDoS攻击防范、解压缩脚本、Git修改历史commit信息、以及一些网络连接和Docker容器日志的清空操作。 - [NFS Server 搭建与配置](https://note.okhk.net/nfs-config-record) (2020-08-19) NFS(Network File System)是一种分布式文件系统协议,可以使计算机在网络中像访问本地文件一样访问远程文件。在Linux系统中,可以通过安装NFS服务端和配置NFS来实现共享存储。安装NFS服务端需要使用特定的命令,如在Debian系发行版中可以使用以下命令安装NFS:sudo apt install nfs-kernel-server。配置NFS需要编辑/etc/exports文件,指定共享路径、允许的主机和共享参数,如读写权限、同步写入等。编辑完成后,使用sudo exportfs -arv命令启动共享文件夹。管理NFS服务可以通过systemctl命令来查看状态、启动和重启NFS服务。连接NFS客户端需要安装NFS客户端并挂载NFS共享目录,最后可以进行测试以确保共享目录的正常使用. - [Linux VPS 配置备忘](https://note.okhk.net/vps-config-setup-record) (2020-07-22) 本文主要是 Linux VPS 配置的备忘。包含了许多命令和配置,如软件包更新、配置主机名、设置时区、新建用户、SSH配置、开启防火墙、BBR算法等。 ## Website - [About ](https://note.okhk.net/about) --- > Copyright © OKHK > Reference: https://llmstxt.org