小米云相册自动备份至NAS:Xiaomi Album Syncer Docker部署全攻略
在先前探讨小米云笔记备份方案时,曾有读者询问有关小米云相册的备份方法。虽然当时未能立即核实,但本次我们将集中介绍一款名为Xiaomi Album Syncer的开源项目。该工具支持通过Docker快速部署,能够以全量、增量或定时方式下载小米云服务中的相册内容与录音文件至本地存储,并具备多账户分区及计划存储功能,对于拥有多台小米设备的家庭用户尤为便利。
项目概览
该项目的完整名称为Coooolfan/XiaomiAlbumSyncer,用户可在GitHub平台直接搜索获取。当前新版本主要提供基于Web的用户界面,并支持Docker容器、JVM环境以及原生二进制文件等多种部署形式。在进行跨版本升级前,建议使用者仔细阅读Releases页面的更新日志,留意可能涉及的数据库结构变动与破坏性更改。
项目开发者强调,该工具目前仅设计为只读和归档用途,暂不提供双向同步功能。开发者认为对云端数据进行写入操作存在一定风险,因此未来或许会考虑以半手动方式开放相关接口。重要提示:不建议启用任何形式的自动更新机制来升级此工具。
核心功能
- 📸 下载指定相册内的全部媒体资源
- ⏭️ 自动跳过已成功下载的资源文件
- 🎵 支持同步下载录音文件
- 🔄 自动刷新身份验证Cookie
- ⏰ 内置定时任务调度器
- 📥 支持增量下载模式,速度极快
- 🗂️ 可按相册目录分类存储照片
- 🌍 提供直观友好的Web管理界面
- 📅 为照片和视频补全Exif时间戳信息
- 📅 同步设置文件系统的创建修改时间
- 👥 支持配置多个小米账号
- 📃 文件下载路径支持表达式插值(详情参阅项目页面)
- 🔒 可启用SSL加密连接(详情参阅项目页面)
- 🛡️ 集成Passkey安全支持(详情参阅项目页面)
前期准备
与备份小米云笔记的步骤相似,首先需要获取小米云服务的身份验证Cookie,即PassToken与UserId。具体操作流程如下:打开并登录小米云服务网页端,进入首屏显示的「云相册」模块。

接下来,点击页面右上角的用户头像,在下拉菜单中选择「我的小米账号」,页面将跳转至账户信息界面。

如图所示,随后打开浏览器的开发者工具,切换到「应用程序」或「Application」标签页,查找「Cookie」项目。在此列表中,完整复制passToken与userId对应的字符串值,妥善保存以备后续配置使用。

部署步骤
本文以威联通NAS为例,演示通过Docker Compose进行部署的过程。以下是部署配置代码示例:
services: app: image: coolfan1024/xiaomi-album-syncer:latest container_name: xiaomi-album-syncer ports: - "8232:8080" # 冒号左侧端口可自行修改 volumes: # 请注意此为威联通NAS路径示例,请根据实际环境替换 - /share/Container/xiaomi/download:/app/download # 指定备份存储地址 - /share/Container/xiaomi/db:/app/db restart: always
在威联通NAS的Container Station中,创建新的应用程序项目,并将上述配置内容粘贴至编辑区域。

使用指南
完成上述部署后,在浏览器中输入NAS设备的IP地址及端口8232,即可访问Xiaomi Album Syncer的Web管理界面。首次访问时,系统会要求初始化一个服务密码,此密码仅用于保护本工具的管理界面,与小米账号或其他外部服务无关。
开源神器SurveyKing:一键部署专属AI问卷与考试系统
本教程将指导您如何快速部署功能强大的开源问卷与考试系统——SurveyKing。若在部署或使用过程中有任何调整与疑问,欢迎在文末留言交流。
如果您觉得本指南有所帮助,不妨通过“点赞”或“打赏”来表示支持。

SurveyKing被定义为一款极其全面的调查问卷与在线考试解决方案。

其核心优势体现在以下几个方面:
- 🤖 AI 智能创建 - 凭借业界领先的AI问卷生成技术,仅需用自然语言描述需求,即可自动创建出专业级的问卷。
- 📊 丰富的题型支持 - 系统内置超过20种题型,全面涵盖填空题、选择题、矩阵题、签名题等所有主流问卷形式。
- 🎯 强大的逻辑引擎 - 支持实现复杂的题目显示与隐藏规则、页面跳转逻辑以及实时计算等高级业务逻辑。
- 📱 全平台自适应 - 问卷界面能够完美适配PC电脑、移动设备以及微信小程序等各种访问终端。
- ⚡ 一键快速部署 - 通过Docker、宝塔面板等多种方式,最快可在1分钟内完成整个系统的安装与配置。
部署安装指南
使用 Docker Compose 部署
推荐使用Docker Compose方式,能够以最简化的步骤启动服务。请将以下配置内容保存为 docker-compose.yml 文件。
services:
surveyking:
image: surveyking/surveyking:latest
container_name: surveyking
ports:
- 1991:1991
volumes:
- ./db:/app/db
- ./files:/app/files
- ./logs:/app/logs
restart: always
关键参数说明(如需了解更多高级配置,建议查阅官方文档):
/app/db:此目录用于持久化存储系统的数据库文件。/app/files:此目录用于存放系统运行所需的配置文件与上传的文件。/app/logs:此目录用于记录应用程序的运行日志,便于问题排查。
保存文件后,在终端中执行 docker-compose up -d 命令即可启动服务。
系统初始化与使用
服务启动后,在浏览器地址栏中输入 http://您的服务器IP地址:1991 即可访问系统首页。

