开源笔记神器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 格式会打包所有图片和样式文件,能近乎完美地复现公众号的原版排版,非常适合用于高质量的内容备份。
- 智能缓存:自动缓存已获取的文章列表,避免重复请求,提升效率。
- 高级筛选:可根据作者、标题、发布时间、原创标识乃至所属合集等多个维度对文章进行过滤,精准定位所需内容。
- 合集打包:支持一键下载某个公众号下的整个文章合集,省去逐篇操作的麻烦。
- 多媒体处理:能够识别并下载文章内的图片分享和视频分享消息。
- 互动数据导出:除了正文,还可导出评论、回复、阅读量、转发量等数据(注:此功能通常需要用户自行获取必要的身份凭证,具体请参考项目文档)。
- 灵活部署:提供 Docker 镜像,可快速部署;也支持在 Cloudflare 等平台运行。
- 开放接口:提供 API 接口,方便开发者进行集成和二次开发,扩展性强。
在线体验地址
如果你想先体验再决定是否部署,可以直接访问其在线服务:
https://down.mptext.top/dashboard/account
如何自行部署?Docker Compose 是最佳选择
对于希望将工具部署在自己服务器或 NAS 上的用户,使用 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://你的服务器IP:3000即可访问工具后台。
网络访问小贴士:如果你将工具部署在家庭 NAS 或内网其他设备上,从外部电脑直接访问其 IP 可能会遇到问题。对于 Windows 用户,一个巧妙的解决办法是使用系统自带的
netsh命令设置端口转发,将内网服务“映射”到本地。
手把手教程:使用Docker快速部署轻量级Markdown博客PaperGrid
在之前的文章中,我们介绍过如何使用 Halo 2.0 搭建功能全面的个人博客。不过,对于很多朋友来说,这类平台虽然强大,但架构相对复杂,维护起来也需要一定精力。如果你和我一样,更偏爱那种简洁、轻快、专注于内容本身的博客系统,那么今天分享的 PaperGrid 或许正合你意。
PaperGrid 是一个新兴的轻量化博客项目,它基于现代技术栈构建,界面设计清新优雅,对 Markdown 的支持非常友好,并且自带完善的后台管理系统。更重要的是,它的部署过程非常简单,尤其适合在 NAS 或云服务器上快速搭建。接下来,我就以威联通(QNAP)NAS 为例,带你一步步用 Docker Compose 部署 PaperGrid,并分享一些初步的使用体验。

对我个人而言,博客已经不仅仅是分享平台,它更像是一个数字化的思考工具箱。把技术实践、学习心得甚至生活灵感记录下来,既能帮助自己梳理思路,也能与志同道合的人交流。像 PaperGrid 这样轻便又好看的系统,正好为打造这样一个私人知识空间提供了理想的基础。
初识 PaperGrid:轻量,但不简单
你可以在 GitHub 上搜索完整项目名:xywml/PaperGrid。
PaperGrid 是一个基于 Next.js App Router 构建的个人博客与后台管理系统。它虽然定位轻量,但该有的功能一个不少:用户认证、文章管理、评论系统、多语言支持、深色模式,甚至内置了多套可一键切换的前端主题。作者在项目说明中提到,目前项目仍处于快速迭代阶段,欢迎大家部署使用并反馈建议。
核心功能一览
- 现代技术栈:基于 Next.js App Router 与 React 19 开发,性能与开发体验俱佳。
- 数据管理:使用 Prisma ORM 处理数据库操作,代码清晰且类型安全。
- 安全认证:集成 NextAuth,提供可靠的用户登录与权限管理。
- 完整后台:拥有文章、标签、分类、评论、用户、系统设置及文件管理的可视化后台。
- 便捷的文件管理:支持本地图片上传、预览、删除,并可将图片 URL 自动插入编辑器。
- 强大的内容支持:完美支持 MDX,具备代码高亮、数学公式渲染(KaTeX)与图表(Mermaid)绘制能力。
- 国际化与主题:支持中英文切换,并内置深色/浅色模式。
- 多样前端主题:管理员可在后台“样式”设置中一键切换多套精心设计的前台主题(如“纸格笔记”、“终端机能”、“清透视窗”等)。
- 扩展潜能:架构预留了集成 AI 助手等智能功能的接口,未来可玩性很高。
详细部署步骤(以威联通 NAS 为例)
我们将使用 Docker Compose 来部署 PaperGrid,这种方式配置清晰、管理方便。下面的 docker-compose.yml 配置已经包含了运行所需的核心环境变量,你只需要根据自己网络环境稍作调整即可。
创建一个新的 docker-compose.yml 文件,并粘贴以下内容:
手把手教程:使用开源项目在NAS上搭建私人H5棋牌游戏室

