使用Docker部署BookLore图书管理

前缀、文档修改记录

20260820 初始化编辑此文章,完稿

章节1、需求描述

这些年,大概陆续攒了1万本左右的PDF,电子书,平时管理也没有很细致,突发奇想,看能不能基于Docker环境下的BookLore来管理这些电子书,让“阅读”伟大again。

章节2、方案选择

先尝试使用BookLore进行图书管理的方案,因为我这里更多是PDF格式的文件,包括很多古籍PDF,看GPT提示的,这个可能更适合我的使用场景。

BookLore 官方目前推荐使用 Docker Compose 部署,默认是 BookLore + MariaDB 两个容器;BookLore 默认监听 6060 端口,官方要求至少约 2 GB RAM,推荐 4 GB+。

目录结构

root@server# mkdir -p /opt/booklore/{data,bookdrop}
root@server# mkdir -p /data/books

/opt/booklore/
├── data/ # BookLore自身数据、配置、缓存、元数据
├── bookdrop/ # 自动导入目录
└── docker-compose.yml

/data/books/ # 你的几万个PDF,真正的图书库

需要将 /app/data、/books、/bookdrop 分别持久化

章节3、 创建 Docker Compose配置文件

root@server# cd /opt/booklore

创建并编辑 docker-compose.yml , 其中的密码参数,根据你们自己的需要设置

services:

  booklore:
    image: ghcr.io/booklore-app/booklore:latest
    container_name: booklore

    environment:
      - USER_ID=0
      - GROUP_ID=0
      - TZ=Asia/Shanghai

      - DATABASE_URL=jdbc:mariadb://mariadb:3306/booklore
      - DATABASE_USERNAME=booklore
      - DATABASE_PASSWORD=请修改成你的数据库密码

      - DISK_TYPE=LOCAL
      - SWAGGER_ENABLED=false

    depends_on:
      mariadb:
        condition: service_healthy

    ports:
      - "6060:6060"

    volumes:
      - /opt/booklore/data:/app/data
      - /data/books:/books
      - /opt/booklore/bookdrop:/bookdrop

    restart: unless-stopped

    healthcheck:
      test: wget -q -O - http://localhost:6060/api/v1/healthcheck
      interval: 60s
      retries: 5
      start_period: 60s
      timeout: 10s


  mariadb:
    image: lscr.io/linuxserver/mariadb:11.4.8
    container_name: booklore-mariadb

    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai

      - MYSQL_ROOT_PASSWORD=请修改成ROOT密码
      - MYSQL_DATABASE=booklore
      - MYSQL_USER=booklore
      - MYSQL_PASSWORD=请修改成你的数据库密码

    volumes:
      - /opt/booklore/mariadb:/config

    restart: unless-stopped

    healthcheck:
      test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"]
      interval: 5s
      timeout: 5s
      retries: 10

根据dockerhub上的BookLore 镜像和 MariaDB 镜像来构建的。

章节4、 启动docker compose

root@server# cd /opt/booklore
root@server# docker pull ghcr.io/booklore-app/booklore:latest   # 拉取所需镜像
root@server# docker compose pull    # 拉取所需镜像
root@server# apt install -y docker-compose-plugin   # 安装 Compose 插件
root@server# docker compose config    # 检查配置有没有错误
root@server# docker compose up -d    # 启动
root@server# docker compose ps -a      # 查看状态
root@server# docker compose stop     # 停止
root@server# docker compose down     # 停止并删除容器

章节5、 浏览器访问登录

进入 Web 界面后进行首次管理员账号注册/初始化,全新安装,按页面提示创建管理员账号即可

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

LVM的文件系统满了后的在线热扩容

前缀、文档修改记录

20250819 初始化编辑此文章,完稿

章节1、需求描述

尴尬,小气,分了1个12G磁盘的文件最小镜像,解压我一个字体包,系统分区就满了,因为是部署在PVE虚拟化环境,直接热升级容量即可。系统为Debian默认安装文件分区。

章节2、扩容步骤