使用系统默认的账号(admin)和密码(123456)进行登录,首次登录后请务必修改密码以确保安全。

成功登录后进入管理面板。开源版本的界面设计以满足功能为主,风格较为简约,其付费版本在UI体验上会有显著提升。

点击左侧菜单栏的“我的项目”,系统已预置一些问卷模板可供参考,您可以打开这些模板了解其设计思路。
开源笔记神器Trilium Notes:从零部署到高效使用的完整教程

Trilium Notes是一款跨平台、免费开源的层次化笔记应用,专为构建大规模个人知识库而设计。它提供了强大的笔记管理、编辑和检索功能,适用于希望系统化整理信息的用户。

核心功能概览:
- • 笔记管理与编辑:支持无限层级的笔记树结构,允许单条笔记在多个位置克隆。应用内置富文本所见即所得编辑器,可处理表格、图像、数学公式和代码块(含语法高亮),并支持切换到源代码编辑模式,满足不同用户的编辑偏好。
- • 高效检索与导航:具备全文搜索、快速导航和笔记悬浮预览能力,即便管理超过十万条笔记,系统仍能保持流畅的性能和良好的可用性,帮助用户快速定位所需内容。
- • 数据安全与同步:提供单笔记级加密、OpenID和TOTP安全登录机制。用户可通过自托管同步服务器实现数据同步,或选择第三方同步服务进行托管,确保数据的安全性和可访问性。
- • 可视化与扩展能力:集成了Excalidraw绘图、Mind Elixir思维导图、地理地图(支持定位引脚和GPX轨迹导入)以及关系图等多种可视化工具。此外,通过REST API和脚本功能,用户可以自定义自动化流程,扩展应用功能。
- • 多端适配与导入导出:兼容Windows、MacOS和Linux桌面端,同时提供浏览器网页端访问。移动设备可通过网页端或第三方Android应用TriliumDroid进行操作。支持从Evernote和Markdown格式导入笔记,并配备网页剪辑工具,方便内容收集。
- • 个性化与本地化:默认提供暗色主题,允许用户自定义主题和界面元素(如侧边栏按钮和自定义组件)。应用界面支持英语、德语、西班牙语、法语及中文(简体与繁体)等多种语言,翻译工作通过Weblate平台持续优化。
部署步骤详解
通过Docker Compose可以快速部署Trilium Notes。以下是一个简单的配置示例:
services:
trilium:
image: triliumnext/trilium:latest
container_name: trilium
ports:
- 8080:8080
volumes:
- ./trilium-data:/home/node/trilium-data
restart: unless-stopped
将上述配置保存为docker-compose.yml文件,然后在终端中运行docker-compose up -d即可启动服务。数据将持久化存储在本地目录./trilium-data中。
上手使用与界面解析
在浏览器中输入http://NAS的IP:8080即可访问Trilium Notes的Web界面。

首次使用时,选择“新用户”选项并点击下一步进行初始化设置。

设置一个安全的访问密码,以确保账户数据的保护。

使用刚刚设置的密码登录系统,即可进入主界面开始使用。

当前最新版本的Trilium Notes采用了全新的现代化界面设计,视觉效果比早期版本有了显著提升。

值得一提的是,新版已内置中文语言支持,极大方便了中文用户的使用体验。

应用内提供了示例日记笔记,展示方式直观清晰,帮助新用户快速了解基本操作。

功能区域相当丰富,包括笔记分享、导入和导出等实用选项,便于数据迁移和协作。

在示例笔记中,右侧会显示文章目录,方便快速跳转和内容概览。

Trilium Notes支持Markdown语法、双向链接、块状结构和标签分类等高级功能,满足深度笔记管理需求。

应用内预置了日记和读书笔记等模板,用户可以直接套用,提高笔记创建效率。

整体而言,Trilium Notes的功能非常全面和强大,用户可以根据个人需求进一步探索和定制。

综合评价与推荐
若是早期版本,界面陈旧且缺乏中文支持,可能不会强烈推荐Trilium Notes。然而,当前的全新版本已实现蜕变,现代化UI设计搭配内置中文语言包,堪称一次重要的体验升级。功能方面,它从基础的笔记编辑到高级的双向链接、思维导图和数据可视化等一应俱全,同时保持轻量级的资源占用,这也是其广受用户欢迎的关键因素。对于致力于构建个人知识体系的用户来说,Trilium Notes无疑是一个值得尝试的开源笔记解决方案。
微信公众号文章批量下载与排版导出全攻略:一站式工具详解
微信公众平台作为重要的内容发布渠道,许多运营者与研究者希望将发布的文章进行本地化保存或进行二次整理。本教程将详细介绍一款能够实现微信公众号文章批量下载、排版并导出为多种格式的在线工具。