厌倦了公共棋牌平台的种种限制?想和朋友们在一个完全私密、公平、无后台干预的环境里畅玩?今天,我就带你一步步在自家的NAS上,部署一个功能完整的H5棋牌游戏平台。这个开源项目基于商用级架构,支持斗地主、麻将等多种游戏,无需安装任何客户端,在手机、电脑、平板的浏览器上打开就能玩,真正实现“私人游戏室”的自由。

给新手的核心建议:如果你是第一次尝试这类部署,请务必严格按照教程的步骤操作。先不要急着修改复杂的配置或配置外网访问,成功的第一步,是确保在内网环境下一切运行正常。稳扎稳打,我们开始吧。
第一步:获取与准备项目文件
- 下载源码:首先,访问该项目的GitHub仓库:
https://github.com/openinggame/qp,下载整个项目的ZIP压缩包。

- 创建项目目录:在你的NAS上,找一个合适的位置(比如Docker或共享文件夹下),新建一个名为
openinggame的文件夹。将下载好的ZIP文件放入其中。

- 解压与精简:解压ZIP文件。解压后你会看到很多文件和文件夹。为了部署清晰,我们只需要保留三个核心文件:
docker-compose.yml、mongo_data.tar.gz和mysql.tar.gz。其他文件可以暂时移走或删除,避免干扰。

- 解压数据库文件:分别解压
mongo_data.tar.gz和mysql.tar.gz这两个压缩包。解压后,你的openinggame文件夹结构应该大致如下,包含了数据库的预置数据目录。

* **`mongo_data` 目录**:里面存放的是MongoDB数据库的初始数据文件。

* **`mysql` 目录**:里面存放的是MySQL数据库的初始数据文件。

至此,文件准备工作就完成了。
第二步:通过Docker Compose部署
现在进入核心的部署环节。我们将使用Docker Compose来一键启动所有服务。
- 创建Docker项目/堆栈:打开你NAS上的Docker管理工具(如群晖的Docker套件、Portainer等)。找到创建“Stack”(堆栈)或“项目”的选项。
- 配置项目:
- 名称:可以命名为
openinggame。 - 路径:选择我们刚才准备好的
openinggame文件夹作为工作目录。 - 配置文件:将文件夹内的
docker-compose.yml文件内容粘贴或上传到配置编辑器中。
- 名称:可以命名为

-
理解并修改配置:原版
docker-compose.yml配置较全,但为了简化,我推荐使用下面这个调整过的版本。它主要做了两点优化:一是将数据卷挂载改为相对路径 (./),更易管理;二是移除了需要手动创建的外部网络,让Docker自动处理。你唯一需要修改的地方,就是下面配置中
web服务下的API_HOST环境变量。请将其中的192.168.31.90替换成你NAS在局域网内的实际IP地址。
services:
web:
container_name: web0
image: openinggame/web:v1
ports:
- "8080:80" # 将NAS的8080端口映射到容器的80端口
environment:
- API_HOST=192.168.31.90 # 【关键】请修改为你的NAS内网IP
depends_on:
- server
server:
container_name: server0
image: openinggame/server:v1
ports:
- "81:81"
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:
- ./mysql:/var/lib/mysql
- ./mysqlconf:/etc/mysql/conf.d
redis0:
container_name: redis0
image: redis:latest
volumes:
- ./redisdata0:/data
command: redis-server --requirepass 123456
depends_on:
- etcd
redis1:
container_name: redis1
image: redis:latest
volumes:
- ./redisdata1:/data
command: redis-server --requirepass 123456
depends_on:
- etcd
redis2:
container_name: redis2
image: redis:latest
volumes:
- ./redisdata2:/data
command: redis-server --requirepass 123456
depends_on:
- mysql
- etcd
- redis1
zookeeper:
container_name: zookeeper
image: wurstmeister/zookeeper
restart: always
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
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
mongodb:
container_name: mongodb0
image: mongo:4.4.4
restart: always
volumes:
- ./mongo_data:/data/db
- ./mongodb_logs:/data/logs
command: --auth
depends_on:
- etcd
-
启动项目:保存配置,然后启动这个堆栈。Docker会开始拉取镜像并创建容器。整个过程可能需要几分钟,取决于你的网络速度。
手把手教程:在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魔法电子书库:打造你的私人云端图书馆
你是否也厌倦了在不同设备间来回倒腾电子书,或者看着硬盘里堆积如山的PDF、ePub文件无从下手?传统的文件管理器早已无法满足数字阅读时代的管理需求。好在,开源社区为我们带来了Calibre Web、Kavita、Komga等优秀的自托管方案。今天,我们要介绍的是另一款实力不容小觑的选手——BookLore。它不仅拥有硬核的界面和丰富的功能,更在漫画与电子书的系统性整理上表现出色,堪称私人云端图书馆的“魔法”管家。
如果你是一位阅读爱好者,渴望一个统一、智能且完全由自己掌控的书库,那么BookLore值得你深入了解。它能帮你一站式存储、管理各类电子书,支持在浏览器中直接流畅阅读。若你觉得网页阅读器还不够过瘾,它还能无缝连接到第三方阅读应用,让你获得更极致的阅读体验。