在位置为 虚拟机/Hardware硬件/Disk Action磁盘操作/改大小Resize ,输入30G,将原来的12G磁盘扩容到42GB

在系统内,通过lsblk命令,查看,可看到 sda磁盘,已经是42G的容量了。

查看当前分区情况 parted /dev/sda print 或者 fdisk -l /dev/sda

扩的步骤:

扩硬盘 
↓ 
扩sda2 extended 
↓ 
扩sda5 logical 
↓ 
pvresize 
↓ 
lvextend 
↓
扩文件系统

使用更现代化的parted来执行相关磁盘操作

root@server~# apt install parted

扩容分区 parted /dev/sda

root@server~# parted /dev/sda
GNU Parted 3.5
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 45.1GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  512MB   511MB   primary   ext2         boot
 2      513MB   12.9GB  12.4GB  extended
 5      513MB   12.9GB  12.4GB  logical                lvm

(parted) resizepart 2 100%                                                
(parted) print                                                            
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 45.1GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  512MB   511MB   primary   ext2         boot
 2      513MB   45.1GB  44.6GB  extended
 5      513MB   12.9GB  12.4GB  logical                lvm

(parted)                                                                  

Information: You may need to update /etc/fstab.

root@server~# 

重新读取分区表

root@server~# partprobe /dev/sda

确认 sda2 已扩容 lsblk 和 parted /dev/sda print

扩容 sda5

root@server~# parted /dev/sda 
GNU Parted 3.5
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) resizepart 5 100%   
(parted) print                                                            
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 45.1GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  512MB   511MB   primary   ext2         boot
 2      513MB   45.1GB  44.6GB  extended
 5      513MB   45.1GB  44.6GB  logical                lvm
(parted) 

扩容 LVM PV卷

root@server~# pvresize /dev/sda5
  Physical volume "/dev/sda5" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
root@server~# pvs
  PV         VG        Fmt  Attr PSize   PFree 
  /dev/sda5  Chrome-vg lvm2 a--  <41.52g 30.00g
root@server~# 

扩容LVM LV卷

root@server~# lvextend -l +100%FREE /dev/mapper/Chrome--vg-root
  Size of logical volume Chrome-vg/root changed from 10.56 GiB (2704 extents) to 40.56 GiB (10384 extents).
  Logical volume Chrome-vg/root successfully resized.
root@server~# 

扩容文件系统

看文件系统类型:
如果为 ext4 文件系统 resize2fs /dev/mapper/Chrome--vg-root
如果为 xfs 文件系统 xfs_growfs /

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

通过Docker部署Stirling-PDF工具集

前缀、文档修改记录

20260819 初始化编辑此文章,完稿。 实际测试下来,这个版本对于自定义中文字体的支持很弱

章节1、需求描述

需要1个网页能编辑PDF的环境,这样可以避免本地安装那么多PDF乱七八糟的工具。自己主要是偶尔编辑一下PDF的编辑文字,插修页,压缩到特定投标所需的大小等常规功能。

章节2、方案选择

因为期待的方案越简单约好,就查了一下资料,目前Stirling-PDF是比较符合要求的1个方案,直接使用docker在linux环境部署即可。

官方现在给出的资源建议也比较明确:小团队 2 核/4GB,大一点的使用场景 4–8 核/8–16GB;磁盘建议从 10GB 到 50GB+,SSD 更合适。

我这个百页级别的PDF修改,还是直接到8G的内容容量合适一下。

我服务器环境是 Debian 12 , 6C-vCPU 8G-RAM 42G-SSD 这样的配置,基本CPU/MEM给足了,自己用的,磁盘不必很大。

章节3、部署过程

这里省略部署Docker的过程。

在宿主机环境,创建1个目录,准备一些常用的字体文件,不然,启动后,没有所需的输入字体。

