NAS私人音乐库一键部署指南:打造高音质流媒体服务
厌倦了公共流媒体平台无处不在的广告、令人头疼的会员限制,以及被压缩的音质?是否渴望一个完全由自己掌控,能随时随地、无拘无束欣赏私人音乐收藏和高品质有声书的空间?今天,我们将手把手教你,如何利用家中现成的NAS设备,搭建一个功能强大、界面美观的专属音乐与有声书流媒体中心。这套方案不仅支持高保真音频输出和高效的实时转码,更提供了从网页到移动端的完整访问体验,让你真正成为自己数字音乐生活的主人。

方案核心:一站式私有媒体中心
本方案本质上是一个集媒体管理、智能转码与多端播放于一体的私有化解决方案。其核心优势在于对多种音频/视频格式的广泛兼容、高效的实时转码能力,以及经过精心设计的现代化用户界面。无论你是在家中通过Hi-Fi音响系统聆听无损交响乐,还是在通勤路上用手机收听引人入胜的有声书,它都能提供流畅、高品质的流媒体服务,完美契合个人或家庭对私有化数字媒体的所有想象。

一键部署:Docker Compose 快速上手
部署过程极其简便,我们推荐使用 Docker Compose 实现一键化部署。首先,在你的NAS上创建一个专属项目目录(例如 ~/daoliyu-music),然后在该目录下创建并编辑 docker-compose.yml 文件,将以下配置完整复制进去。
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: "daoliyu"
POSTGRES_USER: "daoliyu"
POSTGRES_PASSWORD: "daoliyupassword"
PGDATA: "/var/lib/postgresql/data/pgdata"
command:
- "postgres"
- "-c"
- "max_connections=200"
- "-c"
- "shared_buffers=256MB"
- "-c"
- "work_mem=32MB"
- "-c"
- "maintenance_work_mem=256MB"
- "-c"
- "checkpoint_completion_target=0.9"
- "-c"
- "wal_buffers=16MB"
- "-c"
- "port=5433"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U daoliyu -d daoliyu -p 5433"]
interval: 10s
timeout: 5s
retries: 6
start_period: 30s
ports:
- "5433:5433"
volumes:
- ./postgres:/var/lib/postgresql/data
redis:
image: redis:7-alpine
restart: unless-stopped
depends_on:
postgres:
condition: service_started
command: ["redis-server", "--appendonly", "yes"]
volumes:
- ./redis:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
backend:
image: msmkls/daoliyu-backend:0.1.7
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
environment:
NODE_ENV: production
APP_PORT: 4000
DATABASE_URL: "postgresql://daoliyu:daoliyupassword@postgres:5433/daoliyu?schema=public&connection_limit=25&pool_timeout=10&statement_timeout=60000&idle_in_transaction_session_timeout=60000"
VIDEO_TRANSCODE_CACHE: "/app/storage/transcoded/videos"
VIDEO_THUMBNAIL_CACHE: "/app/storage/thumbnails/videos"
REDIS_URL: "redis://redis:6379/0"
REGISTRATION_OPEN: "true"
LOG_LEVEL: "info"
volumes:
- ./storage:/app/storage
- ./media:/data/media
- ./audiobooks:/data/audiobooks
- ./music_videos:/data/music-videos
- ./playlists:/data/playlists
- ./plugins:/plugins
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:4000/health"]
interval: 30s
timeout: 5s
retries: 5
frontend:
image: msmkls/daoliyu-frontend:0.1.7
restart: unless-stopped
container_name: daoliyu-music-frontend
depends_on:
backend:
condition: service_started
ports:
- "5173:8080"
关键目录映射说明
配置文件中的 volumes 部分至关重要,它定义了你的媒体文件在宿主机上的存储位置。以下是各路径的详细说明:
NAS私藏音乐库新选择:开源项目“道理鱼音乐”一站式部署指南
在NAS上搭建个人音乐库,是很多音乐爱好者和数据囤积者的乐趣所在。然而,在体验过不少优秀的开源项目后,我总感觉有一层无形的隔阂——它们大多由海外开发者主导,界面交互和操作逻辑,总带着一丝“水土不服”的陌生感。
直到我遇见了「道理鱼音乐」。这个由国内开发者维护的项目,不仅界面设计现代简约,更关键的是,它将部署的复杂门槛降到了极低,让我这个折腾过不少服务的人,也感到眼前一亮。
今天,我就来详细介绍一下这款应用。它原生支持Docker一键部署,提供了ARM架构镜像,对群晖、威联通等主流NAS设备极其友好。在数据存储方案上,它既为尝鲜用户准备了轻量级的快速启动选项,也为追求长期稳定的用户预留了专业数据库的扩展空间,设计上考虑得相当周全。