wechat-article-exporter 是一款功能强大的在线工具,专门用于批量下载微信公众号文章。它不仅能够抓取文章正文,还支持导出文章的阅读量、评论数据等附属信息,为内容归档与分析提供了便利。

核心功能特性
该工具集成了多种实用功能,以满足不同场景下的需求:
- 公众号搜索:支持通过关键词搜索目标公众号。
- 多格式导出:支持将文章导出为 HTML、JSON、Excel、TXT、Markdown 以及 DOCX 格式。其中,HTML 格式会打包图片和样式文件,能够近乎 100% 地还原文章在公众号中的原始排版效果。
- 数据缓存:自动缓存已获取的文章列表数据,有效减少对平台接口的重复请求次数。
- 高级过滤:支持根据作者、文章标题、发布时间、原创标识以及所属的合集等多种条件对文章进行筛选。
- 合集下载:支持一键下载某个公众号下的整个文章合集。
- 多媒体支持:能够处理并下载文章内包含的图片分享消息与视频分享消息。
- 数据导出:除正文外,还可导出文章的评论、评论回复、阅读量、转发量等互动数据(此功能通常需要用户自行抓包获取必要的身份凭证信息,具体操作可查看项目指引)。
- 部署灵活:提供 Docker 镜像,支持通过 Docker 快速部署;同时也支持在 Cloudflare 等平台上进行部署。
- 开放接口:工具提供了开放的 API 接口,便于开发者进行集成和二次开发。
在线访问地址
工具的在线服务可通过以下网址访问:
https://down.mptext.top/dashboard/account
安装与部署指南
对于希望自行部署的用户,推荐使用 Docker Compose 方式,操作简便且易于管理。
Docker Compose 部署
首先,创建一个 docker-compose.yml 配置文件,内容如下:
services:
wechat-article-exporter:
image: ghcr.io/wechat-article/wechat-article-exporter:latest
container_name: wechat-article-exporter
ports:
- 3000:3000
volumes:
- ./data:/app/.data
restart: always
配置完成后,在终端中执行 docker-compose up -d 命令即可启动服务。
详细使用步骤
- 访问界面:服务启动后,在浏览器地址栏输入
http://你的NAS或服务器IP:3000即可访问工具的管理界面。

提示:若部署在局域网内的其他设备(如 NAS)上,从本地电脑直接访问 IP 地址可能会遇到网络问题。对于 Windows 用户,可以使用系统自带的 netsh 工具设置端口转发,将远程端口映射到本地。
手把手教程:使用Docker快速部署轻量级Markdown博客PaperGrid
在之前的分享中,我们探讨了使用 Halo 2.0 搭建个人博客的方法。对于部分用户而言,这类项目功能虽然全面,但整体架构可能略显繁重。相比之下,许多用户更青睐于轻量化、界面简洁,甚至仅需一个能够稳定托管内容的简易站点。
近期,我发现了一个名为 PaperGrid 的新兴博客项目,其整体设计风格倾向于轻量化,完美支持 Markdown 编辑,并且前端视觉效果相当出色!同时,它还具备不错的可定制性与探索空间。本文将简要介绍如何部署并开始使用它。