root@server~# mkdir /usr/local/share/fonts/
root@server~# cd /usr/local/share/fonts/
root@server~# wget http://10.11.11.200/fonts.20260819.tar.gz
root@server~# /usr/local/share/fonts# tar -zxvf fonts.20260819.tar.gz
root@server~# /usr/local/share/fonts# mv ./fonts/*ttf  ./
root@server~# /usr/local/share/fonts# mv ./fonts/*otf  ./
root@server~# /usr/local/share/fonts# mv ./fonts/*ttc  ./

删除前面已经启动的2个容器,唉,踩坑,文字编辑能力差,字体太少了

root@server~# docker ps -a
CONTAINER ID   IMAGE                                               COMMAND                  CREATED      STATUS                      PORTS     NAMES
1dff95b3b53b   docker.stirlingpdf.com/stirlingtools/stirling-pdf   "tini -- /scripts/in…"   7 days ago   Exited (0) 52 minutes ago             hardcore_elion
24ce2b54190c   docker.stirlingpdf.com/stirlingtools/stirling-pdf   "tini -- /scripts/in…"   7 days ago   Exited (0) 52 minutes ago             xenodochial_kowalevski
root@server~# docker rm 1dff95b3b53b
1dff95b3b53b
root@server~# docker rm 24ce2b54190c
24ce2b54190c
root@server~# 

Docker启动的命令步骤:

root@server~# docker pull docker.stirlingpdf.com/stirlingtools/stirling-pdf
root@server~# docker run -d --name stirlingpdf -p 80:8080 -v /usr/local/share/fonts:/usr/share/fonts/truetype/custom:ro docker.stirlingpdf.com/stirlingtools/stirling-pdf
5f977c44b55a5fc3522e88f9a6e54f0c6c42abe584c39a5bcb41821ec91745d8
root@server~# docker exec stirlingpdf fc-cache -f
root@server~# 

部署完成后,网页登录即可 http://服务器IP:80/

初始的账号密码信息,首次登录的时候,记得修改密码。
Username: admin
Password: stirling

登录进去后,点击左下角的设置,选择General通用,选择Language语言,选择简体中文

就当是体验了,用于PDF文件的压缩,制作目录,调整页码顺序,添加水印等常用功能没啥问题。 反而编辑PDF的文字,字体缺,有点不好弄,支持力度弱,就当自己体验一下。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

关于Anthropic/Claude相关域名规则集

前缀、文档修改记录

20260512 初始化编辑此文章,完稿

章节1、需求描述

收集整理Claude的相关域名规则

章节2、高级添加方式,规则集

# Anthropic & Claude Core 
# 2026-5-12
DOMAIN-SUFFIX,anthropic.com,PROXY
DOMAIN-SUFFIX,claude.ai,PROXY
DOMAIN-SUFFIX,sentry.io,PROXY
DOMAIN-SUFFIX,intercom.io,PROXY
DOMAIN-SUFFIX,intercomcdn.com,PROXY
DOMAIN-SUFFIX,cloudflareinsights.com,PROXY
DOMAIN-SUFFIX,usefathom.com,PROXY
DOMAIN-SUFFIX,siftscience.com,PROXY
DOMAIN-SUFFIX,googleapis.com,PROXY
DOMAIN,play.googleapis.com,PROXY
DOMAIN,browser-intake-us5-datadoghq.com,PROXY

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

物理设备部署安装openwrt系统

前缀、文档修改记录

20260417 初始化编辑此文章,完稿。 因软件更新和版本问题,技术课程有一定的时效,仅供参考。

章节1、需求描述

all in one 容易出现设备炸了,全部功能无法使用,于是乎,家里,还是需要把路由功能从all in one里面拆开,这样的好处是,即便all in one的设备挂了,我家里的网络还是okay的。故而,选择单独一台2网口的小主机部署openwrt即可。

章节2、 环境描述

2.5英寸的移动硬盘盒1个

120GB的2.5英寸的固态硬盘1个

网线2根

双网口的D525处理器的小主机1个

用于刷机的Windows主机1台

章节3、 软件准备