项目概览:一个现代、统一的多媒体中心
「道理鱼音乐」的定位,远不止是一个音乐播放器。它更像是一个为家庭环境设计的现代多媒体库管理中枢。其界面采用了时下流行的简约风格,信息密度恰到好处,浏览起来非常舒适。各种功能按钮的布局,也和我们日常使用的Web应用(如网易云音乐、Spotify网页版)非常接近,几乎不需要额外的学习成本。

更吸引人的是它的“包容性”。它不仅能管理你的音乐收藏,还能将视频、有声书等资源一并纳入麾下,自动解析元数据和封面,实现真正的一站式媒体库管理。对于拥有多种类型媒体资源的用户来说,这无疑大大简化了管理流程。
在部署友好性上,它充分考虑了NAS用户的实际场景。通过Docker容器化部署,整个过程干净利落。官方提供的ARM架构镜像,意味着无论是主流的x86 NAS,还是基于ARM平台的群晖、威联通机型,甚至是树莓派这类小型设备,都能完美兼容。
数据存储方案是其另一大亮点,体现了开发者的细致考量:
- 轻量尝鲜:如果你只是想快速搭建一个个人音乐库,曲库规模不大,可以选择内置的轻量级数据库方案,真正做到开箱即用。
- 长期稳定:如果你计划长期使用,拥有庞大的媒体库,或者有多设备、多用户同时访问的需求,则可以无缝切换到PostgreSQL这类专业数据库。这种分层策略,既照顾了新手,也为未来的扩展留足了空间。
核心功能亮点:不止于“能听”
- 高音质原生支持:核心音频引擎对多声道及高码率音频格式有良好的兼容性,在保证音质无损的前提下,实现了快速的播放启动。
- 智能流媒体转码:对于DTS、DSD、APE、WMA等在某些设备上兼容性不佳的高码率格式,系统支持在播放时进行实时转码。它会自动生成兼容性更佳的音频流,实现“边播边转”,过程流畅无感,极大提升了跨设备播放的体验。
- 高效的封面管理系统:自动从网络获取音乐封面,并智能生成100px、300px、600px三档不同分辨率的缩略图。在浏览列表时,系统会按需加载合适尺寸的图片,显著提升了页面的加载速度和浏览的流畅度。
- 统一的多媒体库:如前所述,它将音乐、视频、有声书统一管理,自动归类并抓取元数据,让你在一个界面里管理所有数字媒体资产。
- 灵活的部署选项:提供基于PostgreSQL和SQLite的双版本Docker镜像。SQLite版本内置了轻量化的Redis模式,资源占用极低,是快速体验的理想选择。
- 便捷的移动端访问:提供了清晰的移动端应用获取指引(通常通过PWA技术),让你可以轻松地将Web界面“安装”到手机桌面,获得近乎原生应用的体验,随时随地享受自己的音乐库。
详细部署实战(以威联通NAS为例)
考虑到音乐库是典型的“时间的朋友”,数据会随着使用不断累积,为了长久的稳定性和性能,我强烈推荐部署功能更完备的 PostgreSQL版本。以下将以威联通NAS的Container Station为例,演示通过Docker Compose的部署全过程。
首先,创建一个新的应用程序,并将下面的docker-compose.yml配置代码粘贴进去。
services:
postgres:
image: postgres:16-alpine
container_name: daoliyu-postgres
restart: always
environment:
- POSTGRES_DB=daoliyu
- POSTGRES_USER=daoliyu
- POSTGRES_PASSWORD=daoliyupassword
- PGDATA=/var/lib/postgresql/data/pgdata
command:
- "postgres"
- "-c"
- "max_connections=200"
- "-c"
- "shared_buffers=256MB"
- "-c"
- "work_mem=32MB"
- "-c"
- "maintenance_work_mem=256MB"
- "-c"
- "checkpoint_completion_target=0.9"
- "-c"
- "wal_buffers=16MB"
- "-c"
- "port=5433"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U daoliyu -d daoliyu -p 5433"]
interval: 10s
timeout: 5s
retries: 6
start_period: 30s
# ports:
# - "5433:5433" # 数据库容器一般无需映射端口到宿主机
volumes:
- /share/Container/daoliyu/data:/var/lib/postgresql/data
backend:
image: msmkls/daoliyu-music:latest
container_name: daoliyu-music
restart: always
depends_on:
postgres:
condition: service_healthy
environment:
- NODE_ENV=production
- DB_PROVIDER=pg
- LOG_LEVEL=${LOG_LEVEL:-info}
- DEBUG=${DEBUG:-true}
# - STREAMING_TRANSCODE_ENABLED=true
# - VIDEO_HWACCEL=vaapi
# - VIDEO_HWACCEL_DEVICE=/dev/dri/renderD128
# - LIBVA_DRIVER_NAME=iHD
# devices:
# - /dev/dri:/dev/dri # 如需硬件加速解码视频,可取消注释
ports:
- "5173:4000" # 冒号左侧的5173为宿主机访问端口,可按需修改
volumes:
- /share/Container/daoliyu/backend-storage:/app/storage
- /share/media/music:/data/media # 映射你的音乐目录
- /share/media/有声书:/data/audiobooks # 映射你的有声书目录
- /share/media/music-videos:/data/music-videos # 映射音乐视频目录
- /share/Container/daoliyu/playlists:/data/playlists # 歌单目录
- /share/Container/daoliyu/plugins:/plugins # 插件目录
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:4000/health"]
interval: 30s
timeout: 5s
retries: 5
重要提示:路径映射
NAS部署Music Scraper:轻松自动获取音乐封面与歌词的终极指南
Music Scraper 是一款专为网络存储设备用户打造的轻量级音乐元数据刮削工具,它能够自动为音乐文件获取封面图像、歌词文本、艺术家详情等关键信息。该工具支持通过 Docker 容器一键快速部署,用户仅需通过网页界面即可在手机或电脑设备上便捷操作,极大简化了音乐库的管理流程。