就我个人而言,博客已经逐渐取代了传统的笔记工具。将思考过程、技术实践与使用心得记录下来,不仅便于日后回顾,也能分享给有共同兴趣的伙伴。像 PaperGrid 这样部署过程相对简单、界面设计也足够清晰的项目,非常适合用来构建一个专属的个人记录空间。
PaperGrid项目概览
完整项目名称:xywml/PaperGrid,可以在 GitHub 上进行搜索。
这是一个基于 Next.js App Router 构建的轻量化个人博客与后台管理系统。它内置了用户认证、文章管理、评论功能和系统设置模块,并支持中文/英文双语界面与深色模式切换。
作者说明:项目目前处于快速开发迭代阶段,欢迎部署使用、给予 Star 评价或反馈建议。
核心功能特性
- 现代技术栈:采用 Next.js App Router 与 React 19。
- 数据管理:集成 Prisma ORM 进行数据库操作。
- 用户认证:使用 NextAuth 实现安全的身份验证。
- 完整后台:提供文章、标签、分类、评论、用户、系统设置及文件管理的后台界面。
- 文件管理:支持本地图片上传、预览、删除以及 URL 自动回填至编辑器。
- 强大内容支持:兼容 MDX 格式,具备代码高亮、数学公式渲染与图表绘制能力。
- 国际化与主题:支持多语言切换,并内置深色模式。
- 多样前端主题:管理员可在后台“样式”设置中一键切换多套前台主题(例如:纸格笔记、终端机能、清透视窗、像素账本)。
- 扩展可能:具备集成智能 AI 助手的潜能。
详细部署步骤
本文以威联通(QNAP)NAS 为例,演示通过 Docker Compose 进行部署的过程。
以下部署代码可实现服务的快速启动,请根据你的环境调整配置:
services:
papergrid:
image: ghcr.io/xywml/papergrid:latest
container_name: papergrid
ports:
- "6066:3000"
environment:
DATABASE_URL: "file:/data/db.sqlite"
# 可选:为 AI 向量索引使用单独的 SQLite 文件
# AI_VECTOR_DATABASE_URL: "file:/data/ai-index.sqlite"
# SQLITE_JOURNAL_MODE: "DELETE"
# 初始使用 NAS IP 加端口访问,后续若配置反向代理或域名,需修改此处
NEXTAUTH_URL: "http://192.168.100.138:6066"
NEXT_PUBLIC_APP_URL: "http://192.168.100.138:6066"
# 生产环境务必设置一个足够长且复杂的随机字符串
NEXTAUTH_SECRET: "请替换成一串足够长的随机字符串"
# 设置本地媒体文件与缓存存储路径
MEDIA_ROOT: "/data/uploads"
NEXT_CACHE_DIR: "/data/.next-cache"
# 首次初始化容器时的可选配置(用于创建管理员)
# INIT_ADMIN_TOKEN: "请替换为随机字符串"
# ADMIN_INIT_PASSWORD: "请替换为强密码"
# 可先跳过 OAuth / SMTP 配置,待基础服务运行后再补充
NEXT_PUBLIC_DEFAULT_LOCALE: "zh"
# 在内网环境且未配置反向代理时,允许信任 Host 头
AUTH_TRUST_HOST: "true"
volumes:
- /share/Container/boke/data:/data
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "5"
以下是完整的的环境变量列表,你也可以选择创建独立的 .env 文件进行配置:
手把手教程:使用开源项目在NAS上搭建私人H5棋牌游戏室

今天将介绍一款基于H5技术的棋牌游戏平台。这是一个商用级别的项目,旨在让用户摆脱公共平台的种种限制,创造一个无后台监控、无人工干预、完全公平公正的游戏环境。该平台兼容性强,支持在手机、电脑、平板等任何带有浏览器的设备上运行,真正做到即开即玩。

重要提示:对于初次尝试部署的朋友,强烈建议严格遵循本教程的每一步操作。请勿在没有充分理解的情况下随意修改配置文件,也无需急于配置外网访问,按部就班完成内网部署是成功的第一步。
准备工作
首先,访问该项目的GitHub仓库地址:https://github.com/openinggame/qp,下载整个项目源码。

在你的NAS设备上,创建一个名为openinggame的文件夹,并将刚刚下载的ZIP压缩包放入其中。

解压这个ZIP文件。解压后,你会看到多个文件和文件夹,为了部署清晰,我们只需要保留以下三个核心文件:docker-compose.yml、mongo_data.tar.gz和mysql.tar.gz。可以将其它不必要的文件暂时移开或删除。

接下来,分别解压mongo_data.tar.gz和mysql.tar.gz这两个压缩包。解压完成后,你的文件夹结构应整理成类似下图所示的样子,包含必要的数据库数据目录和配置文件。

目录说明:mongo_data文件夹内部用于存放MongoDB数据库的数据文件。

目录说明:mysql文件夹内部则用于存放MySQL数据库的数据文件。

安装与部署
现在进入部署环节。在你的NAS的Docker管理界面(如Portainer或群晖的Docker套件)中,创建一个新项目(Stack)。选择项目路径为我们刚才准备的openinggame目录,并导入其中的docker-compose.yml文件作为模板。

原始的docker-compose.yml模板内容较为全面,但部分配置可能需要根据你的实际环境进行调整,例如网络配置等。其完整内容如下:
version: "3.0"
services:
web:
container_name: web0
image: openinggame/web:v1
ports:
- "80:80"
environment:
- API_HOST=<ip address>
networks:
- game
depends_on:
- server
server:
container_name: server0
image: openinggame/server:v1
ports:
- "81:81"
networks:
- game
depends_on:
- etcd
- kafka
- redis1
- mysql
- mongodb
mysql:
image: mysql:8.0.23
container_name: mysql0
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- /data/mysql:/var/lib/mysql
- mysqlconf:/etc/mysql/conf.d
networks:
- game
redis0:
container_name: redis0
image: redis:latest
volumes:
- redisdata0:/data
command: redis-server --requirepass 123456
networks:
- game
depends_on:
- etcd
redis1:
container_name: redis1
image: redis:latest
volumes:
- redisdata1:/data
command: redis-server --requirepass 123456
networks:
- game
depends_on:
- etcd
redis2:
container_name: redis2
image: redis:latest
volumes:
- redisdata2:/data
command: redis-server --requirepass 123456
networks:
- game
depends_on:
- mysql
- etcd
- redis1
zookeeper:
container_name: zookeeper
image: wurstmeister/zookeeper
restart: always
networks:
- game
kafka:
container_name: kafka0
image: wurstmeister/kafka:2.12-2.3.0
environment:
- KAFKA_BROKER_ID=0
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka0:9092
- KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: always
depends_on:
- zookeeper
networks:
- game
etcd:
image: quay.io/coreos/etcd:v3.2.32
container_name: etcd0
environment:
ETCDCTL_API: 3
command:
- etcd
- --name=etcd0
- --data-dir=/data/etcd-data
- --advertise-client-urls=http://etcd0:2379
- --listen-client-urls=http://0.0.0.0:2379
restart: always
volumes:
- etcd0_data:/etcd-data
networks:
- game
mongodb:
container_name: mongodb0
image: mongo:4.4.4
restart: always
volumes:
- /data/mongo_data:/data/db
- mongodb_logs:/data/logs
command: --auth
networks:
- game
depends_on:
- etcd
volumes:
mysqlconf:
mongodb_logs:
etcd0_data:
redisdata0:
redisdata1:
redisdata2:
networks:
game:
external:
true
为了简化部署过程,我使用了一个经过调整的模板。这个简化版主要修改了卷的挂载方式(使用相对路径./),并移除了自定义网络声明,让Docker Compose自动管理。你唯一需要修改的地方就是将environment中的API_HOST值,替换为你自己NAS在内网中的实际IP地址。
手把手教程:在NAS上部署E视界(DongguaTV),打造专属私人影院