1、 openwrt官网: https://downloads.openwrt.org/ , 下载最新的镜像文件,目录路径为: https://downloads.openwrt.org/releases/25.12.2/targets/x86/64/,我这里,因为是旧D525的处理器,下载 ext4 / 非uefi的固件generic-ext4-combined.img.gz ,你们买的新款的小主机,基本都是要下载 ext4 / uefi的固件 generic-ext4-combined-efi.img.gz

我这里下载到的文件: openwrt-25.12.2-x86-64-generic-ext4-combined.img.gz 日期 2026-4-17

2、 rufus官网:https://rufus.ie/downloads/ , 下载最新的rufus程序,用于写openwrt镜像到移动硬盘。

我这里下载到的文件: rufus-4.13.exe 日期 2026-4-17

章节4、 写入镜像

在Windows电脑上,解压 文件: openwrt-25.12.2-x86-64-generic-ext4-combined.img.gz ,得到格式为.img的镜像文件,使用rufus写入到2.5英寸的固态硬盘,写入过程很快,不到1分钟就可以完工。

章节5、 Openwrt初始化配置

电脑网口配置1个 192.168.1.101 / 255.255.255.0 的私网地址,使用电脑的任意浏览器登录

https://192.168.1.1   

默认用户名 root   
默认密码 空
修改,系统,系统,常规设置,主机名: GW
修改,系统,系统,常规设置,时区: Asia/Shanghai 
修改,系统,管理权,SSH访问,接口,LAN
修改,系统,管理权,HTTP(S)访问,勾选 重定向到https
修改,网络,接口,确认LAN/WAN端口工作于哪个物理端口,贴标签纸
修改,网络,接口,WAN口,协议,PPPoE,输入自己的宽带账号,宽带密码
修改,网络,接口,LAN口,修改LAN的ipaddr,到10.X.X.X的内网网段,这个可以不设置,我自己用10的段,习惯了。
系统,关机

章节6、 安装常态需要的软件并扩容文件系统

我整个固体硬盘是120GB的,系统内只占用了100多个MB,需要扩容一些容量进文件系统,通过Powershell之类的SSH工具登录进openwrt系统,如下的操作,是扩容50G的容量进文件系统。

// 如果为2.5英寸的SSD盘
apk update
apk add parted losetup resize2fs blkid unzip lsblk losetup
parted -s /dev/sda resizepart 2 50GB
losetup -a
losetup /dev/loop0 /dev/sda2
resize2fs -f /dev/loop0
reboot

章节7、 安装中文界面

还是命令行里面,执行如下的命令,即可安装中文的语言包

apk add luci-i18n-base-zh-cn

安装完毕之后,不必重启,直接刷新openwrt的网页,即可看到中文,如果没有,则在路径 系统,系统,语言界面的路径下,语言选择 简体中文,保存并应用。

常规来说,安装到这里,一个稳定的路由器系统,就安装完成了。

章节8、 安装软件passwall

首先,还是在命令行中,安装必要的依赖软件。

apk add coreutils 
apk add coreutils-base64
apk add coreutils-nohup
apk add curl
apk add ip-full
apk add libuci-lua
apk add lua
apk add luci-compat
apk add luci-lib-jsonc
apk add resolveip
apk add ca-bundle 
apk add libev
apk add libuv
apk add libpcre2
apk add iptables-nft kmod-nft-socket kmod-nft-tproxy
apk add haproxy

因为国内环境,还是用文件本地下载后,传到路由器,然后安装,会比较稳定可靠。

从github下载所需的文件 https://github.com/Openwrt-Passwall/openwrt-passwall/releases 共计下载2个apk文件。

从这里下载所需的依赖组件 https://sourceforge.net/projects/openwrt-passwall-build/files/releases/packages-25.12/x86_64/passwall_packages/ 共计下载33个apk文件。

先安装33个组件,再安装主程序和语言的2个,大概就这样的安装步骤即可。

可以直接全部安装,也可以针对自己用的协议,选择性安装对应的程序。

OpenWrt 的软件包管理器 apk 开启了安全校验,而你下载的第三方 .apk 文件没有包含系统认可的数字签名(或是本地公钥库缺失)。使用 –allow-untrusted 参数,忽略签名验证直接安装。

