Vikunja开源待办清单:Docker一键部署与全面使用指南
Vikunja 是一款基于开源理念开发的任务管理工具,其主要目标是帮助用户有效地组织和追踪日常生活及工作中的各类待办事项。

您可以访问其在线演示站点(使用 demo/demo 作为登录凭证)以提前体验功能:
Vikunja安装部署步骤
使用 Docker Compose 配合 Sqlite 数据库
services:
vikunja:
image: vikunja/vikunja:latest
container_name: vikunja
environment:
- VIKUNJA_SERVICE_PUBLICURL=http://192.168.31.90:3456
- VIKUNJA_SERVICE_JWTSECRET=74eBQyirDWKwog8syDktUk9vuQKXTVoE
- VIKUNJA_DATABASE_PATH=/db/vikunja.db
ports:
- 3456:3456
volumes:
- ./files:/app/vikunja/files
- ./db:/db
restart: unless-stopped
使用 Docker Compose 配合 PostgreSQL 数据库
services:
vikunja:
image: vikunja/vikunja:latest
container_name: vikunja
environment:
- VIKUNJA_SERVICE_PUBLICURL=http://192.168.31.90:3456
- VIKUNJA_SERVICE_JWTSECRET=74eBQyirDWKwog8syDktUk9vuQKXTVoE
- VIKUNJA_DATABASE_TYPE=postgres
- VIKUNJA_DATABASE_HOST=db
- VIKUNJA_DATABASE_PASSWORD=changeme
- VIKUNJA_DATABASE_USER=vikunja
- VIKUNJA_DATABASE_DATABASE=vikunja
ports:
- 3456:3456
volumes:
- ./files:/app/vikunja/files
depends_on:
db:
condition: service_healthy
restart: unless-stopped
db:
image: postgres:18
container_name: vikunja-db
environment:
POSTGRES_PASSWORD: changeme
POSTGRES_USER: vikunja
volumes:
- ./db:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -h localhost -U $$POSTGRES_USER"]
interval: 2s
start_period: 30s
restart: unless-stopped
使用 Docker Compose 配合 MySQL/MariaDB 数据库
WeChatSelkies:基于Docker的微信QQ浏览器访问方案完整指南
WeChatSelkies 是一款创新的应用程序,它允许用户通过网页浏览器直接访问和使用微信与QQ。该工具基于 Docker 容器技术构建,并利用了 Selkies WebRTC 技术来提供流畅的远程桌面体验,从而实现在 Linux 系统上运行微信/QQ客户端,并通过任何支持现代浏览器的设备进行访问。

核心功能与特性
该解决方案具备一系列突出特点,旨在提供便捷、安全且功能完备的体验:
- 🌐 浏览器直接访问:无需在本地计算机安装任何客户端软件,仅需通过支持 WebRTC 的网页浏览器即可连接并使用完整的微信或QQ功能。
- 🐳 Docker化容器部署:采用容器化部署方式,将所有依赖和环境打包,实现了良好的环境隔离,部署过程简单快捷。
- 🔒 独立数据持久化存储:支持将用户配置和聊天记录等数据映射并存储在容器之外的本机目录中,确保数据在容器更新或重建后不会丢失。
- 🎨 完善的中文环境支持:容器内预置了完整的中文字体,并进行了本地化设置,同时兼容本地中文输入法的正常使用。
- 🖼️ 便捷的图片复制功能:用户可以通过侧边栏的控制面板启用图片复制功能,方便地将会话中的图片保存到本地。
- 📁 支持双向文件传输:同样通过侧边栏面板,用户可以轻松地在本地计算机与远程运行的微信/QQ客户端之间传输文件。
- 🖥️ 广泛架构兼容性:提供适用于 AMD64(如 Intel/AMD)和 ARM64(如苹果 M 系列、树莓派)主流 CPU 架构的镜像,适应性广。
- 🔧 可选硬件加速:支持调用宿主机的 GPU 资源(如核显)进行图形渲染加速,以提升视频播放等场景的流畅度。
- 🪟 集成窗口切换器:在界面左上角提供了悬浮窗切换按钮,便于用户将微信窗口切换到后台,为未来集成更多应用(如QQ)奠定了基础。
- 🤖 客户端自动启动:可通过环境变量灵活配置容器启动时是否自动运行微信或QQ客户端,满足不同使用习惯。
安装与配置步骤
推荐使用 Docker Compose 进行部署,管理起来更为清晰方便。
Docker Compose 配置文件示例
services:
wechat-selkies:
image: nickrunning/wechat-selkies:latest
container_name: wechat-selkies
ports:
- 3001:3001
environment:
- PUID=1000
- PGID=100
- TZ=Asia/Shanghai
- LC_ALL=zh_CN.UTF-8
- AUTO_START_WECHAT=true
- AUTO_START_QQ=false
volumes:
- ./config:/config
restart: unless-stopped
关键配置参数说明
一站式复古游戏体验:手把手教你部署RetroArch模拟器
RetroArch 是一款由 Libretro 团队开发的开源、跨平台模拟器前端。它集成了众多模拟器核心(Cores),能够在一个统一的界面中运行多种复古游戏平台的作品,为玩家带来便捷且怀旧的游戏体验。
安装部署
推荐使用 Docker Compose 方式部署,这是最为简便快捷的方法。
services:
retroarch:
image: inglebard/retroarch-web:latest
container_name: retroarch
ports:
- 8080:80
restart: unless-stopped
将上述配置保存为 docker-compose.yml 文件,然后在文件所在目录执行 docker-compose up -d 命令即可启动服务。
使用指南
服务启动后,在电脑浏览器地址栏输入 http://你的NAS的IP地址:8080 即可访问 RetroArch 的 Web 界面。