本文将介绍如何将您的网络附加存储设备(NAS)转变为一个功能强大的个人流媒体中心。通过部署 E 视界(可视为冬瓜 TV 的增强与重构版本),您可以获得媲美主流平台的观影体验。E 视界是一款基于现代 Node.js 与 Vue 3 技术栈构建的流媒体聚合播放器,其设计理念强调智能化与沉浸感。

该软件的核心优势在于其双引擎架构与高度智能化的资源管理。一方面,它深度整合 TMDb(The Movie Database),为影视内容提供高质量的海报、背景图、评分、剧情简介及演职员表等元数据,界面风格向 Netflix 看齐。另一方面,它集成了超过 48 个第三方资源站点的 API(基于 Maccms),并具备自动测速与失效源过滤机制,确保播放线路的可用性与流畅度。
在搜索体验上,E 视界采用了实时流式搜索技术,搜索结果会即时呈现,无需等待所有源站返回。系统能自动将同一影片的不同播放线路进行分组与合并,并在卡片上动态显示可用源的数量。所有搜索记录与元数据均通过内置的高性能 SQLite 数据库进行缓存,实现秒级响应。
播放功能也经过精心设计。全新的影院模式播放页采用暗色系布局,支持剧集网格化选择。播放前会进行线路测速,并在播放失败时自动切换至下一个可用源,无需人工干预。软件还支持 DLNA/AirPlay 投屏功能。
针对中国大陆用户可能遇到的网络问题,E 视界进行了专门优化。它采用双重 IP 检测机制来准确判断用户地域,并自动切换至 TMDB 反代模式以保障元数据正常加载。所有核心前端依赖库均已本地化部署,彻底避免了因公共 CDN 访问不畅导致的加载缓慢问题。项目提供一键式安装脚本,简化配置流程。
在设备兼容性方面,E 视界表现全面。它提供专为 Android TV 或电视盒子优化的 APK 安装包,完美适配遥控器操作。移动端应用封装精良,支持沉浸式状态栏,提供接近原生应用的流畅体验。同时,它也支持 PWA,可添加到设备主屏幕快速启动。
安全管理功能包括可选的全局访问密码,支持长达一年的记住登录状态,兼顾安全与便利。此外,还支持从远程 URL 加载配置文件,便于多实例的统一管理。
请注意,本教程内容仅限用于技术学习与交流目的。在使用相关软件与服务时,请您务必严格遵守所在地的法律法规及各平台的使用协议,切勿将其用于任何商业用途或非法领域。
前期准备工作
在开始部署之前,您需要完成两项关键配置:准备采集源配置文件 db.json 以及获取 TMDb API 密钥。
配置采集源文件 (db.json)
影视资源的获取依赖于 db.json 文件中定义的采集源(站点)。配置的采集源越多,理论上可检索到的资源范围就越广。请注意,公开分享具体的采集源地址可能涉及侵权风险,因此需要您自行寻找和添加。
项目在首次运行时通常会尝试自动生成 db.json 文件。如果未能生成,建议您手动创建该文件。文件内容结构如下:
{
"sites": [
{
"key": "unique_key1", // 每个站点的唯一标识符(英文字母,不可重复)
"name": "站点名称1", // 在软件界面中显示的名称
"api": "https://...", // Maccms V10/JSON 接口地址
"active": true // 是否启用该站点
},
{
"key": "unique_key2",
"name": "站点名称2",
"api": "https://...",
"active": true
}
// 您可以继续添加更多站点
]
}
获取 TMDb API Key
TMDb 的 API 密钥用于拉取影片的详细信息、海报和评分等元数据,这对于提升界面美观度和使用体验至关重要。获取步骤如下:
手把手部署BookLore魔法电子书库:打造你的私人云端图书馆
电子书的管理方式似乎总是落后于时代。相信许多朋友已经尝试过Calibre Web、Kavita或Komga这类服务。本期我们将介绍另一款功能强大的图书馆项目——BookLore。它拥有硬核的界面和丰富的功能,特别适合漫画与电子书收藏爱好者用来系统性地整理个人藏书库。
如果你热爱阅读,却又苦于在不同设备间整理与访问书籍的繁琐流程,那么不妨尝试一下这个项目。它能够帮助你轻松地存储、管理各类电子书,并支持直接从浏览器进行同步阅读。倘若你觉得网页版阅读体验尚有不足,还可以将其连接到其他第三方阅读应用,从而获得更佳的阅读感受。