apk add --allow-untrusted v2ray-geoip-202604090028.1.apk
apk add --allow-untrusted v2ray-geosite-202604122227.1.apk
apk add --allow-untrusted xray-core-26.3.27-r1.apk
apk add --allow-untrusted geoview-0.2.5-r1.apk

apk add --allow-untrusted tcping-0.3-r1.apk

apk add --allow-untrusted shadowsocks-libev-ss-local-3.3.5-r13.apk
apk add --allow-untrusted shadowsocks-libev-ss-redir-3.3.5-r13.apk
apk add --allow-untrusted shadowsocks-libev-ss-tunnel-3.3.5-r13.apk
apk add --allow-untrusted shadowsocks-rust-*apk

apk add --allow-untrusted chinadns-ng-2025.08.09-r1.apk
apk add --allow-untrusted dns2socks-2.1-r2.apk
apk add --allow-untrusted ipt2socks-1.1.4-r3.apk
apk add --allow-untrusted microsocks-1.0.5-r2.apk

上面是我最小化的安装,安装好了,安装主程序的包和语言包。

apk add --allow-untrusted 25.12+_luci-app-passwall-26.4.15-r1.apk
apk add --allow-untrusted 25.12+_luci-i18n-passwall-zh-cn-26.4.15.apk

不用重启,直接网页重新登录一下openwrt即可看到,菜单里多出一个“服务”和“passwall”软件。

修改 passwall/高级设置/转发设置/防火墙/nftables

章节9、 添加自定义脚本的开机启动

编辑文件 /etc/init.d/initscript

#!/bin/sh /etc/rc.common

# 启动优先级,通常 99 是最后启动
START=99
USE_PROCD=1

start_service() {
    procd_open_instance
    procd_set_param command /bin/sh /root/sh/run_command.sh
    procd_set_param respawn  # 如果进程崩溃自动重启
    procd_set_param stdout 1 # 将日志输出到系统日志
    procd_set_param stderr 1
    procd_close_instance
}

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

华为交换机PPP(Point-to-Point Protocol)协议配置学习笔记

前缀、文档修改记录

20260414 初始化编辑此文章,完稿

章节1、需求描述

纯粹记录一下,在eNSP环境上,学习和使用PPP/CHAP的配置过程

章节2、拓扑图

章节3、配置过程服务端R1,模拟运营商侧

[Server] aaa
[Server-aaa] local-user myuser password cipher mypass
[Server-aaa] local-user myuser service-type ppp
[Server-aaa] quit
[Server] interface Serial 0/0/0
[Server-Serial0/0/0] ppp authentication-mode chap
[Server-Serial0/0/0] ip address 10.1.1.1 30

章节4、配置过程,客户端R2,模拟用户侧

[Client] interface Serial 0/0/0
[Client-Serial0/0/0] ppp chap user myuser
[Client-Serial0/0/0] ppp chap password cipher mypass
[Client-Serial0/0/0] ip address 10.1.1.2 30

章节5、 查看接口状态

display interface serial 0/0/0

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

关于openclaw的部署、更新、插件、使用

前缀、文档修改记录

20260315 初始化编辑此文章
20260316 更新内容
20260317 更新内容
20260324 更新内容
20260325 更新内容
20260329 更新内容, 从版本20260322升级为20260328
20260331 更新内容, 版本升级成功,对接微信成功
20260411 更新内容, 优化Windows安装的步骤
20260422 更新内容, 版本升级到20260421
20260504 更新内容, 驱动本地已有的谷歌浏览器,成功,章节9

未完待续

章节1、需求描述

就是记录一下openclaw的部署,插件安装,功能使用。因为绝大部分人,都是习惯用Windows环境,本篇文章会以Windows 10系统为基础环境进行部署的讲解。也会讲解一下基于Ubuntu 24.04系统的部署。

官网: https://openclaw.ai

源码地址: https://github.com/openclaw/openclaw

章节2、openclaw的部署过程

