博文

通过Cloudflare的workers部署反向代理代码

在cloudflare中创建一个workers,用Hello示例部署,并且编辑代码,将下面代码拷贝更新即可,并绑定一个自己的域名如:blog. ----------------------------------------------------------------------- // 把你的博客域名改在这里 const BLOG_HOST = ' frankz1998.blogspot.com ' addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }) async function handleRequest(request) { try { const url = new URL(request.url) // 构建目标URL:转发到你的Blogspot博客 let targetPath = url.pathname if (url.search) { targetPath += url.search } const targetUrl = `https://${BLOG_HOST}${targetPath}` // 处理请求头 const headers = new Headers() for (const [key, value] of request.headers.entries()) { // 排除会干扰代理的头部 if (!['host', 'origin', 'referer', 'cf-connecting-ip', 'cf-visitor'].includes(key.toLowerCase())) { headers.set(key, value) } } // 设置Host头为你自己的Blogspot域名 headers.set('Host', BLOG_HOST) headers.set...

生产服务器拉取最新的代码并与github比对代码

一、在原有项目代码基础上拉取最新的代码 cd /Users/mac/Documents/ shangrong git fetch origin --tags git switch --detach v1.67 git describe --tags --exact-match git status --short ---------------------------------- 进入项目目录 cd /Users/mac/Documents/shangrong cd 是切换目录的命令。这里进入项目所在的文件夹,后面的 Git 命令会针对这个项目执行。 从远程仓库获取标签 git fetch origin --tags git fetch :从远程仓库获取更新的 Git 信息和对象,但不会直接切换当前代码。 origin :远程仓库的简称,通常指项目关联的 GitHub 仓库。 --tags :获取远程仓库的所有标签,包括 v1.67 。如果该标签存在,本地就可以用它来切换版本。 切换到 v1.67 标签对应的代码 git switch --detach v1.67 git switch :切换当前检出的代码。 --detach :直接检出标签对应的提交,不切换到某个分支。 v1.67 :要检出的标签。 执行后,项目代码会处于 v1.67 对应的版本。此时会处于 detached HEAD 状态:查看和运行代码没问题,但如果在此状态下提交新改动,提交不会自动属于某个分支。 确认当前提交正好对应 v1.67 git describe --tags --exact-match git describe :用标签描述当前提交。 --tags :也识别轻量标签。 --exact-match :只在当前提交正好被标签标记时输出标签名。 正常情况下会输出: v1.67 查看本地改动 git status --short 以简短格式显示工作区状态。如果没有输出,通常表示没有待提交的改动或未跟踪文件。若有输出,首两列表示文件在暂存区和工作区的状态,例如 M 表示有修改, ?? 表示未跟踪文件。 这条命令不会显示被 Git 忽略的文件。 整组命令假设远程仓库已经发布了 v1.67 标签,且本地没有会阻止切换的改动。 git fetch origin --tags 会获取...

MiniCPM-o 4.5 GGUF:Ubuntu + RTX 3060 12GB + uv 完整部署与排障手册

版本:2026-10-17(根据实际部署与故障记录整理) 目标:ModelScope 下载 MiniCPM-o 4.5 GGUF Q4_K_M,Ubuntu/NVIDIA CUDA 本地推理,官方 Comni Demo 提供中文语音半双工/全双工对话。 实测状态:用户已成功启动 HTTPS Gateway 与 Worker,中文半双工/全双工可用;网页播放缓冲改为 800 ms 后卡顿消失;长会话曾因 Stop on KV pruning 自动结束。 适用性边界:这是可复现的部署记录,不代表在其他操作系统、提交版本或同类显卡上已逐项实测。仓库会更新,请优先核对自己检出的分支、实际程序名称与日志。 目录 1. 先看结论:本次成功的配置 2. 部署结构与硬件要求 3. 准备 NVIDIA 驱动与 CUDA 4. 使用 uv 建立工具环境 5. 从 ModelScope 下载完整 GGUF 音频模型 6. 下载 llama.cpp-omni 源码:规避 GitHub TLS 断开 7. 编译 CUDA 推理引擎:规避 CURL 缺失与目标名称差异 8. uv 部署 MiniCPM-o-Demo 9. 配置 RTX 3060 与稳定播放参数 10. 启动、访问与健康检查 11. 语音测试与长会话设置 12. 日常启动、停止与重新启动 13. 实际遇到过的问题与解决方法 14. 性能监测与进一步优化 15. 备份、升级与安全建议 16. 参考资料 1. 先看结论:本次成功的配置 项目 本次配置 / 已验证状态 操作系统 Ubuntu;原安装环境按 Ubuntu 26.04 操作 显卡 NVIDIA GeForce RTX 3060,12 GB 显存 CUDA 编译器 nvcc 12.4.131(配置日志已识别) 主机 GCC GNU 13.4.0(配置日志已识别) CUDA 架构 86(RTX 3060 Ampere / SM 8.6) Python uv 管理的 Python 3.11 模型源 OpenBMB/MiniCPM-o-4_5-gguf(ModelScope) 主模型 MiniCPM-o-4_5-Q4_K_M.gguf 推理 llama.cpp-omni,CUDA/C++,配套 feat/web-demo 分支 网页 O...