核心功能与特性:
- 🎯 多元数据源支持:集成企鹅音乐、云村音乐、酷系音乐、苹果音乐、开放音乐库等六大主流数据源。
- 🖼️ 智能匹配算法:基于置信度评估机制,自动筛选并应用最佳匹配的元数据结果。
- 📱 移动端优化界面:采用赛博朋克美学风格的用户界面,完美适配手机与平板电脑访问。
- 🚀 便捷一键部署:提供开箱即用的 Docker 镜像,专门针对 NAS 环境进行了性能优化。
- 📦 高效批量处理:支持对整个目录文件夹执行自动化的批量刮削任务。
- 🎵 广泛格式兼容:兼容处理 MP3、FLAC、M4A、OGG、WAV、WMA 等多种常见音频格式。
- 📝 歌词自动下载:能够自动获取歌词并保存为标准 LRC 格式文件。
- 🎤 元数据内嵌支持:支持将歌词直接写入音频文件的元数据标签内,适用于 MP3、FLAC、M4A、OGG、WMA、WAV、AIFF、APE、WavPack 等格式。
- 🔄 多源互补机制:当首选数据源信息缺失时,系统会自动从其他备用数据源中补充获取。
- 🛡️ 广告内容过滤:自动识别并清理音乐标签中可能存在的广告信息,确保元数据简洁纯净(自 v1.0.5 版本起新增)。
- ⚡ 熔断保护机制:在数据源连续请求失败后自动触发熔断,避免无效查询,提升系统运行稳定性(自 v1.0.8 版本起新增)。
- 🎨 双主题风格切换:提供暗夜与樱花两种视觉主题,支持用户一键自由切换(自 v1.0.9 版本起新增)。
- ✏️ 元数据手动编辑:支持直接编辑音乐元数据,并允许上传或更换专辑封面图像(自 v1.0.9 版本起新增)。
- 🎤 双语歌词合并:能够自动合并原文歌词与其翻译文本,生成双语歌词(自 v1.0.9 版本起新增)。
安装部署流程
Docker Compose 配置示例
通过 Docker Compose 可以快速部署该服务。以下是一个基础的配置示例:
services:
music-scraper:
image: minzgo/music-scraper:latest
container_name: music-scraper
ports:
- 7301:7301
environment:
- TZ=Asia/Shanghai
volumes:
- ./music:/app/music
- ./data:/app/data
restart: unless-stopped
关键参数说明(更多高级参数建议查阅官方文档)
NAS部署MyFlash模拟器全攻略:即开即玩重温童年Flash游戏
MyFlash 是一款基于 Ruffle 技术开发的 Flash 游戏模拟器,它允许用户将 NAS 作为中央游戏库,通过浏览器即可在线畅玩经典游戏。该平台支持上传本地游戏文件,让重温童年快乐变得简单便捷,无需复杂设置即可享受即开即玩的乐趣。

作为 David 的最新开源项目,MyFlash 提供了一个高效的游戏运行环境。项目地址如下,方便用户直接访问和探索:
https://gitee.com/heizicao/my-flash

安装步骤
通过 Docker Compose 可以快速部署 MyFlash。以下是一个标准的配置示例,用户只需根据自身环境稍作调整即可启动服务。
services:
myflash:
image: heizicao/myflash:latest
container_name: myflash
ports:
- 3000:3000
volumes:
- ./game:/app/game
- ./config:/app/config
restart: always
参数说明(建议查阅官方文档以获取更多详细信息):
- /app/game(可选路径):用于存放游戏文件。
- /app/config(可选路径):用于存放配置文件。
使用方法
部署完成后,在浏览器中输入 http://NAS的IP:3000 即可访问 MyFlash 界面。界面设计直观,用户可以轻松浏览和选择游戏。