2.1、系统环境Ubuntu 24.04

2.1.1、 资源规格

因为是个人需求,我这里,使用的2C 4G 60G SSD的规格的虚拟机,带宽有3Mbps应该足够了,保持24小时开机运行,操作系统选择Ubuntu 24.04 或者 Debian 13 。

本篇教程使用Ubuntu最新版本的 ubuntu-24.04.4-live-server-amd64.iso 系统。

2.1.2、 官方安装推荐

根据官方最新的安装推荐指南,目前,openclaw支持一键安装,自备水管通github/nodejs的资源才能正常运行哦。

zhangsan@server$  curl -fsSL https://openclaw.ai/install.sh | bash

2.2、 系统环境Windows 10

2.2.1、 资源规格

因为Windows系统占用的资源比Linux多,这里,虚拟机的规格为8C-4G-120G。

环境主要是 cmake, chrome浏览器, git工具, nodejs环境, visual studio。

2.2.2、 安装步骤

安装nodejs的安装包, node-v24.14.0-x64.exe这个安装包, 在Win环境上的安装简单,安装完成后,CMD/Powershell里面运行如下命令,确认安装成功。

// 检查nodejs版本 v24.14.0
node -v

安装pnpm包管理器,运行如下命令

//  管理员,PowerShell中,执行策略限制的释放。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
选择 A
回车

//  管理员Git Bash,安装pnpm
npm install -g pnpm

//  检查版本  v10.33.0
pnpm -v

解压缩openclaw 的源代码的压缩包,我一般就直接放在我这个用户的目录下,这样Git Bash页面中,初始位置就直接可以快速访问到。

C:\Users\admxn\openclaw-2026.3.23

后续的命令,基本都是在Git Bash管理员权限下运行

// 管理员权限
cd 你的路径/openclaw-2026.4.10
//  首先是设置国内的npm源
//  设置国内镜像源 腾讯
pnpm config set registry https://mirrors.cloud.tencent.com/npm/
//  或者
//  设置国内镜像源 淘宝
pnpm config set registry https://registry.npmmirror.com

// 安装依赖,本次更新发现有1234个包,需要比较久的下载和添加时间。 约30分钟
pnpm install
//  构建 UI 与核心,需要进git bash 且为管理员,执行如下的命令
cd C:
cd Users/admxn/openclaw-2026.4.10
pnpm ui:build
pnpm build
pnpm setup    // 全局目录配置

// 关闭原来的Git Bash窗口,重新开启1个Git Bash窗口
cd Users/admxn/openclaw-2026.4.10
pnpm link --global

//  启动初始化openclaw
openclaw onboard --install-daemon
// 如下是基于 2026-4-29 的版本,进行初始化的过程
I understand this is personal-by-default and shared/multi-user use requires lock-down. Continue?
选择  Yes

Setup mode
选择  QuickStart (Configure details later via openclaw configure.)

Model/auth provider
选择  Skip for now

Default model
选择  Keep current (default: openai/gpt-5.5)

Select channel (QuickStart)
选择  Skip for now

Updated ~\.openclaw\openclaw.json
Workspace OK: ~\.openclaw\workspace
Sessions OK: ~\.openclaw\agents\main\sessions

Search provider
选择  Skip for now

Configure skills now? (recommended)
选择  Yes

Install missing skill dependencies
选择  nano-pdf 、 obsidian

Set GOOGLE_PLACES_API_KEY for goplaces?
选择  No

Set NOTION_API_KEY for notion?
选择  No

Set OPENAI_API_KEY for openai-whisper-api?
选择  No

Set ELEVENLABS_API_KEY for sag?
选择  No

Enable hooks?
选择  Skip for now

Config overwrite: C:\Users\admin\.openclaw\openclaw.json (sha256 14f7da4a382e9ff866cc36aef6f3d45653b5f6013e74676db
2a371a6d7e5a2a7 -> 1afd212d1b36fbb126df0d5478382dd4bd3b009d3a8d257cbcd2784e1d7872c7, backup=C:\Users\admin\.opencl
aw\openclaw.json.bak)