Ubuntu终端中关闭代理环境变量

在 Ubuntu 当前终端中,执行下面两条命令即可关闭代理环境变量: unset http_proxy https_proxy 如果之前也设置过大写形式,建议一并关闭: unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY 1. 验证是否关闭 env | grep -i proxy 如果没有任何输出,说明当前终端中没有设置代理环境变量。 2. 注意:只对当前终端会话生效 - 当前终端: 执行 unset 后立即生效。 - 新开终端: 如果之前只执行了 export,通常不会自动继承这些变量。 - 如果每次打开终端都会自动设置代理: 检查 ~/.bashrc、~/.profile 或 ~/.zshrc,删除或注释掉对应的 export 语句,然后执行: source ~/.bashrc 建议: 如果你只是临时关闭代理,直接执行 unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY 就可以,不需要修改任何配置文件。

sync 与 pip 工作流全对比

最近把团队的 Python 依赖管理从 pip 迁到了 uv ,速度快得离谱,但有个问题一直有人问: “ uv sync 和 uv venv && source .venv/bin/activate && uv pip install -r requirements.txt 不都是装依赖吗?有啥区别?” 表面看都是“建环境 + 装包”,但底层是 两套完全不同的工作流范式 。一个走 uv 的 项目管理(声明式) 路线,一个走 兼容 pip(命令式) 路线。搞混了,就会遇到“在我机器上是好的”这类经典事故。 这篇文章把二者的差异一次讲清楚,并给出选型建议。 一、两条命令长什么样 命令 A —— uv 的项目工作流: uv sync 命令 B —— uv 的 pip 兼容工作流: uv venv source .venv/bin/activate uv pip install -r requirements.txt 就差这几个字,行为却天差地别。 二、一句话本质区别 uv sync 是声明式的 :你声明“我需要什么”,uv 负责把环境对齐成那个样子,多退少补。 uv pip install 是命令式的 :你下一条指令,它就执行一条,只管往上堆,不管环境现状。 三、五大核心差异 1. 依赖信息从哪读 uv sync :读取 pyproject.toml (声明依赖)+ uv.lock (锁定版本),优先按 lock 精确还原。 uv pip install -r :只读 requirements.txt ,完全不认识 pyproject.toml 。里面是范围约束还是精确版本,全看你自己的写法。 2. 可复现性 uv sync :因为有 uv.lock ,团队和不同机器装出来的版本 完全一致 ,这是它最大的卖点。 uv pip install -r :如果 requirements.txt 没锁死版本(比如写着 requests>=2.0 ),每次可能拉到不同的新版,环境悄悄漂移。 3. 环境状态管理 uv sync :把环境对齐成“恰好等于声明的依赖集合”,多出来的包(extraneous) 会自动清理 ,环境始终干净。 uv pip install :累加式,只往里装,不会帮你删掉手抖多装的包。 4. 是否安装“你自己的...

Google Colab中查看并关闭正在运行的colab终端

图片
1、登录colab https://colab.research.google.com/ 2、创建一个新的notebook 3、点击顶部菜单中的「Runtime」,然后再点击「Manage session」二级菜单 4、在弹窗中要关闭的colab notebook实例右侧操作列中点击垃圾桶(删除).

Ubuntu下部署Yue歌曲生成的Ai

1、检查Ubuntu、Nvidia驱动和CUDA版本 cat /etc/os-release nvidia-smi nvcc --version gcc --version 2、安装系统编译工具 sudo apt install -y \     git \     cmake \     ninja-build \     build-essential \     pkg-config \     python3-venv \     ffmpeg \     unzip \     curl 3、下载Yue2的源代码 git clone --recurse-submodules https://github.com/zhangfanxp/yue2.cpp.git 4、创建并激活虚拟环境 uv venv --python 3.11 && source .venv/bin/activate 5、编译RTX 3060 CUDA程序(项目配置与环境构建) cmake -S . -B build -G Ninja \     -DGGML_CUDA=ON \     -DCMAKE_BUILD_TYPE=Release \     -DCMAKE_CUDA_ARCHITECTURES=86 6、多目标并行构建 set -o pipefail cmake --build build \     --target yue-synth yue-server \     --parallel 4 \     2>&1 | tee compile.log 7、下载YuE的GGUF模型 cd ~/YuE2/yue2.cpp mkdir -p models .venv/bin/python - <<'PY' from huggingface_hub import hf_hub_download repo = "Serveurperso/YuE2-GG...