进入主界面后,点击 “Load Core” 按钮来选择模拟器核心。可以看到,RetroArch 支持的游戏平台非常丰富,涵盖了从经典主机到掌机的多种选择。

选择好核心后,点击界面上的 “Run” 按钮开始运行游戏。

接着,需要加载游戏文件。点击 “Add / Upload Game” 选项,你可以上传自己准备好的游戏 ROM 文件(请注意版权)。

游戏上传完成后,系统会提示你选择文件路径来加载游戏。此时点击最上方的 “Start Directory” 进入起始目录。


在目录中就能找到之前上传的游戏文件了(部分文件名可能出现乱码,属于正常现象)。

选择游戏文件,并点击之前加载的对应模拟器核心,即可启动游戏。

游戏顺利加载并开始运行,复古的乐趣即刻呈现。

在游戏运行过程中,点击界面顶部的箭头按钮可以呼出菜单。

在菜单中找到并选择 “Controls” 选项,可以进行按键设置。

一站式指南:轻松部署Blinko卡片笔记,打造你的灵感管理中心
你是否常常有这样的瞬间:一个绝妙的点子突然闪过脑海,却因为手边没有趁手的工具而眼睁睁看着它溜走?或者,你厌倦了将个人笔记和数据托付给第三方平台,渴望一种更安全、更自主的知识管理方式?
如果你正在寻找答案,那么Blinko很可能就是你期待已久的解决方案。它不仅仅是一个笔记应用,更是一个由AI驱动的个人灵感管理中心。Blinko的设计初衷,就是让你在最自然、最无负担的状态下,捕捉并管理每一个转瞬即逝的思考火花,确保你的创造力永不枯竭。
Blinko核心特色:为何选择它?
- 🤖 AI增强的智能检索:告别机械的关键词搜索。Blinko集成了先进的RAG(检索增强生成)技术,让你能用最自然的语言提问,比如“上周我关于产品设计的那个模糊想法是什么?”。它能理解你的意图,从笔记海洋中精准打捞出相关内容。它兼容OpenAI、Azure OpenAI以及本地的Ollama等多种AI服务,灵活适配你的使用习惯。
- 🔒 数据完全自主可控:你的思想,只属于你。Blinko将所有数据——笔记、文件、元数据——都存储在你自己的服务器上,无论是家庭NAS、云服务器还是本地电脑。你拥有100%的所有权和掌控权,彻底告别隐私泄露的担忧。
- 🚀 极速记录与纯净格式:灵感不等人。Blinko追求极致的启动和响应速度,确保想法涌现时能被瞬间捕捉。所有笔记均以纯文本形式存储,完美支持Markdown语法。这意味着你可以轻松排版、结构化内容,并且分享和迁移都毫无障碍。
- 💡 轻量架构与全平台覆盖:基于现代框架Tauri构建,Blinko在提供丰富功能的同时,保持了出色的性能和极低的资源占用。其客户端覆盖了macOS、Windows、Linux及Android等主流平台,让你在任何设备上都能获得无缝衔接的体验。
- 🔓 开源与社区共建:Blinko是一个完全开源的项目,代码在GitHub上公开透明。这不仅意味着安全可信,更欢迎每一位开发者参与贡献,共同塑造它的未来,推动功能迭代与生态繁荣。
立即体验:
- 下载客户端:前往项目发布页面,获取适合你设备的版本:https://github.com/blinkospace/blinko/releases
- 在线演示:想先睹为快?访问在线演示(账号:
blinko,密码:blinko):https://demo.blinko.space/
部署安装指南:快速搭建你的私人笔记库
对于大多数用户,使用Docker Compose是最快捷、最可靠的部署方式。下面提供两个版本的配置,你可以根据需求选择。
Docker Compose(官方推荐模板) 这个模板包含了完善的服务健康检查机制,能确保Blinko和数据库服务稳定运行后再进行连接,适合追求稳定性的生产环境。
services:
blinko-website:
image: blinkospace/blinko:latest
container_name: blinko-website
environment:
NODE_ENV: production
NEXTAUTH_URL: http://localhost:1111
NEXT_PUBLIC_BASE_URL: http://localhost:1111
NEXTAUTH_SECRET: my_ultra_secure_nextauth_secret
DATABASE_URL: postgresql://postgres:mysecretpassword@postgres:5432/postgres
volumes:
- ./blinko:/app/.blinko
depends_on:
postgres:
condition: service_healthy
restart: always
ports:
- 1111:1111
healthcheck:
test: ["CMD", "wget", "--spider", "http://blinko-website:1111/"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
postgres:
image: postgres:14
container_name: blinko-postgres
restart: always
ports:
- 5432:5432
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: mysecretpassword
volumes:
- ./db:/var/lib/postgresql/data
healthcheck:
test:
["CMD", "pg_isready", "-U", "postgres", "-d", "postgres"]
interval: 5s
timeout: 10s
retries: 5
Docker Compose(简化配置版)
如果你希望配置更简洁,可以选用这个版本。请注意,首次启动时,数据库可能尚未完全就绪,导致Web服务连接失败。如果遇到此情况,只需重启一次blinko-website容器即可。
内存硬盘CPU全线涨价,NAS用户该何去何从?
近期的数码3C市场,各种涨价风潮令人咋舌,今天我们来聚焦讨论一下NAS领域的情况。

基于当前的趋势,我个人判断这波涨价态势至少将延续到明年第二季度,上游厂商的策略调整是主要原因。展望2026年,市场环境极有可能依然严峻,大家需要做好心理准备。可以预见,像英伟达这样的行业巨头明年的定价策略,将在很大程度上反映出整个市场的成本走向。
市场背景:全产业链成本上行
最近几个月,存储市场的价格上涨已经不再是单个型号的短期波动,而是整个产业链的系统性抬升。在DRAM(内存)领域,无论是2025年第四季度的合约价还是现货价都处于持续攀升的通道,DDR4和DDR5价格同步上涨已成为市场常态。在NAND闪存方面,其需求受到了人工智能数据中心和企业级固态硬盘的强劲拉动,年底的合约价与晶圆价格均出现了显著跃升。简而言之,从内存颗粒到闪存颗粒,再到终端固态硬盘和机械硬盘产品,整个存储产业链正经历一场由上游供需关系驱动的全面价格上涨周期。

然而,如果只看到内存和硬盘在涨价,还未触及成本上涨的全部核心。因为算力端——也就是处理器——的价格同样在走高。一方面,采用先进制程的晶圆以及先进封装技术的报价上调已是公开的趋势,代工厂对5纳米、3纳米等先进节点的提价,会直接推高CPU和SoC芯片的制造成本基础。另一方面,长期且旺盛的AI计算需求持续挤占着高利润的芯片产能,导致传统的消费级算力芯片同样面临供应压力,近期渠道市场已经出现了英特尔和AMD主流处理器价格同步上调的实际情况。因此,行业的真实状况是:算力(CPU)和存储(DRAM/NAND/HDD)同时进入涨价通道。而NAS(网络附加存储)设备恰好是由“CPU + 内存 + 硬盘”这三大部分构成的,其整机成本被抬高已是必然结果。
行业价格战还能持续吗?
对于消费者而言,厂商之间围绕用户价值的竞争(“内卷”)无疑是有益的。以威联通NAS为主要设备的用户视角来看,其推出的Qu805型号确实曾引发了一轮极具吸引力的性价比热潮。我自己也在该产品发布后不久,将原有的TS-464C2升级为了Qu805。
但仅仅过去一个月,再讨论“内卷”时,我们必须正视一个现实:上游原材料和零部件的成本正在全线抬升。这里的“成本抬升”并非空谈,而是同时发生在两个关键方向上:算力端(CPU)和存储端都在涨价。对于NAS产品而言,我们还需要进一步剖析“存储”部分:硬盘/闪存存储介质的涨价是整个行业的大趋势;而内存(DRAM)的上涨,则像一根锥子,直接顶着NAS整机的成本向上走。

算力端:CPU涨价的深层逻辑
CPU价格上涨的根源,不在于零售市场的短期波动,而在于上游产业链的“地基”发生了改变。
首先,先进制程晶圆与先进封装服务的报价上涨已是公开趋势。多方行业报告显示,台积电对于3纳米、5纳米等先进制程的报价在2025年已有明确的上调计划,市场普遍预期涨幅在5%至10%之间,同时,先进封装(例如CoWoS)的价格也同步上扬。晶圆制造和封装测试环节一同涨价,CPU/SoC的制造成本自然水涨船高。
其次,人工智能的长期需求重塑了芯片产能的分配优先级。用于数据中心和AI服务器的高利润、高性能芯片持续抽走上游的产能资源,使得传统消费级算力芯片的产能也承受压力。近期路透社的供应链分析报告明确指出,AI需求正在驱动新一轮关键芯片的供给紧张与价格上涨。
再者,从渠道端传来的现实信号也印证了这一点:自11月以来,DIY市场和渠道监测中出现了英特尔与AMD主流CPU型号价格同步上调的罕见现象。这通常意味着是成本和供需关系共同作用的结果,而非单一厂商的短期市场策略。

结论很清晰:作为数字设备“地基”的CPU,其成本基础正在上移,而且这并非短暂的风潮。
存储端:NAND、HDD与DRAM的全面承压
闪存与硬盘(NAND/SSD/HDD): NAND闪存与固态硬盘本轮的价格上行,核心驱动力在于AI数据中心将闪存需求拉升到了前所未有的高度。TrendForce及多家硬件分析机构指出,2025年第四季度NAND合约价在传统淡季反而走强,晶圆合约甚至出现了超出预期的单月跳涨。其原因在于,闪存制造商优先将产能供给利润更高的企业级和AI相关产品,从而压缩了面向消费级市场的主流TLC/QLC闪存的产出。

而在机械硬盘(HDD)领域,AI浪潮反而使其成为了隐形的受益者。行业分析认为,AI的训练和推理过程产生了海量需要长期留存的数据,这拉动了近线存储和企业级大容量机械硬盘的需求与平均售价,将其价格中枢维持在高位。
因此,从全行业视角来看:固态硬盘和机械硬盘价格居高不下,并非某个销售平台的短期现象,而是在AI需求拉动下,整个存储大盘产生的共振效应。
内存(DRAM/DDR5): 对于NAS厂商而言,内存绝非可有可无的配件,而是决定平台诸多高级功能(如ZFS文件系统、快照、数据校验、AI搜索、高并发处理)能否顺利实现的硬性需求。
2025年第四季度,DRAM的供需结构明显受到AI和高带宽内存(HBM)的挤压。路透社与TrendForce的追踪报告均指出:三星、SK海力士等主要存储芯片制造商将产能优先转向HBM和高利润的DDR5产品,导致传统DRAM的供应受到压缩,进而推高了DDR4和DDR5的合约价与现货价格。
这意味着什么?这意味着NAS设备的内存成本并非跟随消费电子市场缓慢上涨,而是被AI服务器端爆发的需求直接拉高。对于整机制造商来说,CPU涨价是抬高了设备的基础成本,而内存涨价则像抬高了房屋的梁柱;两者同时作用,整机成本自然向上移动。

NAS涨价的必然性
将前面两节的分析合并起来,就能清晰地解释今年NAS市场的价格逻辑:
CPU成本因晶圆/封装涨价以及AI产能挤占而被抬高; DDR5/DRAM内存又因HBM与数据中心需求挤压而持续上行; 同时,硬盘与闪存存储介质也处于价格高位区间。
而NAS设备的物料清单(BOM)核心正是由CPU、内存和存储介质这“三件套”构成。如今这三者的成本都在上涨,因此NAS行业整体涨价是大环境使然,不涨价反而显得不正常。
各品牌产品涨幅对比
我们可以通过对比具体产品的价格来观察涨幅,但需注意近期市场价格变动频繁,以下分析可能有时效性限制。同时,电商平台可能存在恶意的价格跟随或竞争行为,例如绿联和威联通的部分型号,可能有用户曾以极低价格入手,这些偶然的低价并不计入普遍的历史低价对比中。

不难发现,这背后最直接的推手之一就是DDR5内存本身的成本跳升:
以16GB DDR5内存为例,其市场价格相比历史低点已抬升约800元人民币,8GB规格也有约300元的上浮。内存作为NAS的“算力缓存与文件系统运算底座”,在成本结构中并非无足轻重的配角,而是决定整机功能能否充分实现的“梁柱”。当DDR5的成本中枢被抬高,采用同平台方案的NAS整机价格随之上涨,就成了必然结果。
威联通新推出的八盘位Qu系列新品在价格控制上显得相对克制,涨幅与其他同内存配置档位的NAS产品相近。其六盘位新品Qu605(搭载英特尔N150处理器与16GB DDR5内存)将发售价控制在3300元附近,结合当前上游的涨价趋势与我之前的预期来看,这个定价已经颇具竞争力。

目前也比较担忧计划在12月发布其首款新品的“飞牛”品牌,真是碰上了成本高企的“好时候”。只能说,各大厂商和消费者的运气都不算太好。
刚需用户如何选购硬盘?
对于NAS用户而言,硬盘一直是成本的大头,更何况在目前全行业价格普遍处于高位的时期。仍在密切关注硬盘价格走势的朋友,想必都是有着迫切的存储刚需。
目前购买全新硬盘,有两条相对可行的路径:海外购,或者选择NAS厂商推出的硬盘套餐。
海外购渠道: 近期某些海外市场偶尔会出现不错的价格,但涉及到跨境运输、税费、使用兼容性以及最为关键的保修问题时,需要用户谨慎权衡。我个人除非万不得已,通常不会优先考虑这种购买方式。

NAS厂商硬盘套餐: 如果是实实在在的刚需,可以多关注主流NAS厂商官方或授权店铺推出的“NAS+硬盘”捆绑套餐。通常购买的硬盘容量越大,折算下来的单盘优惠力度就越高。我了解到甚至有客户在某店铺连续下单了三套这样的套餐。
NAS厂商套餐中搭配的西数红盘、希捷酷狼等通常都是国行正品,由店铺提供保修服务(根据型号不同,保修期在3到5年)。目前,4TB的全新国行机械硬盘单买到手价大约在900元左右。

我们可以来粗略对比一下各家套餐的折算价格(统一按单盘900元估算)。

威联通在这方面的优惠力度似乎较大。如果选择其六盘位机型搭配六块4TB硬盘的满配套餐,并将硬盘按市价折算后,裸机(NAS主机)的等效价格可能比单纯购买主机要划算不少。更进一步,如果为威联通Qu605选择8TB硬盘的满配套餐,并采用同样的方法折算,裸机等效价格甚至可能低至一个非常具有吸引力的水平。这似乎表明,威联通在国内的硬盘代理和供应链资源方面具有一定的优势。

总结与展望
作为一名普通用户,我对未来一段时间的市场持谨慎态度,目前只能期望自己的设备稳定运行,硬盘不要出故障。
展望未来,存储和算力相关硬件的价格大概率还会在高位持续波动和拉扯。AI训练与推理对于内存、闪存、企业级存储的需求是结构性和长期性的,不可能靠一个季度的市场变化就迅速退潮;上游芯片制造商将产能向高利润的DDR5/HBM、企业级SSD、近线HDD倾斜的策略,也不会因为消费市场抱怨价格高就立刻掉头。换言之,这一轮涨价不一定会一直直线飙升,但价格整体被抬高的趋势,很难在短期内完全逆转。市场更可能进入一种“新常态”:上游成本变化更敏感、市场价格波动更频繁、绝对低价出现的窗口期更零碎且短暂。
对于刚需用户而言,采购策略的优先级应从“试图抄到绝对最低点”转变为“抓住相对合理且可预测的购买窗口”。因为个人或家庭数据只会越积越多,拖延不仅不会让存储设备变得更便宜,反而可能让未来的数据迁移成本更高、风险更大。刚需用户应该做的,是在电商大促或市场阶段性回调时,锁定一个总价合理的解决方案:将预算更多地投入到NAS平台的综合能力与长期稳定性上,而非赌某一块硬盘或某一条内存能买到最低价。只要购入的方案能够匹配未来2到3年的数据增长需求,那就是一个好的入手时机。
对于非刚需用户,则完全不必被“涨价恐慌”情绪所绑架。存储行业具有周期性,价格未来也会有回落的时候,区别仅在于回落的幅度和时点。如果你当前的数据规模不大,或者现有设备还能支撑一段时间,那么最佳策略是:首先想清楚自己的真实需求,然后耐心等待合适的“主机+硬盘”组合优惠出现。不要因为“害怕未来更贵”而去购买一个当下用不上、也不能立刻带来体验升级的配置;更不要在市场价格波动最剧烈的时候盲目追高。非刚需用户完全可以等待一个既能立即投入使用、又能显著提升使用体验的时机再从容出手。
基于NAS搭建Frigate智能监控中心:本地AI识别、全功能配置与性能优化全攻略
在智能家居和安防领域,将视频数据上传至云端进行分析和处理是常见做法,但这往往伴随着隐私泄露的风险。有没有一种方案,既能享受AI智能识别的便利,又能将数据牢牢掌握在自己手中?Frigate正是为此而生的开源利器。
Frigate是一款基于实时AI目标检测技术的开源网络录像机(NVR)。它的核心理念是隐私优先:所有的视频分析过程都在您的本地设备(如NAS)上完成,摄像头画面数据无需离开您的网络,从根本上保障了数据安全。
下面我们来详细了解一下它的核心能力:
- 深度集成:作为Home Assistant生态的明星组件,它能与您的智能家居系统深度联动,实现检测到“人”自动开灯等复杂自动化场景。
- 高效智能:它并非傻傻地分析每一帧画面,而是结合“运动检测”和“区域检测”等智能策略,只在必要时启动AI分析,极大提升了资源利用效率。
- 实时优先:采用多进程架构,优先保障实时视频流的流畅性,确保监控画面无延迟。
- 精准触发:使用计算开销极低的像素变化检测技术,快速定位画面中的动态区域,再交由AI进行识别,既快又准。
- 独立推理:AI物体检测任务运行在独立的TensorFlow进程中,与其他视频处理任务互不干扰,追求最高的帧处理速度。
- 开放通信:通过MQTT协议发布检测事件,轻松与Node-RED、Home Assistant等各类自动化平台集成。
- 智能存储:可以基于检测到的物体类型(如人、车、宠物)设定不同的录像保留策略,例如“人”的事件保留30天,“车”的事件保留7天,有效管理存储空间。
- 7x24小时录制:支持不间断的连续视频录制,不错过任何重要时刻。
- 流媒体优化:通过RTSP重新流转技术,Frigate作为中间代理,只需与摄像头建立一个连接,然后分发给多个客户端,有效减轻摄像头负载。
- 超低延迟观看:支持WebRTC和MSE技术,在网页端观看实时监控画面时,延迟可以低至毫秒级,体验远超传统方案。
您可以通过其官方演示站点直观感受这些功能:https://demo.frigate.video
安装部署指南
推荐使用Docker Compose进行部署,这是管理容器依赖和配置最清晰的方式。以下是一份适用于大多数场景的基础配置示例,您可以将其保存为 docker-compose.yml 文件。
services:
frigate:
image: ghcr.io/blakeblackshear/frigate:stable
container_name: frigate
ports:
- 8971:8971
- 8554:8554
- 8555:8555/tcp
- 8555:8555/udp
environment:
- FRIGATE_RTSP_PASSWORD=password
- TZ=Asia/Shanghai
volumes:
- ./storage:/media/frigate
- ./config:/config
- /etc/localtime:/etc/localtime:ro
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
restart: unless-stopped
关键参数解析(更多高级参数请务必查阅官方文档):
- 8971端口:HTTPS访问端口,用于管理员登录Web管理界面。
- 5000端口(可选):HTTP访问端口,通常用于无需密码的公开流(如投屏到电视),默认未映射,可按需添加。
- 8554端口:Frigate输出的RTSP流端口,可供VLC等播放器或其它NVR软件调用。
- 8555端口:WebRTC流端口,是实现超低延迟网页观看的关键。
- FRIGATE_RTSP_PASSWORD:设置访问Frigate自身RTSP流所需的密码。
- TZ:设置容器时区,确保录像文件时间戳正确。
- /media/frigate:录像文件存储目录,映射到本地的
./storage文件夹。 - /config:配置文件及SQLite数据库存储目录,映射到本地的
./config文件夹。 - /etc/localtime:将宿主机的时区文件挂载到容器内,是保持时间同步的另一种可靠方式。
- /dev/dri/renderD128:映射Intel核显设备,为后续启用硬件加速做准备(AMD/NVIDIA显卡路径不同)。
基本使用与配置
使用 docker-compose up -d 启动服务后,在浏览器中输入 https://您NAS的IP地址:8971 即可访问Frigate的Web管理界面(请注意必须使用HTTPS协议)。

开源阅读器Reader完全指南:免费书籍管理、书源导入与多平台使用教程
你是否厌倦了在不同阅读平台间来回切换,只为找到一本想看的书?或者,你是否希望有一个统一的、完全由自己掌控的数字书架?今天要介绍的 Reader,或许就是你在寻找的答案。
Reader 是一款专为网络文学和泛阅读爱好者设计的开源阅读工具。它的核心魅力在于 支持自定义书源,这意味着你可以从互联网上几乎任何提供文本内容的网站抓取和整合书籍,并将它们统一收纳到自己的个人书架中。无论是追更热门网文,还是阅读经典作品,Reader 都能提供一个干净、舒适且高度可定制的阅读环境。
为了让大家快速上手,项目提供了一个公开的演示实例。你可以直接访问 https://reader.nxnow.top,使用默认账号(用户名:guest,密码:guest123)登录体验。当然,如果你想深入了解所有高级功能和配置选项,建议查阅其详细的官方文档:https://github.com/hectorqin/reader/blob/master/doc.md。
轻松部署:用 Docker Compose 快速搭建
对于大多数用户而言,使用 Docker Compose 是部署 Reader 最简单、最推荐的方式。你只需要一个简单的配置文件,就能在几分钟内让 Reader 服务运行起来。
下面是一个最基础的 docker-compose.yml 配置示例,适合在个人 NAS 或云服务器上运行:
services:
reader:
image: hectorqin/reader:latest
container_name: reader
ports:
- 8080:8080
environment:
- SPRING_PROFILES_ACTIVE=prod
volumes:
- ./log:/log
- ./storage:/storage
restart: always
配置要点解析:
- 端口映射:
8080:8080表示将容器内的 8080 端口映射到宿主机的 8080 端口,你后续将通过http://你的IP:8080来访问。 - 数据持久化:
volumes部分至关重要。./log:/log:将容器内的日志目录映射出来,方便排查问题。./storage:/storage:这是核心数据目录,你后续导入的书源配置、个人书架数据、阅读进度等都会保存在这里。即使容器重建,数据也不会丢失。
- 重启策略:
restart: always确保服务在意外退出后能自动重启,保障可用性。
保存好配置文件后,只需在所在目录执行 docker-compose up -d 命令,服务就会在后台启动。本文主要演示基础的自用部署流程,更高级的配置(如反向代理、数据库外置等)可以参考官方文档进行探索。

从零开始:书源导入与阅读全流程
部署完成后,在浏览器中输入 http://你的服务器IP:8080 即可访问 Reader 的 Web 管理界面。首次打开的界面非常简洁,下图已切换为更护眼的深色主题。
手把手教你在NAS搭建复古游戏游戏厅:跨平台畅玩经典游戏
还记得那些放学后冲回家,只为在红白机前奋战一小时的童年时光吗?如今,借助开源项目 EmulatorJs,你完全可以在自己的NAS上重建一个私人复古游戏厅,随时随地重温那些经典的像素世界。
EmulatorJs 是一个基于 Web 的强大模拟器平台,它直接在浏览器中运行,让你无需安装任何客户端,就能畅玩数十款经典游戏主机上的作品。从任天堂的红白机(NES)、Game Boy,到索尼的初代 PlayStation(PSX),再到世嘉的 MD、Saturn,它几乎囊括了所有80、90年代的主流游戏平台。
支持的游戏平台包括: 3do、arcade、atari2600、atari5200、atari7800、colecovision、doom、gb、gba、gbc、jaguar、lynx、msx、n64、nds、nes、ngp、odyssey2、pce、psx、sega32x、segaCD、segaGG、segaMD、segaMS、segaSaturn、segaSG、snes、vb、vectrex、ws 等。
想先睹为快?可以访问其官方演示站点体验一下:https://demo.emulatorjs.org

部署指南:通过 Docker Compose 一键安装
对于NAS用户而言,使用 Docker Compose 是部署 EmulatorJs 最快捷、最可靠的方式。你只需要准备一份配置文件,即可完成所有环境的搭建。
下面是一份标准的 docker-compose.yml 配置文件示例,你可以直接复制使用:
services:
emulatorjs:
image: linuxserver/emulatorjs:latest
container_name: emulatorjs
ports:
- 8080:80
- 3000:3000
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
volumes:
- ./config:/config
- ./games:/data
restart: unless-stopped
配置文件关键参数解析:
8080端口:这是游戏大厅的访问端口。部署完成后,你将在浏览器中通过这个端口进入游戏选择界面。3000端口:这是后台管理系统的端口。所有游戏ROM的导入、系统配置、扫描管理都在这里完成。PUID/PGID:容器运行的用户和组ID。这里设置为0(即root)是为了避免后续文件读写可能出现的权限问题。如果你的NAS有严格的安全策略,可以调整为拥有相应权限的非root用户ID。TZ:设置容器时区,确保日志和时间显示正确。示例为Asia/Shanghai(亚洲/上海)。/config卷:映射到本地的./config目录,用于持久化保存EmulatorJs的所有应用配置、游戏存档和BIOS文件。/data卷:映射到本地的./games目录,这是存放所有游戏ROM文件的核心目录。建议先启动容器,确认服务运行正常后,再将游戏文件放入此目录。
将上述配置保存为 docker-compose.yml 文件,然后在同一目录下执行 docker-compose up -d 命令,服务就会在后台启动。
配置与游玩:从后台设置到游戏启动
容器成功运行后,真正的配置才刚刚开始。跟着下面的步骤,一步步把你的游戏库搭建起来。
-
访问后台管理系统 在浏览器中输入
http://你的NAS的IP地址:3000,即可进入EmulatorJs的后台。这里是整个游戏厅的“控制中心”。
-
完成首次初始化 首次进入后台,系统会弹窗提示需要下载核心的BIOS等支持文件。这个过程通常是自动的,但依赖于网络环境。如果遇到下载失败,不必担心,关闭弹窗后多尝试几次“系统”页面里的手动下载即可。
手把手教你用Docker部署FreshRSS:自建RSS阅读器图文指南,轻松掌控信息流
在信息爆炸的时代,你是否厌倦了在各个App和网站间来回切换,只为追更几篇喜欢的文章或博客?FreshRSS 或许就是你一直在找的解决方案。它是一款开源、免费的自托管 RSS 聚合器,能够将分散在不同网站和平台的内容更新,统一汇聚到一个简洁的界面中,让你真正实现“一处订阅,集中阅读”,重新掌控自己的信息流。
本文将带你从零开始,使用最便捷的 Docker Compose 方式,一步步完成 FreshRSS 的部署、配置与订阅管理,助你搭建一个完全属于自己的信息中枢。
为什么选择 Docker Compose 部署 FreshRSS?
对于自建服务,部署的便捷性和可维护性至关重要。Docker Compose 正是为此而生。它允许你通过一个简单的 YAML 配置文件,定义并管理所有服务参数,避免了手动安装依赖、配置环境的繁琐过程。你只需要一个命令,就能启动、停止或更新整个服务,非常适合个人使用和快速部署。
第一步:编写 Docker Compose 配置文件
首先,在你计划部署的服务器或本地电脑上,创建一个名为 docker-compose.yml 的文件。你可以使用任何文本编辑器(如 VSCode, Nano, Vim)打开它,并复制粘贴以下配置内容:
services:
freshrss:
image: linuxserver/freshrss:latest
container_name: freshrss
ports:
- 8080:80
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- ./config:/config
restart: unless-stopped
配置文件参数详解:
image: linuxserver/freshrss:latest:指定使用 LinuxServer.io 维护的 FreshRSS 镜像,这是一个稳定且社区信任的版本。ports: - 8080:80:将容器内部的 80 端口映射到宿主机的 8080 端口。这意味着你通过访问服务器的8080端口来使用 FreshRSS。如果 8080 端口已被占用,可以改为- 8090:80等其他端口。environment:设置容器的环境变量。PUID/PGID:可选参数,用于指定容器内运行进程的用户和组ID,主要影响生成文件的权限。通常保持默认的 1000(对应第一个非root用户)即可。TZ:重要。设置容器时区为Asia/Shanghai(中国标准时间),确保文章发布时间显示正确。
volumes: - ./config:/config:这是数据持久化的关键。它将当前目录下的config文件夹映射到容器内的/config路径。所有 FreshRSS 的配置、数据库和缓存都将保存在宿主机的./config目录中,即使删除或更新容器,你的数据也不会丢失。restart: unless-stopped:设置容器自动重启策略,除非手动停止,否则在宿主机重启或容器意外退出时会自动重新启动,保证服务高可用。
提示:更多高级配置选项(如使用外部 MySQL 数据库、调整 PHP 参数等),建议查阅 FreshRSS 官方文档 或 Docker 镜像页面。
手把手教程:使用Docker Compose部署HomeAssistant,整合米家与HomeKit
Home Assistant是一个功能强大的开源智能家居自动化平台,其核心目标是协助用户集中控制和自动化家庭内的各类设备与服务。该平台卓越之处在于能够将来自不同品牌、采用不同协议的智能设备无缝整合到一个统一的界面中,从而让用户得以构建高度定制化的智能家居生态系统。
核心安装步骤
本文选择通过Docker Compose方式进行部署,这种方法便于管理且环境隔离性好。
Docker Compose 配置文件
services:
homeassistant:
image: homeassistant/home-assistant:latest
container_name: homeassistant
network_mode: host
ports:
- 8123:8123
environment:
- TZ=Asia/Shanghai
volumes:
- ./config:/config
restart: unless-stopped
平台配置与使用指南
成功启动容器后,在浏览器地址栏中输入 http://你NAS的IP地址:8123 即可访问Home Assistant的Web管理界面。

初次启动与基础设置
进入界面后,点击“创建我的智能家居”按钮开始初始化设置。

首先需要创建一个管理员账户,请根据提示填写用户名、密码等信息。

系统会尝试自动检测您的地理位置,如果定位不准确,可以手动在地图上点击或输入具体位置。

在后续的信息共享设置页面,保持默认选项即可,然后点击“下一步”。

至此,基础设置已经完成。

您将成功进入Home Assistant的主仪表板界面。

调整系统单位制
初始设置的温度单位可能为华氏度,我们需要将其调整为国内常用的摄氏度。

点击左下角用户名进入“设置”菜单,然后找到并进入“系统”选项。

在系统设置中,点击打开“通用”子菜单。

在单位制选项中,将温度单位修改为“摄氏度”(°C),修改后务必点击右下角的“保存”按钮。

配置外网访问支持
如果您希望通过外网链接(例如本文演示的飞牛NAS自带的外网访问功能)访问Home Assistant,可能会遇到“400 Bad Request”错误。

此时需要查看Home Assistant的日志。日志中通常会显示类似“untrusted proxy 172.17.0.1”的错误信息,这表示该代理IP未被信任。

解决方法是修改配置文件。进入Docker Compose中映射的config目录,找到名为 configuration.yaml 的核心配置文件。

用文本编辑器打开该文件,在适当位置添加以下配置代码(将日志中报错的IP地址填入trusted_proxies列表中,可以添加多个信任代理)。
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.17.0.1