项目概览
该项目的完整名称是 booklore-app/booklore,可以在GitHub上直接搜索到。项目作者在其主页提供了体验Demo,有兴趣的读者可以先行试用一番。
简而言之,BookLore 是一款专为自托管环境打造的数字图书馆Web应用程序。通过它,你可以实现以下一系列功能:
- 上传、分类与整理:支持 PDF、ePub、CBZ、CBR 和 CB7 等多种主流电子书格式。
- 自动抓取书籍元数据:自动从网络获取书籍的封面、作者、简介、评分等信息。
- 多用户协作:支持创建多个用户账户,并可设置不同的操作权限,便于账号管理。
- 内置阅读器:提供可直接在网页中在线阅读的功能。
- 阅读进度跟踪:记录你的阅读进度并提供书籍相关的统计信息。
- 同步与连接:支持通过 OPDS 协议与 Kobo、KOReader 等设备或其他阅读应用同步阅读进度。
- 便捷导入:利用 BookDrop 功能,通过拖放文件即可实现自动导入。
- 全设备响应:在手机、平板和电脑上均能获得良好的浏览体验。
核心亮点与深度功能
1. 智能图书管理体系
BookLore 采用“图书馆 (Library) + 书架 (Shelves)”的层级系统,允许你按照作者、主题、阅读状态等维度自定义分类。其独有的“魔法书架 (Magic Shelves)”功能,能够根据你预设的规则(如“最近添加”、“未读漫画”)动态地更新图书集合。此外,高级搜索功能支持通过关键字和特定元数据字段进行检索,帮助你快速定位目标书籍。
2. 强大的元数据抓取引擎
应用能够自动从多个在线图书信息源抓取书籍的元数据。当然,你也可以随时手动编辑或调整这些自动获取的信息。这一功能对于维护一个外观专业、信息完整的个人图书库而言至关重要。
3. 多格式在线阅读支持
BookLore 内置的阅读器提供了良好的格式兼容性,包括:
- PDF 文档阅读
- ePub 电子书阅读
- CBX / 漫画文件阅读 你无需下载文件即可直接在浏览器中浏览内容,系统还会自动跟踪你的阅读进度。
4. 完善的多用户与权限管理
管理员可以轻松创建多个用户账户,并为不同的用户分配差异化的操作权限,例如上传、编辑或删除书籍的权限。这使得 BookLore 不仅适用于个人用户,也非常适合家庭或小型团队共同使用和管理一个共享书库。
5. 灵活的连接与同步机制
除了支持标准的 OPDS 协议,方便连接各类阅读器客户端外,BookLore 还能够与 Kobo 和 KOReader 等专用阅读设备同步阅读进度。此外,它还提供了通过电子邮件分享书籍的便捷功能。
6. BookDrop 自动导入功能
这是一个极具实用性的特性:你只需将电子书文件拖入NAS上指定的“bookdrop”文件夹,BookLore 便会自动检测到新文件,并完成导入与元数据抓取的全过程,极大简化了书籍添加的步骤。
打造专属AI伙伴:国产助手CoPaw本地化部署与多平台接入指南
前阵子介绍过OpenClaw,那是一款旨在运行于个人设备上的开源助手,其目标是将AI打造为一个能够常驻后台、接入多种沟通渠道、并深度融入个人工作流的智能伙伴。如今,国内也涌现出一个方向高度一致,但风格和侧重点截然不同的项目——CoPaw。相较于OpenClaw追求的通用性与国际化视野,CoPaw带给我的直观感受是:在通往个人AI助手的道路上,已经出现了更注重本土化、更紧密贴合日常协作生态的产品形态。

