标签: Github项目

  • Custom_Nodes篇:ComfyUI-QwenVL3-image反推节点

    Custom_Nodes篇:ComfyUI-QwenVL3-image反推节点

    这是一个 ComfyUI 自定义节点,它集成了阿里巴巴的 Qwen3-VL-4B-Instruct-FP8 视觉语言模型。

    核心功能: 它的主要作用是分析输入的图像并生成相应的文本描述

    主要特点是高效运行,由于使用了 FP8 量化技术,该模型运行所需的显存较低,大约 10GB 左右。开发者提到,它适合用在图像放大的工作流程中,作为图像理解(“看懂”图片内容)的工具。需要注意的是,因为它依赖 FP8 技术,所以它有特定的硬件门槛,要求使用 NVIDIA RTX 4090 或计算能力更强的 GPU。简单来说,它是一个能帮你“读取”图片内容并将其转换成文字的工具节点,特别适合显存有限但又想使用先进视觉模型的用户(前提是你的 GPU 支持 FP8)。

    节点官方介绍:


    开源地址:https://github.com/yamanacn/ComfyUI-QwenVL3-image

    使用qwen3vl-4b快速分析图片内容,用于在放大中替代florence

    📖 简介

    一个为 ComfyUI 设计的自定义节点,集成了 Qwen3-VL-4B-Instruct-FP8 视觉语言模型,用于高效的图像理解和描述。

    ✨ 主要特性

    • 🚀 高效 FP8 量化:仅需约 10GB 显存
    • 📦 批量处理支持:一次处理多张图片
    • 💾 智能内存管理:可选模型保持加载,优化显存
    • 🔧 辅助工具链:提供文本分割、列表处理等节点

    📋 硬件要求

    • GPU: NVIDIA RTX 4090 或更高(计算能力 ≥ 8.9)
    • 显存: ≥ 10GB
    • 系统内存: 8GB+

    ⚠️ 重要提示: 此插件仅支持 FP8 量化模型,需要计算能力 8.9 或更高的 GPU。

    🔧 安装方法

    使用 Git Clone(推荐)

    cd ComfyUI/custom_nodes/
    git clone https://github.com/yamanacn/ComfyUI-QwenVL3-image.git
    cd ComfyUI-QwenVL3-image
    pip install -r requirements.txt

    使用 ComfyUI Manager

    1. 在 ComfyUI 中打开 Manager
    2. 搜索 “QwenVL3”
    3. 点击安装

    📦 模型下载

    模型会在首次使用时自动下载。你也可以从 HuggingFace 手动下载模型,并将其放置在 ComfyUI/models/Qwen/ 目录下。

    🎮 基础工作流

    对于批量处理,可连接 Text Batch Splitter 和 List Selector 节点来分别查看每张图片的描述。

    图片输入 → QwenVL3 Image (FP8) → 文本输出

  • 从本地部署好的it-tools项目再部署到服务器并上线

    从本地部署好的it-tools项目再部署到服务器并上线

    随着开发工作的日益复杂,高效、集成的开发工具成为提升生产力的关键。IT-Tools 作为一个开源的工具集合项目,将多种常用开发工具(如编码转换、格式化、加密解密等)聚合于一体,为开发者提供了极大的便利。

    之前在本地部署了一个it-tools,因为感觉它比较轻便,于是想部署到服务器上来。

    1.首先,在本地的it-tools目录中构建镜像文件并在本地保存镜像:

    # 在当前it-tools根目录下构建并取名为leepoet-tools
    docker build -t leepoet-tools:custom .
    
    # 打包镜像为leepoet-tools.tar
    docker save -o leepoet-tools.tar leepoet-tools:custom

    2.然后把镜像上传到服务器的/tmp目录下:

    # 使用 scp 传输(替换为你的服务器信息)
    scp leepoet-tools.tar root@你的服务器IP:/tmp/

    3.在服务器上用docker加载镜像:

    # 在服务器上加载镜像
    docker load -i /tmp/leepoet-tools.tar

    可以通过docker ps -a查看一下:

    4.在服务器上通过docker生成容器并运行:

    # 运行容器
    docker run -d -p 3000:80 --name leepoet-toolkit leepoet-tools:custom

    *注:

    这里有几个点要注意,因为it-tools镜像是一个基于 Alpine Linux​ 的 Nginx​ 镜像,并且将 /app/dist目录的内容复制到了 /usr/share/nginx/html(标准的 Nginx 静态文件目录)。目前我无法通过:

    # 假设容器内网站根目录是/usr/share/nginx/html
    # 重新运行容器并挂载目录
    docker run -d \
      -p 3000:80 \
      --name it-tools-container \
      -v /www/wwwroot/tools.leepoet.cn:/usr/share/nginx/html \
      leepoet-tools:custom
    
    或者
    
    docker run -d \
      --name it-tools \
      -p 3000:3000 \
      -v /www/wwwroot/tools.leepoet.cn:/data \
      corentinth/it-tools:latest

    这样的命令去持久化生成它。

    如果直接用这个目录/usr/share/nginx/html挂载到/www/wwwroot/tools.leepoet.cn,网站打不开。

    如果用/data目录挂载到/www/wwwroot/tools.leepoet.cn的话,网站是可以打开的。但是 /www/wwwroot/tools.leepoet.cn是空的,因为 Nginx 默认不向 /data写入数据,它只从 /usr/share/nginx/html读取静态文件。所以挂载到/data目录没有什么意义。最后我还是直接:

    docker run -d -p 3000:80 --name leepoet-toolkit leepoet-tools:custom

    生成了容器并运行起来。

    然后通过复制容器内的文件到宿主机:

    docker cp leepoet-toolkit:/usr/share/nginx/html/. /www/wwwroot/tools.leepoet.cn/

    这样的话我是想直接通过正向代理到这个目录。

    他现在读取的路径就是/www/wwwroot/tools.leepoet.cn/

    https://tools.leepoet.cn/ 然后通过BING提交验证,并通过

    为什么要这么操作?

    因为之前我是直接把上传的镜像生成在服务器的容器内部,并用域名反向代理到这个内部的容器。也就是DOCKER里的/usr/share/nginx/html这个目录。如果想做SEO验证就必须把XML的文件个人感觉还是比较麻烦。所以如果把/usr/share/nginx/html/直接复制到/www/wwwroot/tools.leepoet.cn/这里的话,再上传BING的XLM验证文件会更合适。当然这是我个人的理解与实践结果。

  • 使用Ventoy制作Windows To Go:一个U盘搞定所有系统,随身携带你的PC

    使用Ventoy制作Windows To Go:一个U盘搞定所有系统,随身携带你的PC

    (清了清嗓子,拍了拍桌子)哎,各位朋友,我是李哥!今天咱们不聊虚的,就说说怎么把Windows系统塞进U盘里,让你走到哪儿都像带着“移动网吧”——这玩意儿叫Windows To Go,绝对是打工人、学生党的救命神器!

    为啥要搞这玩意儿?​想象一下:公司电脑卡成PPT、学校机房软件不全、出差不敢用酒店公共电脑……这时候你掏出U盘,插上任何电脑,直接启动自己熟悉的Windows系统——软件、文件、浏览器记录全在兜里,隐私安全还拉满!李哥当年就是靠这招,在网吧边吃泡面边改完了毕业论文(别问,问就是热血青春)

    准备家伙事儿!(硬件门槛)

    1. U盘别抠门:至少64GB起步,读写速度要快(推荐USB 3.0以上),否则装系统慢到你想砸电脑。李哥用过某顿的普通U盘,结果安装6小时,开机转圈半小时……(血泪教训!)
    2. 系统镜像:去微软官网下个正经的Windows 10/11企业版或教育版ISO文件(其他版本可能不支持)。
    3. 工具软件:推荐WTG辅助工具ventoy,小白也能一键操作,比老辈分的“命令行敲代码”省心一百倍

     


    • 一、怎么在u盘上跑完整的windows呢?
      我们都知道,操作系统一定要操作……哦不对,常见的操作系统一定要在硬盘上跑。无论是固态硬盘也好,还是机械硬盘也罢,我们概念中的系统一定是装在电脑里的那个固定不动的硬盘上的。一般windows的默认安装位置就是机内的存储介质,并不能像linux那样直接在livecd里就能直接装在u盘上。
      其实windows to go的历史很久了,可以追溯到2011年:2011 年 4 月,Windows to go就已包含在泄漏的 Windows 8 Build 7850 版本中。同年 9 月,微软在 Build 大会上正式公布了此功能,并分发了预装该系统的 32GB 启动 U 盘。它起初适配 Windows 8 企业版,后续拓展支持 Windows 8.1 及 Windows 10 的企业版、教育版,Windows 10 1607 版本及之后的专业版也纳入适配范围。
      但是,到了 2019 年 的 Windows 10 1903 版本发布时,微软宣布停止对其开发,2020 年 Windows 10 2004 版本中该功能被正式移除,缘由是它不支持功能更新,且所需的特定类型 USB 设备也逐渐不再被 OEM 厂商支持。
      不过这个功能确实非常方便,也吸引很多大佬来研究、发展Windows to go。其中最具有代表性的就是萝卜头IT论坛的WTG辅助工具,以及edgeless工具。今天我们暂时不用这两个工具,教大家直接手动在ventoy上部署windows to go!
      今天我们就来制作一个既能用ventoy,还能启动完整windows的u盘。了解了我们今天的任务,我们现在就可以开始教学了!
      哦对了,在看完文章后,如果手痒难耐想要实践一把,不要忘记领取文末的关键词哦!

    • 二、制作wintogo镜像并导入u盘
      首先,我们先需要下载想要安装的windows版本镜像。这里我推荐各位使用企业版windows的ltsc2019版本,ltsc企业版的镜像包相对于家庭版、专业版的镜像而言会精简一些,而且这些被精简掉的功能——比如xbox中控、microsoft商店等——基本不会影响正常的使用。假如你在ltsc上运行某些软件,碰到了诸如“xxx.dll”缺失的问题,一般直接百度就可以了,一般都很容易找到答案。
      如果你和我一样是个懒人,那么直接用现成的iso镜像包就可以了。如果你是个有极客精神的弗雷尔卓德人,把电脑当哥们,就喜欢折腾它,那么你可以使用一些经过民间优化的wim、esd格式的优化版本镜像,甚至你可以把自己正在用的操作系统封装成一份wim做成wintogo——虽然我并不推荐这么做,很有可能出现驱动冲突的情况。
      这里我们就先来点简单的,直接用现成的LTSC2019来进行演示。
      不想开网页下镜像也不要紧,罗某人为各位整理了一些常用的windows版本镜像包,在文末就能看到关键词了哦!
      好,现在我们打开电脑,右键此电脑——显示更多选项——管理,点击磁盘管理。
      来到这个页面没有?我们点开右侧的更多操作,选择创建VHD,将硬盘格式改为VHDX,类型设为“动态扩展”,然后随便把它放到哪里,大小随便设,别太小就行。这里我就设个100g就行了。
      然后你的窗口底部就会出现一个新的磁盘了!右键那个新建的磁盘x,选择初始化,初始化成GPT分区表,点击确定。
      接下来再右键磁盘x右侧的黑色条条,点击“新建简单卷”,这里我建议新手直接全部按照默认参数创建分区,无脑点下一步直到分区创建完成即可。
      这样就能看到那个黑色的框框变成蓝色的框框了!
      好,创建虚拟磁盘这一步我们就完成了。下一步我们要用到一个新工具,是俄罗斯人做的一个windows系统安装工具,叫做winntsetup。使用它,我们就可以非常方便地安装windows了。同样,这个工具会一并放在文末的关键词里。
      一看这个网页风格就非常程序员,一点多余的装饰都没有:
      打开程序后,我们首先点击第一行“选择windows安装源”,选择我们下载好的镜像,第二行选择一个EFI System(ESP)分区类型的分区即可;第三行就是我们的系统安装位置,选择虚拟磁盘即可。
      接下来我们点击安装,将引导代码切换为“不更新引导代码”,点击确定,坐着等就行了。
      好,在安装完成后,会跳出一个弹窗,询问你要不要重启,这时候我们重启,进行一下系统的初始化。
      这个应该不用我教吧?
      在激活系统后,我们可以进行下一步了:导入ventoy。

    • 三、配置ventoy,启动wintogo
      安装ventoy的流程就不再赘述了,各位可以乘坐文章开头的传送门前往学习。首先,我们在ventoy的根目录下创建一个名为“ventoy”的文件夹,然后在官网下载ventoy用以启动vhd的插件:ventoy_vhdboot.img。找不到也不要紧,文末有的。
      如果各位在官网下的话,会得到一个压缩包,里面有2个版本的插件文件,一般我们选win10based的那个版本即可。
      解压完后,我们直接把解压得到的ventoy_vhdboot.img放到我们刚刚创建的ventoy文件夹里——注意,一定是文件夹里面,而不是外面。
      然后呢?快点想想我们刚刚做了什么?对了!创建了个vhdx虚拟磁盘嘛!此时我们把这个vhdx文件复制粘贴到ventoy盘里面——不是文件夹里面!然后……重启电脑,启动ventoy!
      在ventoy里面找到我们的vhdx文件,启动它!不出意外的话……会不出意外地,成功了!
    • 四、enjoy!记得装驱动哦。
      对了,不要学我用一半拔u盘,容易蓝屏,我是为了拍封面才拔的。哦对了,拔下来一会再把u盘插上,系统就会继续正常工作哦。

     

  • LeePoet实操快速上手:Hexo静态博客搭建全攻略

    LeePoet实操快速上手:Hexo静态博客搭建全攻略

    HEXO是一个基于Node.js的快速、简洁且高效的博客框架。它使用Markdown(或其他渲染引擎)解析文章,在几秒内即可利用靓丽的主题生成静态网页,非常适合搭建个人博客网站。超快速度,Node.js 所带来的超快生成速度。 上百个页面在几秒内完成渲染。Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。只需一条指令即可部署到 GitHub Pages, Heroku 或其他平台。强大的 API 带来无限的可能。 支持数种模板引擎(EJS,Pug,Nunjucks等)。 可以与现有的NPM包 (Babel, PostCSS, Less/Sass 等) 轻松地集成。

    安装 Hexo 相当简单,只需要先安装下列应用程序即可:

    • Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本)
    • Git

    如果您的电脑中已经安装上述必备程序,那么恭喜您! 你可以直接前往 安装 Hexo 步骤。

    如果您的电脑中尚未安装所需要的程序,请根据以下安装指示完成安装。

    • Windows:下载并安装 git
    • Mac:使用 Homebrew, MacPorts 或者下载 安装程序
    • Linux (Ubuntu, Debian):sudo apt-get install git-core
    • Linux (Fedora, Red Hat, CentOS):sudo yum install git-core

    Mac 用户

    如果在编译时可能会遇到问题。 请先到 App Store 安装 Xcode。 Xcode 完成后,启动并进入 Preferences -> Download -> Command Line Tools -> Install 安装命令行工具。

    Node.js 为大多数平台提供了官方的 安装程序

    其它的安装方法:

    • Windows:通过 nvs(推荐)或者 nvm 安装。
    • Mac:使用 HomebrewMacPorts 安装。
    • Linux(DEB/RPM-based):从 NodeSource 安装。
    • 其它:使用相应的软件包管理器进行安装。 可以参考由 Node.js 提供的 指导

    对于 Mac 和 Linux 同样建议使用 nvs 或者 nvm,以避免可能会出现的权限问题。

    Windows

    使用 Node.js 官方安装程序时,请确保勾选 Add to PATH 选项(默认已勾选)

    Mac / Linux

    如果在尝试安装 Hexo 的过程中出现 EACCES 权限错误,请遵循 由 npmjs 发布的指导 修复该问题。

    Linux

    如果您使用 Snap 来安装 Node.js,在 初始化 博客时您可能需要手动在目标文件夹中执行 npm install

    安装 Hexo

    我现在是用WINDOWS安装,所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。

    $ npm install -g hexo-cli
    

    还是使用用管理员身份运行,这条命令随便在哪个盘运行都无所谓。这相当于是HEXO的脚手架,只要安装了这个框架之后,后续安装HEXO随便在哪个盘使用npm install hexo安装,安装几个,都是独立的HEXO环境。

    HEXO的脚手架安装成功

    进阶安装和使用

    对于熟悉 npm 的进阶用户,可以仅局部安装 hexo 包。

    $ npm install hexo
    

    比如我现在要在E盘的WEB文件夹里安装一个HEXO:

    安装完后就有HEXO的文件了。

    验证安装

    hexo -v
    

    初始化博客项目

    创建并初始化项目

    hexo init my-blog  # 创建名为my-blog的博客项目
    cd my-blog
    npm install        # 安装项目依赖
    

    遇到了个问题,应该是我的Git没有配置环境变量,下面我配置一下

    打开控制面板 → 系统与安全 → 系统 → 高级系统设置

    点击”环境变量”,在系统变量中找到Path变量

    添加Git安装路径,如:E:\Program Files\Git\cmd

    重启命令行验证配置

    cd到leepoetnote并使用npm install安装依赖,注:以后使用HEXO管理leepoetnote时,都要先cd到这个文件夹之后才能执行以下的操作。

    项目结构解析

    初始化后的项目包含以下主要文件和文件夹:

    • _config.yml:站点配置文件,包含博客的基本设置
    • package.json:应用程序信息和依赖配置
    • scaffolds/:模板文件夹,用于新建文章的模板
    • source/:资源文件夹,存放文章(_posts目录)和其他资源
    • themes/:主题文件夹,存放博客主题文件9

    常用命令

    基础命令

    hexo new "文章标题"    # 创建新文章
    hexo clean            # 清理缓存文件
    hexo generate         # 生成静态文件(缩写:hexo g)
    hexo server           # 启动本地服务器(缩写:hexo s)
    hexo deploy           # 部署到远程平台(缩写:hexo d)
    

    组合命令

    hexo clean && hexo g && hexo s  # 清理、生成并启动本地预览
    hexo clean && hexo g && hexo d  # 清理、生成并部署
    
    .
    ├── _config.yml       # 站点的核心配置文件,网站标题、描述等都在这里设置
    ├── package.json      # 项目信息和依赖列表 
    ├── scaffolds         # 模板文件夹,新建文章时的默认格式 
    ├── source            # 源文件存放目录,你的文章就在这里!
    │   └── _posts        # 你的所有 Markdown 博客文章都放在这个文件夹内 
    ├── themes            # 主题文件夹,所有安装的主题都放在这里 
    └── public            # 执行生成命令后,Hexo 创建的静态网站文件会放在这里(此目录初始可能不存在)
    

    在这些文件和文件夹中,你最需要关注的是:

    • _config.yml:博客的“大脑”,大部分设置在这里修改。
    • source/_posts/:你写的文章(.md文件)都存放在这里,注:方便文章管理,可以自己在这个文件夹里手动新建对应文章的分类。如下图所示,以后通过HEXO G去生成文章。这些是不会被识别的,只是方便我们自己管理文章的一个小技巧。

    source/:这个文件夹下除了有_posts文件夹即:文章md文件之外之外,在source的目录下还可以放图片,通过/image/***.jpg即可以直接调用,同样是方便管理的小技巧。

    我们一般备份只需要拿以下这些文件即可:

    Tip:如果有需要也可以加上package.json以及db.json,其实也可有可无

    本地预览

    启动本地服务器后,在浏览器中访问 http://localhost:4000即可查看博客效果。

    为HEXO安装一个主题:

    先找到主题对应的开源仓库通过介绍安装

    使用 NPM 包进行安装如:

    使用 NPM 包进行安装 npm i hexo-theme-solitude

    应用主题 theme: solitude

    这里已经多出了一个_config.landscape.yml文件,基本上这样就可以了,有些主题是需要自己手动把主题配置改名为 _config.主题名.yml的之后再手动移到根目录的。具体还得看主题作者的介绍。下面就是修改HEXO的核心配置文件 _config.yml让主题生效。

    保存即可。然后通过hexo clean && hexo g && hexo s重新启动服务。

    其它的设置全在_config.landscape.yml这个主题配置文件里修改。


    其它配置

    本地搜索

    本地搜索是实现起来最快捷的方案。

    安装插件

    在Hexo博客的根目录下打开终端,执行以下命令安装核心插件。常用的插件有 hexo-generator-searchhexo-generator-searchdb

    npm install hexo-generator-searchdb --save
    
    1. 配置站点文件 打开博客根目录下的 _config.yml文件,在末尾添加以下配置(具体参数可根据插件文档和需求调整): search: path: search.xml # 生成的索引文件路径和名称 field: post # 搜索范围:post(文章)、page(页面)、all(全部) content: true # 是否包含文章全文,建议true以提高搜索命中率 format: html # 内容格式
    2. 启用主题的搜索功能 打开你正在使用的主题的配置文件(如 _config.[theme-name].yml),找到本地搜索相关的选项并启用它。例如,在流行的Next主题中: local_search: enable: true 对于Butterfly主题,配置类似。完成以上步骤后,执行 hexo clean && hexo g重新生成博客,然后启动本地服务器 hexo s预览,通常可以在页面右上角或侧边栏找到搜索图标。

    Hexo 有三种默认布局:postpage 和 draft,它们分别对应不同的路径,而自定义的其他布局和 post 相同,都将储存到 source/_posts 文件夹。

    布局路径
    postsource/_posts
    pagesource
    draftsource/_drafts

    如果你不想你的文章被处理,你可以将 Front-Matter 中的layout: 设为 false 。

    模版(Scaffold)

    在新建文章时,Hexo 会根据 scaffolds 文件夹内相对应的文件来建立文件,例如:

    $ hexo new photo "My Gallery"

    在执行这行指令时,Hexo 会尝试在 scaffolds 文件夹中寻找 photo.md,并根据其内容建立文章,以下是您可以在模版中使用的变量:

    变量描述
    layout布局
    title标题
    date文件建立日期

     Front-matter

    Front-matter是文件最上方以 --- 分隔的区域,用于指定个别文件的变量,举例来说:

    ---
    title: Hello World
    date: 2013/7/13 20:46:25
    ---

    注意:一般Front-matter使用的yaml语法,yaml语法需要注意空格,如title: Hello World冒号需要有一个空格,当然除YAML 外,你也可以使用 JSON 来编写 Front-matter。

    以下是预先定义的参数,您可在模板中使用这些参数值并加以利用。

    参数描述默认值
    layout布局
    title标题
    date建立日期文件建立日
    updated更新日期文件更新日期
    comments开启文章的评论功能true
    tags标签(不适用于分页)
    categories分类(不适用于分页)
    permalink覆盖文章网址

    分类和标签

    只有文章支持分类和标签,您可以在 Front-matter 中设置。在其他系统中,分类和标签听起来很接近,但是在 Hexo 中两者有着明显的差别:分类具有顺序性和层次性而标签没有顺序和层次

    categories:
    - Diary
    tags:
    - PS3
    - Games

    WordPress支持对一篇文章设置多个分类,而且这些分类可以是同级的,也可以是父子分类。但是Hexo不支持指定多个同级分类。下面的指定方法:
    categories:

    • Diary
    • Life

    会使分类Life成为Diary的子分类,而不是并列分类。因此,有必要为您的文章选择尽可能准确的分类.

    文章摘要

    设置文章摘要,我们只需在想显示为摘要的内容之后添 <!-- more --> 即可。像下面这样:

    ---
    title: hello hexo markdown
    date: 2016-11-16 18:11:25
    tags:
    - hello
    - hexo
    - markdown
    ---

    我是短小精悍的文章摘要(๑•̀ㅂ•́)و✧

    <!-- more -->

    紧接着文章摘要的正文内容

    这样,<!-- more --> 之前、文档配置参数之后中的内容便会被渲染为站点中的文章摘要。

    注意!文章摘要在文章详情页是正文中最前面的内容。

    资源引用

    写个博客,有时候会想添加个图片或者其他形式的资源等等。有以下两种方式进行解决:

    1. 使用绝对路径引用资源,在 Web 世界中就是资源的 URL
    2. 使用相对路径引用资源

    对于使用相对路径引用资源的,我们可以使用 Hexo 提供的资源文件夹功能。

    使用文本编辑器打开站点根目录下的 _ config.yml 文件,将 post_asset_folder 值设置为 true

    post_asset_folder: true

    修改之后会开启 Hexo 的文章资源文件管理功能。Hexo 将会在我们每一次通过 hexo new <title> 命令创建新文章时自动创建一个同名文件夹,于是我们便可以将文章所引用的相关资源放到这个同名文件夹下,然后通过相对路径引用。例如,你把一个 example.jpg 图片放在了这个同名文件夹中,使用相对路径的常规 markdown 语法 ![](./example.jpg)即可访问 。


    其它

    Linux 用户可以将 Hexo 所在的目录下的 node_modules 添加到环境变量之中即可直接使用 hexo <command>

    echo 'PATH="$PATH:./node_modules/.bin"' >> ~/.profile

  • 实战指南:使用 V2Ray 搭建 SOCKS5 代理中转服务器​

    实战指南:使用 V2Ray 搭建 SOCKS5 代理中转服务器​

    在某些网络场景下,我们可能需要通过一台中转服务器来访问另一个代理服务器。本文将详细介绍如何在一台 Linux 中转服务器上安装和配置 V2Ray,将其设置为一个 SOCKS5 代理中转节点,从而将流量转发至最终的目标代理服务器(如 leepoet.com:1088

    步骤 1:安装 V2Ray​

    通过官方脚本在中转服务器上安装 V2Ray。

    执行安装命令:​​

    bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

    确认安装路径:​​ 安装完成后,V2Ray 的主配置文件通常位于 /usr/local/etc/v2ray/config.json。

    步骤 2:配置 V2Ray 流量转发​

    我们需要编辑配置文件,定义 V2Ray 的“入站”连接(接收客户端的请求)和“出站”连接(将请求转发至目标代理)。

    编辑配置文件:​

    nano /usr/local/etc/v2ray/config.json

    写入以下配置内容:​

    {
      "inbounds": [{
        "port": 8899, // 中转服务器监听的端口号
        "protocol": "socks", // 使用 SOCKS5 协议
        "settings": {
          "auth": "noauth", // 无需认证(生产环境建议设置认证)
          "udp": false      // 不启用 UDP 转发
        }
      }],
      "outbounds": [{
        "protocol": "socks", // 将流量转发至另一个 SOCKS5 代理
        "settings": {
          "servers": [{
            "address": "leepoet.com", // 目标代理服务器地址
            "port": 1088           // 目标代理服务器端口
          }]
        }
      }]
    }

    提示:​​ 请务必将 leepoet.com和 1088替换为你实际要连接的目标代理服务器的地址和端口。

    步骤 3:启动并设置 V2Ray 服务​

    配置完成后,启动 V2Ray 服务并设置开机自启。

    启动服务:​

    systemctl start v2ray

    设置开机自启:​

    systemctl enable v2ray

    ​检查服务状态:​

    systemctl status v2ray

    如果状态显示为 active (running),则表示服务已成功启动。

    步骤 4:客户端使用​

    现在,你的中转服务器已经搭建完成。在任何支持 SOCKS5 代理的客户端(如浏览器、电报等)中,进行如下设置:


    • ​服务器/地址:​​ 你的中转服务器的 IP 地址
    • •​​端口:​​ 8899(与配置中的 inbounds.port一致)
    • •​​协议:​​ SOCKS5
    • •​​认证:​​ 无

    配置完成后,客户端的流量就会通过中转服务器转发至目标代理服务器了。通过以上四个步骤,我们成功利用 V2Ray 实现了代理流量的中转。这种方法在需要绕过特定网络限制或优化连接路径时非常有用。


    极简版

    ​目标:​​ 在服务器上快速搭建 SOCKS5 中转,转发流量至另一代理。
    安装​

    bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

    配置​

    编辑 /usr/local/etc/v2ray/config.json,替换为以下内容(修改 address和 port为你自己的目标代理):

    {
      "inbounds": [{
        "port": 8899,
        "protocol": "socks",
        "settings": {"auth": "noauth", "udp": false}
      }],
      "outbounds": [{
        "protocol": "socks",
        "settings": {
          "servers": [{
            "address": "leepoet.com", // 改成你的目标代理IP/域名
            "port": 1088           // 改成你的目标代理端口
          }]
        }
      }]
    }

    启动​

    systemctl start v2ray
    systemctl enable v2ray
    systemctl status v2ray

    使用​

    客户端配置 SOCKS5 代理:

    • 服务器:<你的中转服务器IP>
    • 端口:8899
    • 协议:SOCKS5(无认证)

    使用场景:​​ 你想访问一个被墙的网站(B点),但你的网络直连不过去。幸好你有一台在国外的服务器(A点),而A点可以顺畅地连接到另一个更强大的代理服务器(C点)。这个教程就是教你把A点变成一个“传话员”,让你的请求 你 -> A -> C -> B这样跳转过去。

    操作步骤:​

    给你的“传话员”(服务器A)安装工具​​登录到你的服务器,输入一行魔法命令来安装 V2Ray 这个专业工具:

    bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

    告诉“传话员”规则​

    找到配置文件(在 /usr/local/etc/v2ray/config.json),然后告诉它两件事:

    • ​听令:​​ 在 8899端口等着接收我(你的电脑)发来的指令。
    • ​传话:​​ 收到我的指令后,原样转发给最终的那个“强大代理C”(教程里例子是 leepoet.com:1088,你要改成自己实际的)。

    配置文件内容看起来像一串代码,核心就是定义了“从哪听”和“向哪转”。

    ​启动“传话员”​​输入几个命令,让配置生效并保证它一直在岗:

    systemctl start v2ray    # 立即上班
    systemctl enable v2ray # 保证下次服务器重启后自动上班
    1. 你这边开始使用​​在你自己的电脑上,网络设置里找到代理设置的地方:
      • ​服务器:​​ 填你“传话员”服务器A的IP地址。
      • ​端口:​​ 填 8899
      • ​类型:​​ 选择 ​​SOCKS5​​。保存之后,你的网络流量就开始“跳转”了!

    通过这个简单的设置,你那台本来普通的服务器就变成了一个高效的代理中转站,帮你更稳定、更灵活地访问网络。

  • GitHub开源神器Angry IP Scanner:一键扫描,网络设备尽在掌握​

    GitHub开源神器Angry IP Scanner:一键扫描,网络设备尽在掌握​

    各位街坊邻居,有没有试过在某个深更半夜,盯着路由器管理界面里一长串陌生设备名直挠头?“小米电视”、“iPhone(15)”、“Unknown”……哪个是自家娃的新手机,哪个又是隔壁老王家“借用”Wi-Fi的智能灯泡?反正,作为资深捡垃圾(指数码硬件)爱好者,我家网络环境之复杂,堪称“设备博览会”。每当网速卡成PPT,想揪出那个“蹭网贼”或者排查问题设备时,那种面对一团乱麻的无从下手感,真让人火大。

    直到我在GitHub这座宝库里,挖到了这个存在了N年、累计下载超3000万次的镇宅神器——Angry IP Scanner。这名字起得就传神,“愤怒”二字,精准表达了咱们面对混沌网络时的那点小情绪。今儿这篇,就带大伙儿盘盘这个Java写的轻量级小工具,看它如何用最直接的方式,帮你一键“理清”网络,让所有连接设备都无所遁形。开源、免费、跨平台,堪称网络界的“户籍警察”,绝对是管家和维护人员的必备神器。走起,扫描!

    在GitHub上有一个存在了好多年的开源项目——Angry IP Scanner,就是为了解决这个问题而生的。这个用Java编写的小工具,凭借其简单直接的设计,已经成为世界各地许多网络管理员甚至好奇用户的必备神器,累计下载量超过了2300万次,最近它刚刚发布了3.9.3版本。

    Angry IP Scanner是啥

    一个开源的跨平台网络扫描工具,它能快速扫描IP地址和端口,帮你找出网络中正在使用的设备

    开源成就

    • Star数  GitHub 上已经吸引了 4.7k 星
    • 主开发语言   Java

    核心功能

    快速扫描IP范围你只需要设置好起始和结束的IP地址,启动后等待结果就行,它会通过Ping每个IP来检查其活动状态,并在界面中用蓝色高亮显示正在使用的工作IP,用红色标记失效或无效的IP

    端口与服务识别除了基本的IP扫描,它还能识别远端主机的名称、目前开启的通信端口,以及IP的运作状况等详细信息,让你完全掌握对方主机的运作状况

    多种导出格式扫描完成后,你可以将结果导出为TXT、CSV、XML或IP端口列表文件,方便进一步分析或存档,这个功能对需要做文档记录的网络管理员特别有用

    跨平台运行它可以在Linux、Windows和Mac OS X上运行,而且不需要安装,下载后直接就能使用,这对经常在不同系统环境下工作的人来说非常方便

    插件扩展功能任何懂Java编程的人都可以为它编写插件,扩展其功能,这种开放性设计让它可以适应各种特殊的扫描需求

    命令行支持除了图形界面,它还提供命令行界面,这让自动化扫描和集成到脚本中成为可能,适合高级用户和系统管理员

    安装指南

    • Windows用户,可以直接从官方站点下载可执行文件,无需安装,解压后运行exe文件即可
    • Ubuntu/Debian用户,可以使用命令
      sudo dpkg -i ipscan_3.0-beta6_i386.deb
      

      来安装deb包,如果遇到依赖问题,执行sudo apt install -f来解决

    开源地址https://github.com/angryip/ipscan
    

     

     

  • 探索Linkwarden:一款能自动截图存档的开源书签管理器

    探索Linkwarden:一款能自动截图存档的开源书签管理器

    在平时工作学习中,我们总会遇到一些值得收藏的网页,但头疼的是,很多链接没过多久就失效了,辛苦保存的信息说没就没

    最近在 GitHub 上发现一个叫 Linkwarden 的开源项目,它不仅仅是个书签管理器,更像一个私人网页档案馆,能自动给每个网页截图、保存 PDF,即使原链接挂了,你的内容也丢不了。对于喜欢自己部署服务、注重数据隐私,或者需要团队协作整理资料的朋友来说,这款自托管的工具可能正是你找了很久的解决方案

    Linkwarden是什么

    Linkwarden 是一个开源的、自托管的协作式书签管理器,致力于通过自动存档网页截图与PDF的方式,对抗“链接失效”问题,帮助用户一站式收集、整理和永久保存网络上有价值的链接

    开源成就

    • Star数 GitHub 上已经吸引了 15.4k 星
    • 主开发语言 TypeScript

    核心功能

    全方位网页存档添加链接时,Linkwarden 会自动捕获该网页的截图、PDF和HTML文件并本地保存,即使原始网页因各种原因无法访问,你依然能查看当时保存的内容

    高效的整理与协作你可以用集合、标签来分门别类地整理链接,支持与团队成员共享集合并协作,共同收集和管理资料

    沉浸式阅读与标注提供干净的阅读视图,让你专注于内容,你还可以在保存的页面上高亮文本、添加注释,方便后续回顾和提炼重点

    强大的检索能力支持全文搜索,你可以通过关键词、标签、集合等多种条件快速定位到你想要的链接,再也不用在杂乱的书签堆里大海捞针

    便捷的浏览器集成提供了浏览器扩展,让你在浏览网页时能一键将链接保存到自己的 Linkwarden 库中,非常方便

    灵活的数据掌控支持从其他平台导入书签,也允许你随时导出自己的数据,完全掌控自己的信息,避免被服务绑定

    安装指南

    • 基础依赖:Linkwarden 需要 PostgreSQL 数据库作为后端支撑,在部署前请确保你已准备好可用的数据库环境

    • 推荐部署方式:官方推荐使用 Docker Compose 进行部署,你只需准备好一个包含数据库和服务设置的 docker-compose.yml 文件,通过一条命令即可启动所有服务

      git clone https://github.com/linkwarden/linkwarden
      cd linkwarden
      docker compose up -d
      
    开源地址https://github.com/linkwarden/linkwarden
    

  • 资源搜索效率翻倍,用Docker给NAS装个PanHub一键聚合全网资源

    资源搜索效率翻倍,用Docker给NAS装个PanHub一键聚合全网资源

    还在为找资源翻遍几十个网站?还在为切换不同网盘反复搜索而烦恼?PanHub的出现,让这一切成为过去式。
    PanHub是一款聚合网盘资源的搜索工具,支持百度网盘、阿里云盘、夸克、迅雷、115、天翼云盘、123网盘、移动云盘、UC网盘等众多网盘平台。它不需配置网盘授权信息,开箱即用,主打一个”资源采集”,可以轻松实现网盘资源一键搜索与分类跳转。

    今天,「lee poet」就带你部署一个堪称 “网盘资源界超级搜索引擎” 的Docker神器——PanHub!它的口号简单粗暴:一次搜索,全网网盘,直接给你结果!

    零配置即用:内置海量网盘频道,无需手动配置授权或Cookie,开箱即用。无需映射文件,直接搜索资源并跳转转存,搜索结果可快速跳转转存,无需繁琐操作。支持十余种主流网盘资源分类展示,一次搜索即可覆盖阿里云盘、夸克、百度网盘、115、迅雷等热门网盘资源。默认先给出”快速结果”,随后自动补全”深度结果”并覆盖显示,按相关度和速度排序。不依赖网盘账号授权,避免敏感信息泄露,轻量部署,无广告、无追踪,使用更安心。

    【 PanHub 

    PanHub是啥?它是你的“资源猎手”!

    简单说,PanHub 是一个免费、开源、聚合了众多优质网盘资源站和公开频道的搜索工具

    PanHub原生支持Cloudflare Workers,0服务器运维成本,免费起步。同时支持Docker部署,无论是VPS、NAS还是云服务器,都能轻松部署。采用MIT License开源许可,免费开源、零广告、轻量部署。内置多插件,支持按需启用/禁用,参数化并发与缓存,可根据实际需求灵活配置。

    【不正经比喻时间】

    你传统的找资源方式:像在一个巨大的跳蚤市场里瞎逛。每个摊位(搜索网站)都得问一遍,大部分摊主还爱答不理(链接失效/要你关注)。

    你用PanHub之后:像拥有了一个专属的、神通广大的“采购助理”。你只需要下达一个指令(关键词),他就会瞬间问遍市场上所有靠谱的摊位,然后把阿里、夸克、百度、115、迅雷…的现货(有效链接)整齐地摆在你面前,任君挑选。

    说人话就是: 它帮你把那些散落在互联网角落的、专门分享网盘资源的网站和频道全部打包,做了一个统一的、干净的、无广告的搜索接口。你,就是资源的终点站。无论你是NAS用户、影视爱好者,还是需要频繁查找资源的普通用户,PanHub都能为你提供高效、便捷的网盘搜索体验。接下来,让我们一步步学习如何在Docker环境下部署和使用PanHub。

    实战:一键部署,召唤你的“资源猎手”

    部署过程依旧是我们最爱的、优雅的Docker-Compose大法。

    第一步:创建它的“小单间”

    • 在你的NAS上,比如在 docker 文件夹里
    • 新建一个 panhub 目录。

    第二步:编写 docker-compose

    • 打开飞牛桌面上的Docker界面 -> Compose
    • 写一个项目名称,选择储存路径

      (例如你之前创建的目录/vol2/1000/docker/panhub

    • 创建 docker-compose.yml 文件,把下面的“咒语”复制粘贴进去
    services:
      panhub:
        image: wu529778790/panhub.shenzjd.com:latest
        container_name: panhub
        ports:
          – “3021:3000”
        # 左边3021是你访问的端口,随便改!右边别动!
        restart: unless-stopped

    参数精讲(为啥这么搞):

    • 端口映射:3021 可以换成任何你喜欢的端口,避免冲突。
    • 极简设计:它本身只是一个“搜索中转站”,不存你的数据,所以连 volumes 挂载都可以省略,真正做到 用完即走,不沾身

    第三步:启动!!

    • 启动 -> 自动拉取镜像并构建坐等完成。
    • 打开浏览器,访问:http://你的飞牛NAS IP:3021

    恭喜! 一个干净、极简的搜索页面已经加载完毕!那个孤零零的搜索框,就是你通往资源新世界的大门!

    灵魂操作:如何像“资源大佬”一样优雅搜刮

    界面极其简单,但功能极其凶残。

    1. 输入关键词,见证魔法

    • 搜索框里,输入任何你想找的东西,比如 《名侦探柯南》、《哪吒之xxx》、《罗小黑战记》等。
    • 按下回车或点击搜索。

    2. 观察“智能排序”的威力

    • 第一波:“快速结果”:几乎在瞬间,屏幕上就会弹出第一批资源。这是PanHub从响应最快的源里抓取的结果,让你不用等待
    • 第二波:“深度结果”:稍等几秒钟,更多、更全面的资源会陆续加载出来,并自动覆盖掉之前可能不完整的结果。这种感觉,就像撒了一张大网,先捞上来小鱼,再等大鱼入网

    3. 享受“分门别类”的便捷

    • 所有的结果会清晰地按照 阿里云盘、夸克网盘、百度网盘、115、123、uc、迅雷 等 来源分好类。
    • 找到你想要的结果,点击内容直接调整指定页面。
    • 然后……你就可以打开对应的网盘APP,享受秒存的快乐了!

    整个流程,从搜索到复制链接,不超过10秒钟。你再也无需打开N个浏览器标签页,忍受各种弹窗广告了。

    • 外网访问(非必须):配合我们之前教过的 Lucky反向代理,给它分配一个如 panhub.abc.com 的域名,你在全世界任何一个角落,都能畅听你库里的所有歌曲!

    “但是”时间:保持清醒,做守法公民

    PanHub虽强,但我们必须认清它的边界和风险:

    • 【资源来源】: 它搜索的是互联网上公开分享的资源。资源的准确性、完整性、安全性(尤其是可执行文件)需要你自己判断。下到葫芦娃里不一定是葫芦娃!
    • 【版权风险】: 这是一个灰色地带。请务必尊重版权,用于搜索学习和已获授权的内容,不要用于商业用途和传播盗版。支持正版,才是长久之计。
    • 【链接时效】: 网盘链接是有生命周期的。PanHub不保证每个链接都有效,但它能帮你用最快的方式找到当前最可能有效的链接。
    • 【轻量工具】: 它就是一个搜索聚合器,没有会员、没有加速、不能破解网盘限速。该开网盘会员还得开。

    结论: 把它当作一个效率工具,它能极大提升你“找资源”的效率。但它不生产资源,它只是资源的搬运工。

    行动号召:是时候提升你的资源搜索效率,告别信息乞丐了

    技术存在的意义,是让你生活得更爽,而不是更复杂。

  • 揭秘“空壳”网站:用Cloudflare免费全家桶,聚合全网影视资源

    揭秘“空壳”网站:用Cloudflare免费全家桶,聚合全网影视资源

    你大概率在网上刷到过一些界面精美、资源看起来很全的影视网站。点开即播,没有广告,体验甚至比一些正规 App 还要好。一个普遍的疑问是:维护这样的网站,服务器和带宽成本应该是个天文数字,站长们是怎么做到的?

    答案可能让你意外:他们根本没有服务器,甚至连视频资源在哪都未必知道。

    “空壳”网站是一种创新的建站理念——它不存储任何视频文件,而是通过智能聚合技术,实时抓取和解析全网影视资源,实现”万物皆可播”的效果。这种”采播分离”的架构,让你无需购买昂贵的服务器和存储设备,仅需一个浏览器就能搭建起功能完整的影视聚合平台。

    借助 Cloudflare 提供的免费全家桶,任何人都可以搭建一个类似的“空壳”网站。今天,我们不谈代码部署(因为像 MoonTV、LibreTV 这样的开源项目已经把步骤写得非常简单了),我们来深入聊聊它背后的魔法:这个“空壳”是如何撬动全网资源的?以及,你该如何像一个专业站长那样,让你的“片库”实现自动化、无限地扩充?

    为什么选择Cloudflare?

    Cloudflare作为全球领先的CDN和边缘计算服务商,提供了完整的免费解决方案:

    • loudflare Workers:零服务器成本的边缘计算平台,支持JavaScript和WASM,可运行复杂的聚合逻辑
    • loudflare Pages:免费静态网站托管服务,支持自动部署和全球CDN加速
    • loudflare R2:兼容S3的免费对象存储,适合存储配置文件和元数据
    • loudflare DNS:免费且快速的DNS解析服务,支持IPv6和智能路由

    核心优势

    零成本运营:无需购买服务器、存储和带宽,Cloudflare全家桶完全免费,真正实现零成本建站。全球加速:Cloudflare的全球CDN网络,确保用户无论身处何地,都能获得快速稳定的访问体验。自动更新:通过定时任务和Webhook,自动抓取最新影视资源,保持内容持续更新。隐私安全:不存储用户数据,不记录观看历史,保护用户隐私。技术门槛低:无需复杂的服务器运维知识,只需掌握基础的JavaScript和HTML即可上手。

    适用场景

    • 人影视库:搭建专属的影视聚合站,告别剧荒
    • 术学习:学习Cloudflare Workers和边缘计算技术
    • 目演示:快速搭建演示项目,展示技术能力
    • 容聚合:聚合特定领域的视频资源,提供一站式服务

    无论你是技术爱好者、影视迷,还是希望学习Cloudflare技术的开发者,本指南都将带你从零开始,一步步搭建属于自己的”空壳”影视网站。接下来,让我们开始这段奇妙的建站之旅。

    MoonTV: https://github.com/samqin123/MoonTV

    LibreTV: https://github.com/LibreSpark/LibreTV

    image-20251021090614075

    核心模式:采播分离,网站只做“搬运工”

    理解这类网站的关键,在于四个字:采播分离

    • 采集(采):指的是内容的收集、整理和更新。这是最脏最累的活。
    • 播放(播):指的是内容的展示和播放。这是我们看到的网站。

    传统模式下,一个站长需要自己做所有事。但在今天的生态里,这两件事已经由完全不同的人分工完成了。有一批专业“资源站”,他们负责搞定所有采集工作,然后通过标准化的API接口,把整理好的数据提供出来。

    image-20251021090928028

    而我们用 Cloudflare 搭建的网站,其本质就是这个生态里的“播放”端。它本身不生产内容,只是API数据的“搬运工”和“展示柜”

    它的工作流程是这样的:

    1. 搭建前端“展示柜”:我们看到的网站界面,用 Vue 或 React 构建,部署在 Cloudflare Pages 上,保证全球秒开。
    2. 设置API“中间人”:使用 Cloudflare Workers 作为一个轻量级的后端。它的唯一任务,就是去调用上游“资源站”的API。
    3. 对接数据“总仓库”:网站启动时,Workers 向指定的资源站API发送请求(比如“请给我最新的20部电影”)。
    4. 渲染内容:Workers 拿到API返回的JSON数据(包含了片名、海报、播放地址等),稍作处理,再喂给前端“展示柜”,用户就能看到琳琅满目的内容了。

    整个过程,视频流量完全不经过你的网站,API请求的消耗也极低。Cloudflare 的免费额度,绰绰有余。

    如何找到“资源站”API?

    这才是这篇文章的精髓。让你的网站从一个玩具变成一个真正可用的工具,关键在于你能否找到稳定、高质量的“资源站”API,并把它对接到你的“管道”里。

    普通人找资源是找片子,而一个站长的思路是找“提供片子列表”的人

    以下是几个寻找API的有效思路:

    • 思路一:关键词搜索,进入专业圈子搜索引擎是你最好的朋友,但关键在于用对词。不要搜“XX电影在线看”,而要用站长和开发者的黑话去搜,例如:

    image-20251021090551495
      • “苹果CMS 资源站”
      • “免费影视API接口”
      • “JSON影视数据源”
      • “视频采集API” 
      • 通过这些关键词,你找到的不再是消费内容的网站,而是提供数据接口的“上游供应商”。这些网站通常会直接提供API的接入文档。
    • 思路二:逆向工程,分析现有网站
    • 这是最直接有效的方法。随便找一个你觉得不错的同类网站,打开浏览器的“开发者工具”(F12),切换到“网络(Network)”面板,然后进行一些操作(比如翻页、搜索)。 在网络请求列表里,重点关注 XHR/Fetch 类型的请求。你会发现一些规律性的API调用,比如 …/api.php?ac=videolist&t=… 或 …/api/v1/videos?page=…。
    • 这个请求的URL,就是这个网站正在使用的API接口。你可以尝试直接在浏览器里打开这个URL,如果能看到返回一大堆JSON格式的数据,恭喜你,你找到了它的“数据动脉”。
    image-20251021090752814
    • 思路三:混迹于站长社区和交流群
    • 很多API资源并不是完全公开的,而是在一些小圈子里流传。你可以去一些技术论坛、站长社区(比如搜索与“建站”、“源码”相关的论坛),或者Telegram上的相关技术群组。在这些地方,信息交换更为频繁,你可能会发现一些不对外宣传的优质资源站。

    一旦你找到了API接口,接下来要做的就很简单了:根据 MoonTV 或 LibreTV 这类项目的配置说明,把你找到的API地址填进去,重新部署即可。

    通过这种“采播分离”的模式,你的网站内容就实现了自动化更新。上游资源站更新了什么,你的网站就自动显示什么。这才是零成本、高效率运营这类网站的真正秘诀。

  • 告别链接失效:开源工具 ArchiveBox 的完整网页存档方案

    告别链接失效:开源工具 ArchiveBox 的完整网页存档方案

    在瞬息万变的互联网时代,你是否曾经历过这样的场景:精心收藏的网页链接,几天后却变成了冰冷的”404 Not Found”;那份至关重要的研究资料,在你最需要时却显示”内容已被删除”。在信息爆炸却又转瞬即逝的数字海洋中,我们每天都在面临宝贵内容消失的风险。ArchiveBox作为一款开源的自托管网页归档工具,正是为解决这一痛点而生。它能够将任何有价值的网页完整地保存到本地,包括文字、图片、PDF甚至音视频内容,建立你自己的私人数字图书馆。简单来说,它就像是一个”时光机器”,能够捕捉网页在某一时刻的完整状态,让你在任何时候都能重新访问当时的内容。

    以前经常用 Internet Archive 来保存网页内容,但也有不少问题,存下来的页面内容经常缺东少西,视频播放不了,图片加载不出来。

    所以需要集中工具配合着用,单靠一个不太够。

    直到最近,在 GitHub 看到一个叫 ArchiveBox 的开源项目,狂揽了 25000+ Star,专门用来保存网页内容。

    ArchiveBox是一款开源自托管网页归档工具,支持HTML、PDF、PNG截图、视频等多种格式永久保存网页内容。通过Docker或pip快速部署,支持浏览器扩展一键保存、定时自动抓取、全文搜索等功能,让你彻底掌控自己的数字记忆,告别404链接失效。GitHub已收获25K+ Star,是个人知识管理和网页内容备份的终极解决方案。

    相当于给每个网页做了多重备份,就算某个格式以后打不开了,还有其他方式能看。

    img

    多格式存档,怎么都能打开

    ArchiveBox 存档一个网页的时候,会同时生成多份不同格式的备份。

    比如用浏览器渲染后生成 PDF 和截图,用 wget 下载完整的 HTML+CSS+JS 文件,还会用 SingleFile 把整个页面压缩成单个 HTML 文件。

    这样做的好处就是,十年后就算某个技术淘汰了,你还有其他格式可以查看。

    Screenshot of ArchiveBox dashboard

    视频音频都能下载

    如果是 YouTube、Bilibili 这类视频网站,ArchiveBox 还能把视频文件直接下载下来,甚至连字幕和封面图都不漏。

    另外像 SoundCloud 的音频、Twitter 的帖子和评论,也都能完整保存。对经常想要收藏教程视频或者音乐的朋友来说真的很实用。

    img

    代码仓库一键克隆

    如果碰到 GitHub 或 GitLab 的链接时,ArchiveBox 会自动克隆整个代码仓库到本地。

    不光是当前版本,连历史提交记录都在,相当于把整个项目搬回家了。

    img

    另外几个值得一说的实用功能:

    浏览器扩展:提供插件安装,可以一边浏览网页一边随手保存,不用每次都复制链接;

    定时抓取:可以从 Pocket、RSS 订阅源自动导入链接,设置成每天或每周定时存档;

    Web 管理界面:除了命令行,还有个网页界面可以打标签、搜索、查看日志;

    数据格式通用:存的都是 HTML、JSON、PDF 这些标准格式,不需要专门软件就能打开,放十几年都不怕。

    三步安装,轻松上手

    项目提供了 Docker 快速部署方式,只需要三步就能搞定:

    1、建个目录,下载配置文件:

    mkdir-p ~/archivebox/data && cd ~/archiveboxcurl-fsSL'https://docker-compose.archivebox.io' > docker-compose.yml

    2、初始化一下:

    docker compose run archivebox init --setup

    3、启动服务:

    docker compose up

    打开 http://localhost:8000 就能用了。

    不想用 Docker 的话,pip 本地安装也可以,并且支持 Linux、macOS、Windows 系统。

    image-20251021105940137

    写在最后

    经常收藏链接的人可以试试这工具,特别是做研究、写文章需要引用资料的时候。

    项目开源免费,数据全存自己电脑上,不用担心第三方服务哪天倒闭了。

    就是比较占硬盘空间,特别需要保存视频的可能不动就是几个 G。还有一些需要登录才能看的内容,设置起来会稍微麻烦点。

    不过话说回来,与其担心某天链接失效找不回来,不如提前存一份在本地。

    就像给重要内容买了个备份,用不用得上另说,起码心里踏实。

    GitHub 项目地址:https://github.com/ArchiveBox/ArchiveBox

    今天的分享到此结束,感谢大家抽空阅读,我们下期再见,Respect!