打开游戏分类,可以看到系统已经内置了几款经典游戏(这些游戏往往能唤起许多用户的童年回忆)。

在界面右上角,用户可以切换深色模式,以适应不同的视觉偏好。

选择想要游玩的游戏后,点击加载按钮即可启动。游戏运行流畅,得益于浏览器对 GPU 的调用,用户通常不会感到卡顿。

请注意,默认设置禁止外链跳转,因此游戏内的某些按钮点击后可能看似没有响应,这属于正常现象。

如果希望游戏画面填满整个屏幕,可以调整缩放模式或点击旁边的全屏按钮。

在游戏窗口内右键点击,可以打开更多设置选项。如果遇到黑屏问题,尝试删除所有存档文件通常可以解决。

对于本地已下载的 Flash 小游戏(.swf 格式),可以通过上传功能添加到平台中。

上传完成后稍作等待,游戏即可正常加载并开始游玩。

扩展游戏库
用户可能已经注意到,通过路径映射可以轻松管理游戏文件。这意味着可以存放更多游戏,完全替换或扩充原有的游戏库。例如,可以收集和整理大量游戏资源来丰富体验。
这里提供一个游戏合集下载链接作为参考:https://pan.baidu.com/s/1OdQSDgIp2Mhc7pbTH-76GQ?pwd=jbdm
NAS部署VideoCaptioner:字幕识别与翻译工具完整教程
VideoCaptioner是一款基于大语言模型(LLM)的视频字幕处理工具,它能够通过API或本地离线方式进行语音识别,并利用大语言模型实现字幕的智能断句、校正与翻译。该工具支持从字幕生成到视频处理的全流程一键操作,为用户提供便捷的字幕解决方案。

需要提醒的是,电脑版VideoCaptioner提供了更全面和丰富的功能,而Docker版本在功能上相对有限,更适合轻量级使用场景。

部署VideoCaptioner
使用Docker Compose可以快速部署VideoCaptioner。以下是一个基本的配置示例:
services:
video-captioner:
image: ywsj/video-captioner:latest
container_name: video-captioner
ports:
- 8501:8501
volumes:
- ./temp:/app/temp
restart: always
在配置中,可以通过环境变量设置OpenAI相关参数,例如OPENAI_BASE_URL和OPENAI_API_KEY,这些参数为可选项,用于连接外部API服务。建议查阅官方文档以获取更多高级配置选项。

使用VideoCaptioner
部署完成后,在浏览器中访问http://NAS的IP:8501即可打开VideoCaptioner的操作界面。

界面支持深色模式切换,便于在不同光线环境下使用。

首先点击“上传视频”按钮,选择需要处理的视频文件。注意视频文件大小不能超过200MB,以确保处理效率。

视频上传成功后,点击“开始识别”按钮,工具将自动进行语音识别和字幕生成。

处理过程中资源消耗较低,即使是本地运行也能高效完成任务。

对于较短的视频,字幕识别通常在几秒钟内即可完成,结果会实时显示在界面上。

识别完成后,滑动到页面下方,点击“下载字幕文件”按钮,即可保存生成的字幕文件。

生成的字幕准确度较高,能够满足日常使用需求。

接下来切换到“字幕翻译”功能,上传之前下载的字幕文件。

选择目标翻译语言,例如粤语或其他方言,然后点击“开始翻译”按钮。

翻译过程非常迅速,几乎瞬时完成,且翻译结果自然地道。

确认翻译无误后,点击“下载字幕”按钮保存翻译后的字幕文件。

翻译后的字幕支持双语显示,方便对照查看。

总结与推荐
VideoCaptioner作为一个视频字幕处理项目,在电脑版上表现优秀,功能全面。然而,Docker版本的功能相对较少,且维护更新可能不够频繁。尽管如此,对于处理小体积视频并需要快速翻译的用户而言,Docker版本仍然是一个可行的选择,因为它资源消耗低、处理速度快。
综合推荐:⭐⭐⭐(适用于小体积视频的快速翻译)
使用体验:⭐⭐⭐(功能较为基础,期待后续增强)
部署难度:⭐⭐(配置简单易上手)
NAS部署指南:ExerciseDiary运动数据可视化工具全程图解
你是否也羡慕过GitHub上那色彩斑斓的贡献热力图,希望自己的健身历程也能如此直观地被记录和回顾?Exercise Diary正是这样一款工具,它将热力图的灵感应用于个人健身记录,帮助你追踪并可视化每日的运动轨迹,让坚持变得有迹可循,充满成就感。