Task script: C:\Users\admin\.openclaw\gateway.cmd

How do you want to hatch your bot?
选择  Do this later

章节4、 对接火山引擎的coding plan

我这里的测试环境,对接的是火山引擎的coding plan,40元/月的那个版本

火山引擎的coding plan的购买地址: https://ark.cn-beijing.volces.com/api/coding

火山引擎的模型,各个版本的作用: https://console.volcengine.com/ark/region:ark+cn-beijing/model?groupType=ModelGroups&vendor=Bytedance&view=DEFAULT_VIEW

官方的对接方案:https://www.volcengine.com/docs/82379/2183190?lang=zh

这种对接,都是比较简单的,保存备份一下配置文件,然后编辑配置文件,增加对应的模型的信息,然后openclaw gateway restart 一下,就可以了。

章节5、 对接腾讯的coding plan

腾讯coding plan的购买地址: https://cloud.tencent.com/act/pro/codingplan

章节6、 对接阿里云的coding plan

阿里云coding plan的购买地址: https://www.aliyun.com/benefit/scene/codingplan

官方的对接方案: https://help.aliyun.com/zh/model-studio/openclaw-coding-plan?spm=a2c4g.11186623.0.0.12984c4dTEXDPy

章节7、 openclaw版本升级

我前面都是用pnpm编译安装的,而不是使用内置的更新命令,这种方式的版本更新,对于整个openclaw版本升级工作来说,这个是最稳定的。

已多次使用这个版本升级。

//  构建 UI 与核心,需要进git bash 且为管理员,执行如下的命令
cd C:
cd Users/admxn/openclaw-新版本
pnpm ui:build
pnpm build
pnpm setup 

// 管理员身份,新开git bash 
pnpm link --global

//  完成 pnpm 编译升级后,一定要运行openclaw
openclaw doctor --fix

章节8、 对接微信

在 20260328 版本中,OpenClaw 已经极大地简化了微信(个人微信和企业微信)的接入流程。你可以通过全新的插件系统 ClawHub 快速完成对接。

手机微信,升级到最新版本,设置,我,插件,选择”微信Clawbot”

官方地址:

https://www.npmjs.com/package/@tencent-weixin/openclaw-weixin-cli

npx -y @tencent-weixin/openclaw-weixin-cli@latest install

启动扫码登录,执行以下命令,终端会弹出一个二维码(或显示二维码链接)

openclaw login wechat


首次连接未完成
openclaw channels login --channel openclaw-weixin

完成绑定,使用你的手机微信扫码并确认登录。此时,OpenClaw 会作为一个后台进程接管你的消息。你可以通过 openclaw config 设置哪些好友或群聊可以触发 AI 响应。

章节9、 对接谷歌浏览器

项目地址: https://github.com/ChromeDevTools/chrome-devtools-mcp

官方地址: https://docs.openclaw.ai/tools/browser

9.1、开启调试功能

安装谷歌浏览器,最新的版本,打开谷歌浏览器,然后进 chrome://inspect/#remote-debugging ,开启调试功能。

9.2、 补配置文件参数

"browser": {
    "enabled": true,
    "defaultProfile": "user",
    "profiles": {
      "user": {
        "driver": "existing-session",
        "attachOnly": true,
        "cdpPort": 9222,
        "color": "#FB542B"
      }
    }
  },

9.3、 安装Playwright 浏览器自动化库

在本地机器上直接运行 OpenClaw,终端执行

npm install -g playwright

9.4、 浏览器页面选择同意调试

在打开的谷歌浏览器页面,选择同意调试。

// 实际测试下来,现在功能还是偏向鸡肋的,还没有那么强的处理能力。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

附录3、其他信息

如果要限定安装某个特定版本的docker-ce,则如下执行:

// 注释 安装某个特定版本docker-ce
root@server#  apt list --all-versions docker-ce
docker-ce/noble 5:29.2.1-1~ubuntu.24.04~noble <arch>
docker-ce/noble 5:29.2.0-1~ubuntu.24.04~noble <arch>
root@server#  VERSION_STRING=5:29.2.1-1~ubuntu.24.04~noble
root@server#  apt install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