项目概览:什么是BookLore?
BookLore 的完整项目地址是 booklore-app/booklore,在GitHub上可以轻松找到。项目作者贴心地提供了在线Demo,感兴趣的话不妨先去体验一下。
简单来说,BookLore 是一款专为自托管环境设计的现代化数字图书馆Web应用。它旨在解决个人或小团体电子书管理的痛点,核心能力包括:
- 上传、分类与整理:原生支持 PDF、ePub、CBZ、CBR、CB7 等主流电子书和漫画格式。
- 智能元数据抓取:自动从网络获取书籍的封面、作者、简介、评分等信息,让书库瞬间“活”起来。
- 多用户协作:支持创建多个账户,并可为不同用户分配精细化的操作权限,适合家庭或团队共享。
- 内置阅读器:提供基于网页的在线阅读功能,无需下载即可随时翻阅。
- 阅读进度跟踪:自动记录你的阅读位置,并生成个人阅读统计,方便回顾。
- 开放连接与同步:通过 OPDS 标准协议,可与 Kobo、KOReader 等阅读器或其他应用同步进度。
- BookDrop 便捷导入:只需将文件拖入指定文件夹,系统便会自动完成导入和元数据抓取,省心省力。
- 全平台响应式设计:无论在手机、平板还是电脑上,都能获得清晰舒适的浏览体验。
核心亮点与深度功能解析
1. 智能图书管理体系:从杂乱到有序
BookLore 采用了“图书馆 (Library) + 书架 (Shelves)”的双层逻辑。你可以创建多个图书馆来区分不同领域的藏书,再在图书馆内建立自定义书架,按作者、主题、阅读状态(如“待读”、“已读”)等进行归类。其杀手锏功能——“魔法书架 (Magic Shelves)”,能根据预设规则(例如“最近30天添加”、“所有未读漫画”)动态聚合图书,让你的收藏永远保持最新状态。配合强大的高级搜索(支持关键字和元数据过滤),找书从此不再是难题。
2. 强大的元数据抓取引擎:让书库专业起来
手动为每本书添加封面和简介无疑是场噩梦。BookLore 内置的元数据抓取引擎能够从多个权威在线书库(如OpenLibrary、Google Books)自动获取信息。当然,所有自动获取的内容都支持手动编辑和修正。这个功能对于构建一个外观精美、信息完整的专业级个人书库至关重要。
3. 多格式在线阅读支持:开箱即读
BookLore 内置的阅读器提供了良好的格式兼容性:
- PDF文档:支持缩放、目录跳转。
- ePub电子书:自适应排版,支持字体、背景等调整。
- CBX系列漫画:提供适合漫画浏览的阅读模式。 所有阅读进度都会自动保存,下次打开时可以直接续读。
4. 完善的多用户与权限管理:共享与安全兼顾
管理员可以轻松创建子账户,并精确控制每个用户的权限:谁能上传新书、谁能编辑元数据、谁只能阅读。这使得 BookLore 不仅适合个人使用,也非常适合作为家庭数字图书馆或小型团队的资料库,在共享的同时保障管理秩序。
5. 灵活的连接与同步机制:打破设备壁垒
除了作为Web服务,BookLore 更是一个连接中心。通过支持OPDS协议,你可以轻松地在手机上的Moon+ Reader、KOReader等阅读APP中添加BookLore书源,实现移动端无缝阅读。它还能与Kobo电子书阅读器深度集成,同步阅读进度。甚至,你可以通过电子邮件直接将书籍分享给朋友。
6. BookDrop 自动导入功能:化繁为简
这是最具实用价值的特性之一。你只需要在NAS上设置一个名为“bookdrop”的监视文件夹,之后无论通过何种方式(如SMB、FTP、同步工具)将电子书文件放入此文件夹,BookLore 都会自动检测、导入文件,并触发元数据抓取流程。整个过程完全自动化,极大地简化了书籍入库的步骤。
为何BookLore与NAS是绝配?
NAS(网络附加存储)的核心价值在于提供安全、私密、永续的数据存储。而BookLore则完美弥补了NAS在“数据应用层”的短板——它让静态的电子书文件变成了可交互、可管理、可服务的数字资产。二者结合,优势倍增:
- 数据完全自主:所有书籍文件和数据库都存放在你自己的NAS中,无需担忧隐私泄露或服务商停运的风险。
- 协同管理便捷:非常适合家庭成员或兴趣小组共建共享一个中心书库,每个人都可以有自己的账户和书架。
- 元数据管理自动化:节省了大量手动整理的时间,让维护书库从负担变成乐趣。
- 移动阅读无缝衔接:通过OPDS,书库可以轻松推送到任何支持该协议的移动阅读App,实现“一次整理,随处阅读”。
- 部署简单灵活:基于Docker容器化部署,几乎可以在所有主流NAS系统(如QNAP、Synology、TrueNAS)上快速安装和运行。
总而言之,部署了BookLore的NAS,将从一个被动的“文件仓库”升级为一个主动的、功能丰富的“个人数字内容服务中心”。
打造专属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 // 启用状态
}
]
}
为方便初学者快速上手,我们已整理一份现成的源地址列表。如果你有自己的稳定视频源,也可以据此格式自行修改与添加。请注意,公共源的可用性与稳定性无法得到长期保证,且通常不会进行持续的维护更新。
打造私人通知中枢:开源消息推送平台MagicPush深度体验
在个人或小型团队的运维实践中,我们常常会面临一个看似微小却影响深远的挑战:通知管理。随着NAS、VPS以及各类小型服务器上部署的服务越来越多,日常的平静之下,其实潜藏着不少风险。一个Docker容器意外停止、一个定时任务执行失败、一个关键服务失去响应——如果这些事件没有一个统一的告警入口,往往要等到我们手动巡检时才能发现,这不仅增加了运维的延迟,也让潜在的问题可能演变成故障。
市面上的消息推送服务确实不少,但仔细审视,它们或多或少都存在一些局限。 例如,Telegram Bot功能强大,但前提是拥有稳定的网络环境;企业微信、钉钉和飞书等平台更侧重于企业内部协同,个人使用或跨平台集成时不够灵活;微信服务号则受限于模板消息的诸多规则和审核。后来出现的PushPlus、WxPusher等集成方案,在推送方式和灵活性上有所提升,但它们本质上都依赖于第三方平台。
依赖第三方,就意味着将通知链路的稳定性交给了别人。一旦服务提供方出现宕机、API接口变更,甚至项目停止维护,所有已接入的服务、脚本和配置的令牌都需要随之调整,长期的维护成本其实并不低。
当服务数量较少时,为每个服务单独配置推送或许还能应付。但随着服务规模扩大,通知链路会变得错综复杂,管理起来非常头疼。此时,如果能够搭建一个专属于自己的推送服务,将所有服务的消息统一汇总,再根据需要智能分发至Telegram、PushPlus、企业微信或自定义Webhook等不同渠道,整个通知体系将会变得清晰、可控且可靠。
因此,建立一个私有的、统一的消息转发中心,是一个值得投入的解决方案。今天要介绍的MagicPush,正是为此目标而生的一款优秀开源工具。