这款工具的设计哲学是“简洁而有力”。它没有复杂的社交功能或臃肿的课程推荐,其核心就是为你生成一张专属的运动热力图,让每一次挥洒的汗水都化为日历上一个鲜明的色块,直观地展示你的坚持与进步。

环境部署与安装
对于拥有NAS(网络附加存储)设备的用户来说,部署Exercise Diary最便捷的方式无疑是使用Docker。通过Docker Compose,你只需几分钟即可完成搭建。下面是一份基础的docker-compose.yml配置文件示例,你可以直接复制使用。
services:
exdiary:
image: aceberg/exercisediary:latest
container_name: exdiary
ports:
- 8851:8851
environment:
- TZ=Asia/Shanghai
volumes:
- ./data:/data/ExerciseDiary
restart: unless-stopped
将上述内容保存为docker-compose.yml文件,然后在同一目录下执行 docker-compose up -d 命令,服务就会在后台启动。
关键配置参数说明:
:::
- TZ(环境变量):设置容器时区,例如
Asia/Shanghai,确保日志和日期记录准确。 - HOST(环境变量):定义应用监听的网络地址,默认可不设置。
- PORT(环境变量):定义应用内部监听端口,需与映射端口(如8851)对应。
- THEME(环境变量):个性化界面主题,可选
emerald、grass、grayscale、ocean、sand、wood。 - COLOR(环境变量):设置整体配色模式,可选
light(浅色)或dark(深色)。 :::
提示:更详细的配置选项,建议查阅项目的官方文档以获取最新信息。
基础使用与功能解析
部署成功后,打开浏览器,访问 http://你的NAS_IP地址:8851,就能看到Exercise Diary的清爽界面了。
’ fill=’%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E “null”)
首次进入时,界面为英文。别担心,使用Chrome或Edge浏览器的网页翻译功能,即可获得流畅的中文体验。建议你先进入设置页面(通常位于侧边栏或右上角)进行一些基础配置。
’ fill=’%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E “null”)
NAS部署贴吧云签到工具Tieba-Cloud-Sign全攻略
还在为每天手动登录多个贴吧签到而感到麻烦吗?Tieba-Cloud-Sign 是一款专为百度贴吧设计的自动化签到与管理工具。将它部署在你的 NAS 上,就能彻底解放双手,实现贴吧签到的全自动化。不仅如此,通过丰富的插件生态,它还能帮你完成云灌水、自动点赞、封禁管理、帖子审查等高级操作,堪称贴吧管理员的得力助手。

如何部署:使用 Docker Compose 一键安装
最便捷的部署方式是使用 Docker Compose。它不仅能一键拉起 Tieba-Cloud-Sign 应用本身,还能同时配置好其依赖的数据库服务,非常适合在 NAS 环境中使用。
下面是一份完整的 docker-compose.yml 配置示例,你可以直接复制使用:
services:
tieba-cloud-sign:
image: moenetwork/tieba-cloud-sign:latest
container_name: tieba-cloud-sign
ports:
- 8080:8080
environment:
- PUID=1000
- PGID=1000
- DB_HOST=db:3306
- DB_USER=root
- DB_PASSWD=janejane123456
- DB_NAME=tiebacloud
- CSRF=true
depends_on:
- db
restart: always
db:
image: agrozyme/mariadb:latest
container_name: tieba-mariadb
environment:
- MYSQL_DATABASE=tiebacloud
- MYSQL_ROOT_PASSWORD=janejane123456
volumes:
- ./mysql:/var/lib/mysql
restart: always
将上述内容保存为 docker-compose.yml 文件,然后在文件所在目录执行 docker-compose up -d 命令,服务就会在后台启动。
关键环境变量说明:
- PUID / PGID:容器内进程运行的用户和组ID。请根据你宿主机(NAS)的实际用户ID进行设置,以确保容器有正确的文件权限。
- DB_HOST:MariaDB数据库的地址。这里使用了Docker Compose的服务名
db和默认端口3306。 - DB_USER / DB_PASSWD:连接数据库的用户名和密码。请务必修改
DB_PASSWD和下方MYSQL_ROOT_PASSWORD为一个强密码。 - DB_NAME:Tieba-Cloud-Sign 使用的数据库名称。
- CSRF:是否开启跨站请求伪造防护,建议保持
true以增强安全性。 - MYSQL_DATABASE:MariaDB容器启动时自动创建的数据库名,需与
DB_NAME保持一致。 - MYSQL_ROOT_PASSWORD:设置MariaDB数据库的root用户密码。
提示:部署前建议查阅项目官方文档,以获取最新的配置参数和最佳实践。
New‑API大模型聚合网关:自托管统一管理多平台AI资源全指南
OpenClaw 作为热门工具,其部署与使用教程广泛流传。然而,用户们普遍感受到其消耗Token的速度之快。
面对琳琅满目的AI平台,您可能从论坛或群组中获得了多种免费额度,但OpenClaw官方支持的平台有限。为了更灵活、统一地管理这些模型资源,是否可以将它们整合起来,通过一个自托管平台进行统一调用与管理?
本文将详细介绍名为New‑API的项目。它能够协助您从获取模型Token、系统配置,到部署运行与接口调用,逐步构建属于自己的自托管大模型网关,从而实现模型资源的集中管理与高效调用。借助New‑API,您无需为每个平台单独适配接口,也不必担忧调用过程混乱,轻松实现多模型统一访问、流量限制与日志管理。如果您的Token资源充裕,还可以选择对外运营模式,获取额外收益。