关于TikTok相关域名规则集

前缀、文档修改记录

20260311 初始化编辑此文章,完稿

章节1、需求描述

章节2、高级添加方式,规则集

# --- TikTok 官方核心域名 ---
DOMAIN-SUFFIX,tiktok.com,PROXY
DOMAIN-SUFFIX,tiktokv.com,PROXY
DOMAIN-SUFFIX,tiktokw.us,PROXY
DOMAIN-SUFFIX,tiktokv.us,PROXY
DOMAIN-SUFFIX,tiktokcdn.com,PROXY
DOMAIN-SUFFIX,tiktokcdn-us.com,PROXY

# --- 静态资源与 CDN 加速 ---
DOMAIN-SUFFIX,ttwstatic.com,PROXY
DOMAIN-SUFFIX,byteoversea.com,PROXY
DOMAIN-SUFFIX,ibyteimg.com,PROXY
DOMAIN-SUFFIX,ibytedtos.com,PROXY
DOMAIN-SUFFIX,myvzw.com,PROXY
DOMAIN-SUFFIX,pstatp.com,PROXY

# --- 广告、分析与 SDK 服务 ---
DOMAIN-SUFFIX,ads-tiktok.com,PROXY
DOMAIN-SUFFIX,ttads.com,PROXY
DOMAIN-SUFFIX,byte-fcdn.com,PROXY
DOMAIN-SUFFIX,appsflyersdk.com,PROXY
DOMAIN-SUFFIX,snapkit.com,PROXY
DOMAIN-SUFFIX,app-analytics-services.com,PROXY
DOMAIN-SUFFIX.onelink.me,PROXY

# --- 登录与第三方验证补充 ---
DOMAIN-KEYWORD,tiktokcdn,PROXY
DOMAIN-SUFFIX,musical.ly,PROXY
DOMAIN-SUFFIX,sgpstatp.com,PROXY
DOMAIN-SUFFIX,snssdk.com,PROXY
DOMAIN-SUFFIX,googleapis.com,PROXY
DOMAIN-SUFFIX,onelink.me,PROXY

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

FreeMediaHeckYeah(简称 FMHY)的官方网站

前缀、文档修改记录

20260301 初始化编辑此文章,完稿

章节1、需求描述

想要为Kindle找点书,如果寻找呢

章节2、网站介绍

FreeMediaHeckYeah(简称 FMHY)的官方网站,官网 https://fmhy.net/

网站定位:数字资源“活地图”,类似原先国内的hao123那种黄页网站,用于导航索引的。

不托管文件:该网站本身不存储任何电影、软件或书籍,它更像是一个精心编排的目录或指南。

资源聚合:它汇总了数千个提供免费内容的网站链接,涵盖了从娱乐到生产力工具的方方面面。

索引的方向:

影视娱乐:电影、电视节目、动漫、直播体育赛事等。

游戏资源:PC 游戏、主机游戏、模拟器及 ROM 镜像。

阅读资料:电子书(E-books)、漫画(Comics)等。

软件工具:各类破解/开源软件、系统工具、视频编辑工具。

AI 资源:最新的大语言模型(LLM)、AI 绘图工具等相关信息。

教育学习:免费课程、学习资料和学术资源。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

Windows系统,装系统时,选择本地账号

前缀、文档修改记录

20260301 初始化编辑此文章,完稿

章节1、需求描述

章节2、本地账号

设置 Windows 账户时输入 no@thankyou.com 或者类似账号 a@a.com 是一种绕过微软强制联网并登录账户的常用“黑招”,创建“本地账户”的选项。

另一种方法:
shift + F10 然后运行 bypassnro.cmd 这是 Windows 11 特有的官方/半官方跳过指令。
执行后系统会重启,并在联网界面增加一个**“我没有 Internet 连接”**的选项,从而实现跳过。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