下级分类
Git工程协作
Git、开发工具与工程协作流程。
专题分组
下级分类
自用 VPS 配置 github action self-hosted runner
这份配置记录聚焦在自用 VPS 上部署 GitHub Actions self-hosted runner,并按“中心安装包 + 项目独立运行目录”的方式管理多个仓库。目录设计把 runner 压缩包统一放在 `/root/github-runners/package/actions-runner.tar.gz`,只需从 GitHub releases 下载一次,后续项目如 `go-react-prod`、`new-api` 都从该位置解压,避免重复下载和混用运行文件。首个项目配置时,需要创建专属目录、解压安装包,并在以 root 用户运行的 VPS 上先设置 `RUNNER_ALLOW_RUNASROOT=1`,再执行 `config.sh` 绑定仓库;如果 GitHub 页面生成的 token 过期,则要重新复制新的 token。运行方式上不建议直接执行 `./run.sh`,而是通过 `./svc.sh install root`、`./svc.sh start` 和 `./svc.sh status` 将 runner 安装为 root 用户下的系统服务,保证后台持续运行。新增仓库时重复建目录、复用压缩包、使用对应仓库 URL 和新 token 配置,再安装并启动服务即可。最后在 GitHub Actions workflow 中指定 `runs-on: self-hosted`,任务就能调度到这台 VPS,适合希望用个人服务器承接构建或部署流程的开发者。
自建 Docker-代理镜像仓库(私有镜像托管)
这篇笔记聚焦 Docker 私有镜像仓库的 hosted/private 托管模式,说明它不是自动代理上游的缓存,而是需要用户或 CI/CD 主动把镜像搬运进去后才能供其他机器拉取。文章用 nginx:latest 迁移到 hub.jacin.me/library/nginx:latest 为例,给出 pull、tag、push 三步流程:先从 Docker Hub 拉取镜像,再改成本地私有仓库命名空间,最后推送到自建仓库。推送时出现 only the available single-platform image was pushed 的提示,是因为官方 nginx:latest 属于多架构镜像,但普通 docker pull 通常只下载当前机器 CPU 架构对应的版本,push 时私有仓库也只能保存本地已有的平台内容。对服务器、开发机和生产环境都统一使用 amd64 等同构场景来说,这通常不影响运行;但如果 amd64 VPS 推送后的镜像被 arm64 的 Mac M1/M2 或树莓派拉取,就可能遇到架构不匹配、exec format error 或找不到匹配架构的问题。文末通过表格区分代理模式和私有仓库模式:前者偏向 Docker Hub 等上游的加速与只读缓存,后者用于存储和分发自己构建的业务镜像,并且必须依赖 push 写入内容。它适合正在搭建内网镜像分发、理解多架构镜像行为,或在代理缓存与私有托管之间做选型的运维和后端开发者阅读。
常规测试功能-test
该页面的正文内容只包含一张通过 Markdown 嵌入的图片,图片地址来自站点 CDN,并标注了 670×500 的显示尺寸。除图片资源本身外,正文没有提供文字说明、操作背景、测试目标、截图内容解读或任何可验证的技术结论,因此无法判断它是在测试图片上传、页面渲染、媒体展示,还是记录某个功能状态。现有信息只能确认页面具备展示单张图片的用途,不能支持读者提炼出教程步骤、配置方法、问题原因或观点判断。对于搜索、RSS 或文章卡片读者来说,这类内容的阅读价值主要停留在“查看图片是否能正常呈现”这一层面。若要形成更明确的技术导读,需要补充图片所表达的对象、测试场景、预期结果,以及与标题中“测试功能”相关的说明。当前摘要因此应保留边界感,避免把图片内容或作者意图解释成正文没有写出的信息。
开发工具mac 使用最轻量的 Linux 隔离
这篇记录围绕 OrbStack 的 Linux Machine 模式,说明如何在 macOS 上快速创建一个轻量级 Ubuntu 隔离环境,用于临时测试、运行脚本或准备不同架构的 Linux 用户态。正文给出的核心流程很直接:通过 brew 安装 OrbStack,使用 `orb create ubuntu guardian-test` 创建机器,再用 `orb -m guardian-test` 进入;如果需要 x86/amd64 环境,则用 `orb create -a amd64 ubuntu guardian-x86` 单独创建。文章强调 OrbStack 相比 Docker Desktop、Multipass 的优势在于基于 macOS 原生轻量级虚拟化框架,空闲内存、启动速度和 CPU 占用都更适合日常开发中的短时隔离需求。需要特别注意的是,OrbStack 默认开启文件系统共享,Linux 内的 `/mnt/mac`、`/Users`、`/Volumes` 等路径可能直接映射到 Mac 真实文件,未知脚本若删除这些目录下的内容,会影响宿主机数据。为降低风险,作者建议高风险脚本只在 `/root` 或 `/home/linux_user` 等 Linux 内部目录运行,并提供了手动卸载共享挂载点以及写入 `/etc/rc.local` 实现开机自动卸载的命令。最后还补充了分流规则配置中的网络模式注意点:不能使用 fake-ip,需要切换到 host 模式,否则规则里看到的可能都是内网 IP。
"阿里云差点被‘劫持’?你必须懂的 DNS 知识
从 aliyuncs.com 注册状态异常导致部分地区解析失败切入,文章把一次看似“阿里云被劫持”的事件还原为域名过期、未及时续费引发的 DNS 异常,并指出其影响可能波及 OSS、CDN、SLB 以及依赖这些资源的第三方网站和 App。正文随后梳理 A、AAAA、NS、CNAME、MX、TXT 等常见 DNS 记录的职责,尤其强调 NS 决定“谁负责解析”,A 记录决定“解析到哪个 IPv4 地址”,CNAME 常用于别名、CDN 和第三方平台接入。通过简化的域名访问链路,读者可以理解浏览器从查询上级 DNS、定位权威 NS,到获得最终 IP 并建立连接的基本过程。后半部分区分 DNS 污染与注册商层面的域名解析劫持:前者是伪造或干扰 DNS 响应,把用户导向错误地址;后者则可能通过篡改 NS 夺走整个域名的解析控制权。文章列出 dig、whois 等基础排查方式,并给出加密 DNS、可信公共 DNS、VPN、Hosts、DNSSEC、域名锁定、MFA、WHOIS 隐私保护和 NS 监控等防护手段。它适合希望补齐 DNS 基础、理解云服务域名风险、排查解析异常的开发者、运维和安全入门读者。
常规关于-博主ME
这是一个用于了解博主技术背景与关注方向的个人介绍页,核心信息围绕其在 AI 科技公司担任 Python 后端开发工程师的工作经历展开。页面说明作者主要参与后端核心业务与 AI 业务模块的设计开发,技术栈覆盖 Python 异步编程、FastAPI、Django、Django Ninja 等 Web 框架,以及 PostgreSQL、Redis、消息队列、接口设计和数据库建模等后端工程能力。基础设施与交付侧则包括 Docker、CI/CD、Nginx 和 Linux 运维,反映出作者不仅关注业务代码实现,也具备一定的部署、运维和系统架构意识。在 AI 应用方向,作者提到会使用 Copilot、ChatGPT、Cursor 提升开发效率,并持续关注 OpenAI API、Prompt 工程、RAG 架构、工具调用、向量搜索、pgvector 与 GPT embedding 等实践主题。页面还补充了作者对 AIGC、系统设计、云原生和新框架的兴趣,以及通过博客记录和分享技术经验的个人倾向。对于希望判断博客内容取向的读者来说,这一页提供了清晰的作者画像:偏 Python 后端、工程实践和大模型应用落地,并附有邮箱作为直接联系方式。
开发工具apple自定义域名邮箱发送SMTP
这篇记录聚焦 Apple 自定义域名邮箱在第三方邮件客户端中的 SMTP 发信配置,而不是完整讲解 iCloud 邮箱或域名邮箱体系。核心建议是先将域名交由 Cloudflare 管理,因为使用 Cloudflare 的 NS 后,Apple 在配置自定义域名邮箱时可以跳转到 Cloudflare 并自动处理所需的 TXT、Mail 等 DNS 记录,降低手动填写记录带来的错误风险。完成域名侧配置后,用户需要在自己的邮件客户端中填写 Apple 提供的 SMTP 发送信息,用于让自定义域名邮箱能够正常对外发信。认证环节不能直接使用普通 Apple ID 密码,而应按照 Apple 官方说明生成“专用密码”,再把它作为客户端 SMTP 登录凭据。文中给出了 Apple 关于自定义电子邮件域名和专用密码的官方支持页面,方便读者核对配置入口与参数来源。它适合已经拥有域名、使用 Apple 邮箱服务,并且主要卡在客户端发信设置或密码认证方式上的用户参考。
开发工具cursor-vscode配置cpp环境
这份记录聚焦在 macOS 环境下为 Cursor 或 VS Code 搭建一个最小可用的 C++ 编写与运行环境,目标不是完整工程化配置,而是先让本地代码能跑起来并具备基础编辑辅助。操作从命令行安装编译器开始,使用 brew install gcc,并通过 gcc --version、which gcc 检查当前 gcc 命令的实际版本与路径;示例输出显示其指向 Apple clang,路径位于 /usr/bin/gcc,这一点有助于理解 macOS 上 gcc 命令可能并非 GNU GCC。编辑器侧安装 Code Runner 插件后,可以直接点击右上角运行按钮,用包含 cin 输入和 cout 输出的 Hello World 程序验证标准输入输出流程是否正常。随后补充安装 ms-vscode.cpptools,用于提供 C++ 代码跳转等语言辅助能力,使编辑体验不只停留在运行单文件代码。整体适合刚开始在 macOS 上使用 Cursor、VS Code 写 C++ 的读者,用来快速确认编译器、运行插件和跳转插件三件事是否到位;需要更复杂的多文件工程、调试配置或 CMake 集成时,还需要在此基础上继续扩展。
开发工具cloudfare+gmail 配置 smtp 邮箱
这篇笔记记录了一套个人域名邮箱的轻量方案:把域名 DNS 托管到 Cloudflare,用 Cloudflare Email Routing 负责收信转发,再借助 Gmail 的 SMTP 功能以自定义域名地址发信,从而避免自建邮件服务器。配置前需要先在 Namecheap 等注册商处把 NS 切换为 Cloudflare,因为 Cloudflare 只有接管权威 DNS 后,才能统一管理 MX、TXT、CNAME 等记录,并提供后续的 CDN、防护和证书能力。收信部分的关键是启用 Cloudflare 邮件路由,让系统自动写入 route1/route2/route3.mx.cloudflare.net 等 MX 记录,并在后台把 name@域名 转发到 Gmail、QQ 等真实邮箱。文章特别强调邮件 DNS 记录不能混用:iCloud+、Google Workspace 或 Cloudflare 的 MX 入口只能保留一套,SPF、DKIM、DMARC 也不能随意叠加,否则可能导致验证失败、进入垃圾箱或退信。发信部分则在 Google 账户中生成应用专用密码,再到 Gmail 的“账号和导入”里添加其他发件地址,SMTP 服务器填写 smtp.gmail.com、端口 587、用户名为 Gmail 地址,并通过确认邮件完成验证。它还解释了一个容易混淆的点:MX 只决定收信入口,所以 dig MX 仍会看到 Cloudflare;真正发信走的是 Gmail SMTP,Cloudflare 不参与发信链路。适合已有个人域名、希望拥有多个自定义邮箱别名,并希望用免费或低维护方式完成收发配置的用户参考。
开发工具picgo配置
这份笔记围绕 PicGo + GitHub 搭建免费图床展开,目标是把 GitHub 公开仓库作为图片存储位置,并由 PicGo 自动完成上传、生成链接和复制到剪贴板。内容从创建 image-hosting 之类的公开仓库开始,记录了初始化 README、生成 classic Personal Access Token、仅勾选 repo 权限、保存 token 等准备步骤,并补充了 macOS 安装 PicGo 时遇到“已损坏”提示可用 xattr 或 spctl 命令处理。配置部分重点说明 GitHub 图床需要填写 token、username/repo 格式的仓库名、main 或 master 分支、可选存储路径,以及 raw URL、GitHub Pages 域名或 jsDelivr CDN 域名等访问方式。上传流程覆盖快捷键、拖拽和手动选择文件,生成的链接可按 Markdown、HTML 或 URL 格式用于博客和 Markdown 文档。后半部分进一步解释 GitHub Pages 的用户站点与项目站点差异:免费账户通常只能有一个 username.github.io 用户站点,但可基于多个公开仓库创建项目站点,Pro 账户则可在私有仓库启用 Pages。文中也提醒仓库和 Pages 站点建议控制在 1GB 内,单文件不超过 100MB,图片公开可访问且 token 不能泄露,适合需要低成本托管博客图片并理解链接形式、访问速度与公开性边界的个人开发者。