接下来,我们将深入解析New‑API的核心特点、部署流程、Token配置方法以及实际调用示例,助您快速掌握这一工具。
New‑API 概述:开源大模型聚合网关详解
New‑API 是一款开源的大模型聚合与网关系统,它本身不提供模型能力,而是依赖第三方模型的API Key来进行调用。
其核心功能涵盖:
- 多模型统一接口:支持OpenAI、Claude、Gemini等多种模型,提供兼容OpenAI风格的API接口;
- 集中Token管理:支持API Key的分组、流量限制和调用统计,便于高效管理多个模型的访问凭证;
- 自托管网关:具备用户管理、日志查看和权限控制功能,确保安全可控;
- 灵活部署选项:支持Docker、Docker Compose、本地部署及多机集群模式,适应不同环境需求。
简而言之,New‑API 能够将各类模型统一管理,通过单一接口进行调用,显著降低开发与维护的复杂性。
部署与初始化:以威联通NAS为例分步操作
本文以威联通NAS为环境,通过Docker Compose方式演示部署过程。
尽管官方不建议使用SQLite数据库进行部署,但这里仍简要介绍,以便有兴趣尝试的用户快速上手。
services: new-api: image: calciumion/new-api:latest container_name: new-api restart: always ports: - "3000:3000" # Web 控制台,左侧建议修改 environment: TZ: "Asia/Shanghai" volumes: - /share/Container/newapi:/data # 左侧目录自行更换
若希望进行完整部署,请参考以下配置示例:
services: # 数据库服务(仅内部使用,不映射端口) mysql: image: mysql:8.0 container_name: newapi-mysql restart: always environment: MYSQL_ROOT_PASSWORD: newapi MYSQL_DATABASE: newapi MYSQL_USER: newapi MYSQL_PASSWORD: newapi TZ: "Asia/Shanghai" volumes: - /share/Container/new-api/mysql_data:/var/lib/mysql networks: - new-api-network
# Redis 服务(New-API 默认依赖) redis: image: redis:latest container_name: newapi-redis restart: always networks: - new-api-network
# New-API 服务 new-api: image: calciumion/new-api:latest container_name: new-api restart: always depends_on: - mysql - redis ports: - "8399:3000" # Web 控制台端口,端口自行更改 environment: TZ: "Asia/Shanghai" SESSION_SECRET: "f4s9K8l3uP1qV7mZ2xR6wT0bY5nD8eH3" CRYPTO_SECRET: "r7M2yX9cL6vP3sT1qF8hW0zK4aB5jN6e" SQL_DSN: "newapi:newapi@tcp(mysql:3306)/newapi?charset=utf8mb4&parseTime=True&loc=Local" REDIS_CONN_STRING: "redis://redis" ERROR_LOG_ENABLED: "true" BATCH_UPDATE_ENABLED: "true" volumes: - /share/Container/new-api/data:/data - /share/Container/new-api/logs:/app/logs # 保存日志 networks: - new-api-network healthcheck: test: ["CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' || exit 1"] interval: 30s timeout: 10s retries: 3
networks: new-api-network:
打开威联通的Container Station,创建新的应用程序。如果担心数据库权限问题,可预先创建文件夹并设置相应权限。
Next-Whois:现代化开箱即用的免费开源Whois查询工具,支持Docker一键部署
在互联网的世界里,了解一个域名或IP地址背后的“身份”信息,是许多场景下的刚需——无论是检查域名是否可注册、排查网络问题,还是评估网站的可信度。传统的Whois查询工具往往界面陈旧、功能单一,且缺乏便捷的部署方式。今天,我们就来介绍一款完全开源、功能强大且能一键部署的现代化替代品:Next-Whois。
Next-Whois(项目地址 zmh-program/next-whois)是一个基于 Next.js 框架构建的全功能网络信息查询平台。它不仅提供了一个美观、响应式的Web界面,让普通用户能轻松查询域名、IP、AS号等资源的WHOIS与RDAP信息,还面向开发者提供了标准的REST API,便于集成到自动化工具或内部系统中。更值得一提的是,它内置了Redis缓存机制,能大幅提升重复查询的速度,并通过Docker容器技术实现了真正意义上的开箱即用和快速部署。

