Harbor 部署记录

直接一幅图说明白 Harbor 干嘛用的 下载安装 确保服务器有 docker 和 docker compose 两个链接分别是 官方 docs 和 github Release 页面。我下载 offline 版本的。会带上镜像 Harbor docs | Harbor Installation and Configuration Release v2.12.3 · goharbor/harbor · GitHub 英语水平有限,装的我头昏脑胀,整体还是简单的 配置 tar -xzvf 安装包.tgz 解压后目录结构如上。 其中 docker-compose.yml,common目录。是脚本后续生成的,nginx 目录是我创建的。大概就是这样 复制 harbor.yml.tmpl -> harbor.yml 主要配置点就在于 hostname http->port https external_url 如下图所示 因为我是需要另外一台服务器的 nginx 做反代,但是刚开始部署我想简单测试一下(就是这个不灵清的想法折腾我一个多小时) 我以为 hostname 在配置了external_url 后会失效。于是还是内网地址 172.16.100.1 然后用 openssl 自签名了证书。然后配了 external_url 接着在我的客户端电脑上 配置了/etc/hosts 172.16.100.1 hub.test.cn ...

May 12, 2025 · 2 min · 328 words · Ray

git漏提交了怎么办

使用 Git 的 amend 功能,将未保存的文件修改后“补充”到你刚刚的那次提交中,而不会增加新的提交记录。 ✅ 1. 保存你漏掉的那个文件 先确保你已经保存了那个文件的最新修改。 ✅ 2. 添加这个文件到暂存区 1 git add path/to/your/file ✅ 3. 使用 –amend 修改上一次提交 1 git commit --amend --no-edit –no-edit 表示不更改上一次的提交说明。 如果你想修改提交说明,可以去掉 –no-edit,然后在打开的编辑器里改。 ✅ 4. 如果已经推送到远程仓库(GitHub 等) 如果你 已经推送过 这次提交,需要强推(⚠️ 要小心): 1 git push --force

May 9, 2025 · 1 min · 42 words · Ray

安装 Ubuntu

其实有想过保留两个系统,但是备份完之后觉得没这个必要了,主要是不需要 windows 做什么,公司也还有 win 电脑 准备工作 64GB U 盘,(狗东 26 块的闪迪,有活动 18,够够的了,想当年买个 8G 还要我 72 块钱) Ventoy 一个(制作可启动U盘的开源工具。1 是微 pe 不能直接装 linux,2 是其他pe 系统我总感觉乱乱脏脏的,这个直接把系统镜像拖进去就可以了。很完美) Ubuntu 镜像,官网下就可 Ventoy安装 我在 mac 上不知道为什么启动不了 arm64 的 ventoy 工具,上 win 直接解决了。傻瓜式操作,不用一分钟,建议看官方文档 News . Ventoy 镜像 Download Ubuntu Desktop | Ubuntu 备份老电脑 安装 Ubuntu 插入 U 盘 进 bios,我不知道这个主板用的啥 直接常用按键一把搂 使用 u 盘启动,这个bios 略有区别,可以自行搜索相关资料 很开心的看到了(这里用的官方截图,选择 Ubuntu 系统) 这里我的界面和这个略有差别,但是基本一致。选择了try Ubuntu or install Ubuntu 结果就卡在了一个 LOGO 界面了 郁闷,但是机智的我猜到了是因为显卡驱动的问题,这机子上还有一张 3060,显示屏连着显卡,百度一下 ...

April 22, 2025 · 1 min · 119 words · Ray

vite-press 食用指南

前几天给同事分享文档的时候一直在用 语雀啥的。突然想到,如果要维护一个像 vue 或者vite 那一类的文档给用户看该怎么快速搭建的。理应有前辈完成这种工作。让 grok 搜了一下。顺便解惑原来对于 wiki doc 等的认识,有兴趣的小伙伴们自己搜搜,我这里就不贴 grok 的长篇大论了 总之找到了 vite press。确实是曾经认识过它(好像是在鱼皮那里) 那么这篇博客就记录一下搭建过程(跟官方文档一致)Getting Started | VitePress 首先准备 node 环境。因为最近在开发 mcp 应用。所以心血来潮用了 bun 1 2 3 bun add -D vitepress bun vitepress init 随后会有一次互动式的初始化 显示已折叠代码(30 行) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ┌ Welcome to VitePress! │ ◇ Where should VitePress initialize the config? │ ./docs │ ◇ Where should VitePress look for your markdown files? │ ./docs │ ◇ Site title: │ My Awesome Project │ ◇ Site description: │ A VitePress Site │ ◇ Theme: │ Default Theme │ ◇ Use TypeScript for config and theme files? │ Yes │ ◇ Add VitePress npm scripts to package.json? │ Yes │ ◇ Add a prefix for VitePress npm scripts? │ Yes │ ◇ Prefix for VitePress npm scripts: │ docs │ └ Done! Now run pnpm run docs:dev and start writing. 这里对于初始化的目录结构会对后面有一定的影响。由于我是使用的./作为默认目录,也可以在已有的项目中构建 docs 目录跟项目结合在一起 ...

April 10, 2025 · 2 min · 249 words · Ray

自签证书

我现在在后端项目上 使用自签证书 对域名 172.16.99.32:1043 生成了证书和密钥。并在 nginx 中启动服务使用这个 我使用 curl 加 -K 这个参数 可以成功调用 https 的接口 但是我的前端页面服务直接使用 python http.server 启动访问的时候 无法调用这个接口。报错net::ERR_CERT_AUTHORITY_INVALID 我该怎么解决呢。因为我只是为了 加密通信,且没有域名 。是不是可以在两端互相认证证书之类的呢? 解决方案概述 by-grok3 理解问题 您的问题是前端页面(通过 Python 的 http.server 提供服务)无法调用使用自签名证书的 HTTPS 接口(172.16.99.32:1043),而使用 curl -k 可以成功调用。错误为 net::ERR_CERT_AUTHORITY_INVALID,因为浏览器默认不信任自签名证书。由于您是为了开发环境中的加密通信,且没有域名,我们需要让浏览器信任该证书。 推荐解决方案:使用 mkcert 使用 mkcert 是最方便的方法,它会生成本地信任的证书,浏览器会自动识别。步骤如下: 安装 mkcert(在 macOS/Linux 上用 brew install mkcert,Windows 上从 GitHub 页面 下载)。 运行 mkcert -install 安装本地 CA。 为您的 IP 生成证书:运行 mkcert 172.16.99.32。 在 nginx 中使用新生成的证书和密钥,更新配置并重启 nginx。 完成后,浏览器应该会信任该证书,前端可以正常访问 HTTPS 接口。 替代方案:手动信任证书 如果不使用 mkcert,可以手动将现有自签名证书添加到浏览器的信任存储: ...

March 25, 2025 · 2 min · 324 words · Ray