不过,在我看来,两者并非相互对立,它们更像是同一赛道中基于不同设计理念和功能重心的两种产品表达,甚至可以形成互补。除了提供便捷的一键安装脚本,CoPaw项目也贴心地准备了Docker镜像,本文将以此为基础,分享其部署与初步使用的过程。
项目概览
该项目托管于GitHub,仓库地址为:agentscope-ai/CoPaw。
其设计理念是“懂你所需,伴你左右”,致力于成为你的专属AI个人助理。它的一大亮点是安装部署极其简便,支持在本地环境或云端灵活部署,并能轻松扩展其能力,支持多终端接入。
核心功能与特色
- 全域渠道接入:无论是钉钉、飞书、QQ,还是Discord、iMessage等通讯平台,一个CoPaw实例即可按需连接,实现统一交互入口。
- 数据自主掌控:所有记忆与个性化设置完全由用户掌控,你可以自由选择将数据存储在本地或云端。同时,支持定时任务与协作消息定向发送至指定频道。
- 技能灵活扩展:内置实用的定时任务功能,并开放自定义技能目录。用户添加的技能,CoPaw能够自动发现并加载,无需复杂的绑定流程。
CoPaw能为你做什么?
- 社交媒体管理:自动获取每日热点帖子摘要(覆盖小红书、知乎、Reddit等平台),并对B站或YouTube的新发布视频进行内容提炼。
- 效率工具集成:将重要邮件与新闻简报的核心内容推送到钉钉、飞书或QQ;自动整理邮件与日历中的联系人信息。
- 创意辅助与构建:睡前只需向它说明目标,CoPaw便可自动执行相关任务,次日你便能获得一个初步成果或方案;支持从选题构思到成片输出的全流程辅助。
- 研究与学习助手:持续追踪最新的科技与AI行业资讯;基于个人知识库进行高效检索与信息复用。
- 桌面与文件管家:智能整理与搜索本地文件系统;阅读文档并生成摘要;在对话中直接向它索要特定文件。
- 无限探索可能:通过自由组合各种Skills(技能)与定时任务,你可以亲手打造出高度定制化、具备特定目标的智能体应用。
部署流程详解
本文将以威联通(QNAP)NAS为例,演示如何使用Docker Compose的方式部署CoPaw。部署过程的核心代码非常简单,如下所示:
services:
copaw:
image: agentscope/copaw:latest
container_name: copaw
restart: always
ports:
- 8088:8088 # 此处端口号可根据需要自行修改
volumes:
- /share/Container/copaw/data:/app/working
接下来,在威联通的Container Station中创建一个新的应用程序,并将上述代码粘贴至对应区域。

部署命令虽然简洁,但需要注意的是,初始镜像文件体积约为2.8GB,需要耐心等待下载完成。
使用配置指南
部署成功后,在浏览器中输入你的NAS_IP:8088即可访问CoPaw的Web管理界面。首先,建议点击页面右上角的语言选项,将界面切换为中文。

首次尝试与助手对话时,发送消息后系统会立即提示你需要配置大语言模型。

系统默认提供的模型提供商选项较少,均为国际通用的基础款。配置这类模型相对简单,只需填入对应的API接口URL和密钥即可。由于笔者手头没有这些服务的API密钥,此处便跳过演示。我们转而学习如何手动添加国内常见的模型提供商。

对于国内的硅基流动、智谱AI、MiniMax等平台,大多需要手动添加。以MiniMax为例,首先需要知道其兼容的API URL,各平台官方文档通常都会提供。协议类型一般选择“OpenAI兼容”。填写完基础信息后点击创建。

创建提供商后,点击其右侧的“设置”按钮。

由于之前已选择协议,此处通常无法更改。关键步骤是填写该提供商具体的API URL和你的API Key,然后保存。

接着,点击“模型”标签页。在此处填写具体的模型ID和模型名称。模型ID需严格按照提供商文档中指定的格式填写。

添加完成后,可以点击“测试”按钮来验证配置的连通性。如图所示,测试成功。

最后还有关键一步!返回设置页面的最顶部,在“LLM配置”部分,选择你刚刚配置好的提供商和对应的模型,然后保存设置!

其他功能与拓展
CoPaw内置了对钉钉、飞书、Discord、Telegram和QQ的官方支持。具体参数的配置逻辑与OpenClaw类似,但其图形化的配置界面在易用性上提升显著。

在技能(Skills)方面,系统内置了一部分常用功能。用户可以通过URL导入更多社区分享的技能,项目提供的地址中有丰富的技能库可供浏览选择。若有特殊需求,也完全支持自行创建个性化技能。

MCP(Model Context Protocol)模块允许用户自行创建和接入。例如,威联通NAS的MCP Assistant服务也可以接入到CoPaw中,实现更深度的系统集成。
打造私人Netflix影库:冬瓜TV (DongguaTV) 一键部署全攻略
当你想要观看影视内容时,可能需要打开多个应用程序,在不同的平台间反复切换,其过程如同查看复杂的股票K线图一般繁琐。当你终于找到想看的资源,却常常遭遇播放卡顿,画面宛如PPT般不连贯。此时你或许会陷入沉思:自己缺少的或许并非某个平台的会员,而是一个能够整合所有资源的「聚合入口」。
正是在这样的需求背景下,冬瓜TV(DongguaTV)应运而生。它主打全网聚合搜索、多源聚合、实时线路测速、热门内容推荐、便捷的后台管理以及JSON持久化配置。与Plex、Jellyfin、Emby这类以管理和刮削本地媒体库为核心的系统不同,冬瓜TV的定位更侧重于成为一个「聚合检索中心」与「快速播放入口」。
用一句话概括其核心价值:旨在减少用户的折腾成本,实现搜索即得、点击即看的高效观影体验。
⚠️ 项目免责声明:冬瓜TV项目仅供学习与研究之用,请勿将其用于任何商业用途。因使用本项目而产生的任何法律问题与责任,需由使用者自行承担。我们始终倡导并鼓励大家支持正版影视内容。
此前,市面上也曾出现过功能类似的项目,例如「MoonTV」、「MoonTV PLUS」、「LibreTV」和「OmniBox」。相比之下,冬瓜TV虽然在功能模块数量上未必是最多的,但其在用户体验与界面设计层面,可以说是当前最为精致的一款。