它能用在哪些地方?核心应用场景一览
Next-Whois 的设计兼顾了易用性与专业性,适用于从日常上网到技术运维的多种场景:
- 域名状态检查:快速查看一个域名是否已被注册,并获取其注册商、创建日期、到期时间等核心信息,为域名投资或品牌保护提供参考。
- 安全与风控辅助:在收到可疑链接或邮件时,通过查询域名的注册信息(如注册时间、注册商是否可疑)来初步判断网站的可信度,识别潜在的钓鱼或诈骗风险。
- 网络运维与规划:在部署服务器、配置防火墙或进行网络故障排查时,查询IP地址的归属地、所属自治系统(AS)等信息,辅助进行网络架构分析和问题定位。
- 市场与竞争分析:分析竞争对手或目标公司的线上资产,通过其使用的域名、IP及服务器信息,侧面了解其技术栈和业务布局。
- 日常上网“避坑”:遇到陌生网站时,普通用户可以通过它快速“查一下底细”,了解网站的基本背景,避免访问来路不明的高风险站点。
- 开发与调试工具:作为网站连通性测试、CDN配置验证或反向代理调试过程中的辅助信息查询工具,提供额外的上下文数据。
- 简易信息溯源:为用户提供一个直观的“网络身份证查询器”,无需记忆复杂的命令行参数,即可获取网络资源的基础注册信息。
功能亮点:不止于查询
Next-Whois 在提供核心查询能力的基础上,围绕现代Web应用体验做了大量优化:
- 美观现代的交互界面:采用流行的 Shadcn UI 组件库,界面干净清爽,交互反馈及时,告别传统Whois工具的命令行黑框。
- 真正的全平台适配:完善的响应式设计,在手机、平板、电脑上都能获得良好的浏览和操作体验,并支持安装为PWA(渐进式Web应用)。
- 贴心的个性化设置:支持亮色/暗色主题切换,并可跟随操作系统主题自动切换,保护你的眼睛。
- 高效的查询性能:基于 Next.js 框架,支持无服务器部署,页面加载与查询响应速度飞快。
- 本地历史记录:自动在浏览器本地保存你的查询历史,方便随时回溯,无需重复输入。
- 开放的集成接口:提供了简洁的 RESTful API,开发者可以轻松将其集成到自己的监控脚本、CI/CD流程或内部管理平台中。
- 全面的查询支持:查询引擎强大,支持 IPv4/IPv6 地址、域名、自治系统号(ASN)以及 CIDR 格式网段的全方位信息查询。
- 便捷的结果分享:可将查询结果页面生成一个独立的、可分享的链接,方便团队协作或存档记录。
- 智能缓存加速:通过配置 Redis,可以对查询结果进行缓存,避免对公共Whois服务器的频繁请求,既提升了速度,也减轻了对方服务器的压力。
- 多语言国际化:界面支持多种语言,方便全球不同地区的用户使用。
- 双协议保障:优先使用更现代、结构化的 RDAP 协议查询,失败时自动回退至传统的 WHOIS 协议,最大程度保证查询成功率。
手把手部署教程(以威联通NAS为例)
部署 Next-Whois 非常简单。项目作者提供了最简化的单命令运行方式:
docker run -d -p 3000:3000 programzmh/next-whois-ui
但对于追求稳定和可配置性的用户,更推荐使用 Docker Compose 进行部署。下面是一个功能完整的配置示例,你可以直接复制使用:
services:
next-whois:
image: programzmh/next-whois-ui:latest
container_name: whois
restart: always
ports:
- "9191:3000" # 将容器内部的3000端口映射到主机的9191端口
environment:
# WHOIS 查询行为配置
- NEXT_PUBLIC_HISTORY_LIMIT=20 # 本地历史记录最大保存数量(设为-1表示无限制)
- NEXT_PUBLIC_MAX_WHOIS_FOLLOW=2 # 查询域名时,Whois服务器“跳转跟随”的最大层数,用于避免循环查询
- NEXT_PUBLIC_MAX_IP_WHOIS_FOLLOW=5 # 查询IP时,Whois最大跟随层数(一般保持默认值5即可)
# Redis缓存配置(如果不配置Redis,则缓存功能将被禁用)
- REDIS_HOST=redis # Redis服务的主机地址(如果使用独立容器,此处可填写容器服务名)
- REDIS_PORT=6379 # Redis服务的端口号
- REDIS_PASSWORD= # Redis访问密码,如果没有密码则留空
- REDIS_DB=0 # 使用的Redis数据库编号
- REDIS_CACHE_TTL=3600 # 缓存条目的有效时间,单位为秒
# 可选的Moz API配置(用于获取域名权威度等扩展信息,非必需)
- MOZ_ACCESS_ID=xxxx
- MOZ_SECRET_KEY=xxxx
# 网站自定义信息配置
- NEXT_PUBLIC_SITE_TITLE=羊刀仙 Whois 查询 # 显示在浏览器标签页和页面上的标题
- NEXT_PUBLIC_SITE_DESCRIPTION=一个基于 Next Whois 的现代化域名/IP/ASN 查询平台 # 网站描述,可用于SEO
- NEXT_PUBLIC_SITE_KEYWORDS=Whois,RDAP,域名查询,IP查询,ASN查询,羊刀仙 # 网站关键词
重要提示:官方镜像 programzmh/next-whois-ui 是预构建好的静态文件。如果你需要对界面文字、样式或功能进行深度定制,需要克隆项目源码,修改后自行构建Docker镜像。
OmniBox 2.0全平台影音整合指南:从NAS部署到多端播放详解
近期,有朋友提到影音利器OmniBox已经升级至2.0版本。然而,经过一番了解后发现,虽然版本号更新了,但部分用户对于升级后的具体使用方法感到有些困惑。
为此,我决定亲自上手体验一番,探究2.0版本究竟带来了哪些更新、如何操作更为顺畅,同时也为尚未摸清门道的朋友提供一份参考。当前硬盘价格持续走高,早已让普通NAS用户感到成本压力。在此背景下,像OmniBox这样能够有效提升资源利用率、且实际体验颇为出色的项目,确实显得难能可贵,值得向开发者致意。
需要注意的是,2.0版本目前仍处于持续完善阶段。若升级后感觉不太适应或遇到问题,可以回退至旧版本(建议提前备份旧版数据,或单独创建一个新应用进行体验),旧版镜像并未被移除。