项目概览
MagicPush(GitHub项目地址:magiccode1412/magicpush)是一个支持多种消息渠道的推送服务管理平台。它的核心价值在于,通过一套标准化的REST API接口,让你能够轻松地将消息推送到数十种常见的通知渠道,而无需在每个服务中重复配置。

其支持的渠道几乎涵盖了当前所有主流选项,包括:
- 即时通讯类:企业微信机器人、Telegram Bot、飞书机器人、钉钉机器人。
- 微信生态类:微信公众号模板消息(支持测试号)、WxPusher。
- 第三方推送:PushPlus、Server酱。
- 通用协议:自定义Webhook(支持自定义URL、请求头和消息体)、SMTP邮件(兼容QQ邮箱、163邮箱、Gmail等)。
这意味着,无论你的团队或个人习惯使用哪种通信工具,MagicPush都能将其纳入统一的通知体系中。
核心功能特性
MagicPush不仅仅是一个简单的消息转发器,它提供了一套完整的管理功能,使其成为一个真正可用的私有通知中枢:
- 多渠道并行推送:一条消息可以同时发送至多个已绑定的渠道,实现“一发多送”,确保关键信息触达。
- 标准化REST API:提供简单一致的HTTP接口,任何能发起HTTP请求的服务或脚本(如Python、Shell、各类监控工具)都能轻松调用。
- 安全的双令牌认证:采用JWT机制的Access Token与Refresh Token,有效保障接口调用的安全性。
- 多用户账户体系:支持用户注册与登录,便于团队协作或区分不同服务的推送权限。
- 可视化的渠道管理:通过Web界面即可方便地绑定、配置和管理各类消息渠道的密钥,无需修改配置文件。
- 灵活的接口管理:支持创建多个独立的API推送接口,每个接口可以关联不同的渠道组合,并管理其对应的访问令牌。
- 完整的历史记录:每一次推送任务的状态、时间和内容都会被完整记录,方便问题回溯和审计。
- 现代化的管理界面:基于Web的响应式管理后台,界面清晰友好,在电脑、平板或手机上都能顺畅操作。
- 贴心的主题切换:支持深色与浅色主题,满足不同环境下的视觉偏好。
部署实践指南
MagicPush的部署非常简便,官方提供了Docker镜像,可以快速在任何支持Docker的环境(如NAS、VPS、云服务器)中运行。这里以在威联通(QNAP)NAS上使用Docker Compose部署为例。
首先,准备一个docker-compose.yml文件,内容如下:
services:
magicpush:
image: magiccode1412/magicpush:latest # 国际网络环境推荐使用此镜像
# image: docker.cnb.cool/magiccode1412/magicpush:latest # 国内网络环境可选用此加速镜像
ports:
- "3099:3000" # 左侧3099为主机端口,可按需修改为其他未被占用的端口
# environment:
# - JWT_SECRET=your-secret-key # 可选环境变量,用于指定JWT密钥,不设置则会自动生成
volumes:
- /share/Container/magicpush/data:/app/server/data # 请将此路径修改为NAS上你希望存储数据的实际路径
container_name: magicpush
restart: always
部署步骤:
- 打开威联通NAS的Container Station应用。
- 选择“创建” -> “创建应用程序”。
- 将上面的YAML配置代码粘贴到编辑区。
- 根据你的网络环境,注释或取消注释对应的镜像地址(国内用户建议使用加速镜像)。
- 修改
volumes映射路径为你NAS上的真实目录(用于持久化存储数据)。 - 点击“创建”并启动容器。