冬瓜TV项目核心功能解析
完整项目地址为:Minerchu/dongguaTV3。
冬瓜TV是一个基于Node.js与Vue 3技术栈构建的视频聚合平台。它深度集成了众多视频站点的API接口,提供了智能搜索、资源聚合、实时测速等一站式功能,致力于为用户打造专属的私人Netflix体验。项目核心支持「TMDb智能元数据刮削」、「全网资源聚合」与「极速流畅播放」。
🎬 双引擎驱动数据获取
TMDb (The Movie Database):作为高质量的影视元数据提供方,为影片和剧集提供详尽的海报、背景图、评分、剧情简介以及演职员表等信息。
CMS聚合源 (Maccms):项目集成了超过48个第三方站点的API接口。系统能够自动对全网资源进行实时测速,并智能过滤掉已失效的源,从源头上保障播放的流畅性。
🔍 智能化搜索与聚合机制
实时流式搜索 (SSE):采用Server-Sent Events技术实现搜索结果的流式返回。搜索结果边获取边显示,给予用户即时反馈,无需等待所有源全部响应完毕。
自动分组与实时合并:系统会将同一部影视作品的不同播放线路自动聚合展示。新搜索到的资源会实时合并到已有的结果卡片中,卡片右上角的资源数量会动态更新。
SQLite永久缓存:内置高性能的SQLite数据库作为缓存层,支持无限存储,读写速度极快,能够实现热搜词条的秒级响应。
📺 沉浸式播放与观看体验
影院模式界面:全新设计的播放详情页采用暗色系沉浸式布局,优化了视觉焦点,并支持以网格形式选择剧集。
智能线路测速:支持用户端直连测速与服务器端代理测速两种模式,能够更真实地反映视频源的实际可用性与速度。
自动故障转移:当当前播放线路失败时,系统会自动切换到列表中的下一个可用线路,全程无需用户手动干预。
投屏功能支持:集成了DLNA与AirPlay本地投屏协议(具体支持程度取决于用户浏览器)。
🌏 针对大陆用户的深度优化
智能IP双重检测:采用Cloudflare Trace与ipapi.co双重检测机制,IP地理位置判断准确率高且不受API速率限制。当检测到大陆IP时,会自动切换至TMDB反代访问模式。
核心资源本地化:Vue、Bootstrap、DPlayer等核心前端依赖库均采用本地化部署,彻底解决了因公共CDN被劫持或加载缓慢导致页面打开慢的问题,实现秒开体验。
一键交互式安装脚本:支持通过命令行交互方式,便捷地配置API Key、反代地址及运行端口。
📱 全面的多终端兼容支持
Android TV / 电视盒子:提供了专属的APK安装包,完美适配电视遥控器的操作逻辑,并支持在Android TV桌面(Leanback Launcher)直接启动。
移动端App体验:基于现代Web技术进行封装,在移动设备上可获得接近原生应用的交互体验。
PWA渐进式网页应用:支持将网页应用添加到设备主屏幕,实现即点即用,无需通过浏览器多次访问。
🔒 安全与访问权限控制
全局访问密码:支持为整个应用设置全局访问密码,并允许用户选择记住登录状态(最长可达1年),在安全与便捷之间取得平衡。
远程配置加载:支持从指定的远程URL地址加载
db.json配置文件,便于在多设备、多站点环境下进行统一的资源管理。
部署前准备:API密钥与配置文件
本文将以威联通(QNAP)NAS为例,详细演示通过Docker Compose部署冬瓜TV的完整流程。
首先,你需要获取一个TMDb API密钥。访问TMDb官网注册账号后,在账户设置中申请API。如下图所示,找到页面底部的「API 密钥」,复制并妥善保存备用。

接下来,在NAS上创建用于部署的专用目录。威联通的Docker相关路径通常为/share/Container/,我们可以在其下创建donggua文件夹。请在该目录中预先创建两个空文件:db.json 和 cache.db,创建后的目录结构参考下图。

其中,db.json文件需要你自行配置视频采集源(API)。其内容需遵循以下JSON格式:
{
"sites": [
{
"key": "unique_key1", // 唯一标识符(建议使用英文字母,且不可重复)
"name": "站点名称1", // 将在前端界面显示的名称
"api": "https://...", // Maccms V10/JSON 格式的接口地址
"active": true // 是否启用该站点 (true/false)
},
{
"key": "unique_key2", // 唯一标识符
"name": "站点名称2", // 显示名称
"api": "https://...", // API地址
"active": true // 启用状态
}
]
}
为方便初学者快速上手,我们已整理一份现成的源地址列表。如果你有自己的稳定视频源,也可以据此格式自行修改与添加。请注意,公共源的可用性与稳定性无法得到长期保证,且通常不会进行持续的维护更新。