项目概述
OmniBox是一个一站式的影视订阅与多终端播放平台。用户可以依据OmniBox的规范,使用JavaScript或Python自行构建内容获取源,并在后台将多个源自由组合成订阅(涵盖音乐、有声读物、影视、直播、电台等)。随后,便可在网页、手机、电视等全平台客户端中使用这些订阅内容。任何支持TVBox、猫源、UZ、Emby等协议的客户端均可实现无缝对接。该平台同时支持电视直播源、主流平台直播间以及网盘视频的在线观看,并支持通过Docker进行一键式部署。
部署步骤
以下以威联通NAS为例,演示通过Docker Compose进行部署的过程。
OmniBox支持SQLite、MySQL、PostgreSQL三种数据库,默认使用SQLite。此外,还提供了轻量版镜像lampon/omnibox:lite,该版本仅支持JavaScript类型的内容获取脚本。
默认的部署代码如下(使用SQLite数据库),如需使用MySQL版本,请参阅后续部分:
services:
omnibox:
image: lampon/omnibox:latest # 完整版,支持Python爬虫和视频嗅探
container_name: omnibox
restart: always
ports:
- "7023:7023" # 左侧端口号可根据需要自行修改
environment:
TZ: Asia/Shanghai
DATABASE_TYPE: sqlite # 使用默认SQLite时,这两项环境变量可删除
DATABASE_URL: ./data.sqlite # 同上
volumes:
- /share/Container/omnibox:/app/data
若希望使用MySQL数据库,可以参考以下部署代码:
# 此示例假设您尚未安装MySQL,已安装的用户可根据实际情况调整
# 服务间通过Docker网络内部互通,无需对外映射MySQL端口
services:
mysql:
image: mysql:8.0
container_name: omnibox-mysql
restart: always
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: qnap1234 # 数据库root账户密码,请自定义
MYSQL_DATABASE: omnibox # 为OmniBox创建的专属数据库名
command: --default-authentication-plugin=mysql_native_password
volumes:
- /share/Container/omnibox/mysql:/var/lib/mysql
omnibox:
image: lampon/omnibox:latest
container_name: omnibox
restart: always
depends_on:
- mysql
ports:
- "7023:7023"
environment:
TZ: Asia/Shanghai
DATABASE_TYPE: mysql
DATABASE_HOST: mysql
DATABASE_PORT: "3306"
DATABASE_USERNAME: root
DATABASE_PASSWORD: qnap1234 # 需与上方MySQL服务设置的root密码一致
DATABASE_DATABASE: omnibox # 需与上方创建的数据库名一致
volumes:
- /share/Container/omnibox/app:/app/data
打开威联通的Container Station,创建新的应用程序并粘贴相应的配置代码。