无名杀Docker容器部署完整教程:安装、使用与联机指南
无名杀(Noname)是一款以经典三国杀为蓝本的开源卡牌游戏,采用HTML、CSS和JavaScript技术构建。游戏内置丰富多样的游戏模式和武将卡包,支持单机与联机玩法,并具备高度的功能扩展性。

Docker Compose配置与部署
通过Docker Compose可以快速部署无名杀游戏。以下是一个示例配置:
services:
noname:
image: hsiaoshun/noname:latest
container_name: noname
ports:
- 8081:80
- 8080:8080
restart: unless-stopped
参数说明(更多参数建议查阅官方文档):
- 端口80:用于Web界面访问。
- 端口8080:用于服务器联机功能。
游戏界面与操作指南
在浏览器中输入 http://NAS的IP:8081 即可访问游戏主界面。

首次启动时,点击“确定”进入游戏。

继续点击“确定”确认设置。

正式进入游戏界面后,系统会提供新手引导,建议仔细查看。

游戏界面适配移动端布局,操作便捷。

点击界面下方的文字标签,可以获取相关功能介绍。

完成新手引导后,即可开始自由游戏。

游戏提供多种功能选项,允许玩家自定义设置。

由于游戏基于三国杀玩法,这里不深入展开规则介绍。

游戏内置多种模式,以下重点说明联机功能(注意:测试中遇到无法进入房间的问题)。

在联机界面输入 NAS的IP:8080 ,无需添加 http 或 https 前缀。

点击“连接”按钮尝试接入服务器。

如果当前没有可用房间,可以点击取消返回。

点击“创建房间”以建立新的游戏房间。

创建成功后,系统会生成房间分享信息,联机地址需包含端口号。
无名杀-联机-国战-1/4
无名玩家邀请你加入11343892485房间
联机地址:192.168.31.90:8080
请先通过游戏内菜单-开始-联机中启用“读取邀请链接”选项

打开另一个浏览器页面进行测试,同样选择联机功能。

输入之前分享的房间链接。

理论上此时应能进入房间,但测试中遇到连接失败的情况。

部署总结与评价
测试过程中联机功能未能正常使用,起初怀疑是配置问题,但查阅项目issues后发现其他用户也有类似反馈。无名杀作为一款卡牌游戏,玩法丰富,部署简单,适合有兴趣的玩家自行尝试。
综合推荐:⭐⭐⭐(支持多种游戏模式,即开即玩)