每天刷十几个热榜太累?用 DailyHot 搭一个自己的热点聚合页
前言
我每天看热点时,最烦的不是信息太少,而是入口太多。微博看一遍、知乎看一遍、B 站再看一遍,技术社区和新闻站点还得继续切,最后真正浪费时间的往往不是阅读,而是不断打开 App、刷新、返回、再换下一个平台。DailyHot 吸引我的地方,不是“又多了一个热榜”,而是把原本分散的榜单重新收进一个页面,我可以先扫一遍标题,再决定哪些内容值得点进去。对我来说,真正想减少的是无意义的切换成本,而不是把所有热点都塞进脑子里;如果一个入口能让我先看全局、再主动选择来源,已经比被不同 App 轮流推着走舒服很多。
这次我先在飞牛 OS 的 Docker 管理界面部署 DailyHot,把本地访问端口设成 5956,实际打开聚合页面并测试热榜跳转和榜单顺序调整;随后又保留了两套命令行部署方式:rehiy/dailyhot 的 6688:6688 单容器方案,以及 liwangsheng/dailyhot-web 的 Compose 方案。最后安装 cpolar,把飞牛上的 5956 Web 页面提供到公网,先验证随机地址,再改成固定二级子域名 dailyhot。我更关心的是“聚合页是否好用、部署方式有没有混淆、外网入口是否稳定”这三件事,而不是简单把它包装成一个完全脱离外部服务的“信息主权”口号。

1. DailyHot 真正省掉的是“来回切平台”
DailyHot 的核心思路很直接:
把多个平台的热门内容放到一个 Web 页面里。
项目功能说明里列出了微博、知乎、V2EX、Hacker News、豆瓣、少数派、微信公众号热门等来源。
对我来说,它最大的价值不是替我决定“什么值得看”,而是先把入口集中起来。
这样每天打开一次页面,就能先扫:
- 哪个平台今天在讨论什么;
- 哪些标题值得继续点进去;
- 哪些榜单我根本不关心,可以往后放。
我更愿意把它理解成:
热榜入口整理器,而不是内容推荐算法。
2. 先在飞牛 OS 的 Docker 里部署
这次主线先走图形界面。
进入 NAS 的 Docker 管理页面,搜索:
DailyHot
然后下载对应镜像。

确认下载。

创建容器时,可以按需要开启:
开机自启动

接着设置宿主机访问端口。
这次使用:
5956

创建完成以后,可以看到 DailyHot 已经启动。

浏览器通过:
飞牛IP:5956
访问。
当前示例地址是:
http://192.168.42.147:5956
到这里先确认第一层:
Docker 容器已经运行,DailyHot 页面能在局域网打开。
3. 还有一套单命令 Docker 部署方式
如果不是在飞牛 OS 的图形界面里部署,只要设备有 Docker,也可以直接执行:
docker run --restart unless-stopped --name dailyhot -p 6688:6688 rehiy/dailyhot

这一套命令使用的是:
- 镜像:
rehiy/dailyhot - 容器名:
dailyhot - 端口:
6688:6688 - 重启策略:
unless-stopped
这里和前面的飞牛 5956 不是同一个端口方案。
所以后面做公网映射时,要先确认自己到底采用了哪种部署方式。
4. Docker Compose 方案又是另一套配置
除了单命令方式,还可以用 Docker Compose。
先创建目录:
mkdir /docker/dailyhot && cd /dockerdailyhot
这里有一个路径细节需要留意。
命令前半段创建的是:
/docker/dailyhot
后半段进入的却是:
/dockerdailyhot
两者并不一致。
命令按当前步骤保留,真正执行时需要先确认实际工作目录,避免后面的 Compose 文件落到错误位置。
接着创建:
docker-compose.yml
vim docker-compose.yml
配置内容:
version: '3'
services:
dailyhot-web:
image: liwangsheng/dailyhot-web
container_name: dailyhot-web
ports:
- "5956:80"
environment:
- API=https://hot-api.bbit.fun
restart: always
这套 Compose 和前面的单命令方案又不一样:
- 镜像:
liwangsheng/dailyhot-web - 容器名:
dailyhot-web - 宿主机端口:
5956 - 容器端口:
80 - API:
https://hot-api.bbit.fun - 重启策略:
always
最后启动:
docker-compose up -d
这一段我会特别把边界说清楚。
功能介绍里把 DailyHot 描述成“所有数据在自己的服务器上运行、不依赖第三方服务”,但这份 Compose 示例又明确配置了:
API=https://hot-api.bbit.fun
所以至少按这套 Compose 配置运行时,Web 前端仍然依赖这个 API 地址。
这两种表述不能直接合并成“完全不依赖外部服务”。
5. 页面真正怎么用?
进入 DailyHot 首页以后,可以看到多个平台的热榜入口。

例如点进哔哩哔哩热榜。
页面会继续跳转到对应内容。

其他平台也可以按同样方式进入。

所以这次实际验证到的是:
热榜集中展示 → 点击榜单 → 跳转到对应平台内容。
我不会把它写成“所有平台都已经逐项测试”。
当前截图主要说明的是页面聚合和跳转链路能够工作。
6. 常看的榜单可以往前排
DailyHot 设置里还可以调整榜单顺序。

这一点对我比“平台数量越多越好”更实用。
如果我每天主要看几个固定榜单,就把它们排在最前面;偶尔才看的平台放到后面。
这样这个页面才真正从“全网热榜集合”变成:
按自己习惯排序的热点入口。
7. 本地聚合页够用了,为什么还要公网访问?
在家里时,直接打开:
http://192.168.42.147:5956
就够了。
但如果这个页面已经被我当成每天固定查看的入口,人离开局域网以后,它就突然失效了。
所以接下来再加入 cpolar。
cpolar 在这套方案里只负责:
把 DailyHot 的 Web 页面提供到公网。
它不抓取热榜,也不决定榜单内容。
8. 在飞牛 NAS 上安装 cpolar
先进入飞牛 NAS 设置,开启 SSH。
默认端口保持:
22

然后通过 NAS 的 IP 地址连接 SSH。

连接完成以后,执行:
sudo curl https://get.cpolar.sh | sh
安装完成后检查服务状态:
sudo systemctl status cpolar

如果服务正常,再从浏览器访问飞牛主机 IP + 9200。
这里给出的入口是:
http://localhost:9200

登录后开始创建 DailyHot 隧道。
9. 给 5956 创建随机公网地址
进入:
隧道管理 → 创建隧道
当前参数为:
- 隧道名称:
dailyhot - 协议:
http - 本地地址:
5956 - 域名类型:随机域名
- 地区:
China Top

创建成功以后打开:
在线隧道列表

复制生成的公网地址,从其他设备访问。
页面可以正常打开。
这一层真正验证的是:
DailyHot 5956 → cpolar HTTP 公网地址 → 外部浏览器。
这里也再次说明,5956 对应的是这篇飞牛部署和 Compose 示例里的端口;如果你使用的是前面的 6688:6688 单命令方案,公网映射端口就不能照搬 5956。
10. 再切到固定二级子域名
随机地址适合先测试。
如果准备长期把 DailyHot 当作手机书签或浏览器首页,固定入口更方便。
进入 cpolar 预留页面。

选择:
保留二级子域名
这里使用:
- 地区:
china top - 二级子域名:
dailyhot

保留以后回到:
隧道管理 → 隧道列表
找到需要修改的 DailyHot 隧道。

把:
- 域名类型改成二级子域名;
Sub Domain填写前面保留成功的名称;- 地区选择
China Top。

更新完成以后,再使用固定公网地址访问。
DailyHot 页面可以正常打开。
到这里,固定公网入口已经跑通。
11. 我会怎么理解这套“个人热榜”?
我不太愿意把它写成“摆脱算法”。
因为 DailyHot 展示的内容,本质上仍然来自各个平台自己的热榜和内容排序。
它真正给我的自由是:
我决定去看哪些平台,以及这些入口怎么排列。
所以它更像是在平台算法之外,再加一层属于自己的“入口选择权”。
另外,这篇同时保留了三种部署形态:
飞牛 Docker 图形界面: 本地访问端口 5956。
Docker run: rehiy/dailyhot,端口 6688:6688。
Docker Compose: liwangsheng/dailyhot-web,端口 5956:80,并配置外部 API。
这三套方式不能混成一套参数直接照搬。
总结
DailyHot 对我来说最有价值的地方,不是“全网热点尽在掌握”,而是终于不用每天为了看热榜在十几个 App 之间来回切。
这次真正跑通的主线是:
飞牛 OS → Docker → DailyHot → 5956 → 热榜聚合页 → 榜单跳转 → 顺序调整 → cpolar → 随机公网 → 固定二级子域名 dailyhot。
另外还保留了两套独立部署参考:
rehiy/dailyhot → 6688:6688
以及:
liwangsheng/dailyhot-web → 5956:80 → API=https://hot-api.bbit.fun。
几个细节需要继续留意:
- 飞牛部署示例实际使用
5956,Docker run 示例使用6688,不要混用端口; - Compose 创建目录命令里
/docker/dailyhot和/dockerdailyhot不一致; - 项目介绍强调本地、自托管,但 Compose 示例明确依赖
https://hot-api.bbit.fun; - cpolar 只负责 DailyHot Web 页面的公网入口,不参与热榜抓取和排序;
- 固定二级子域名示例继续使用
dailyhot; - DailyHot 能帮我集中入口,但并不意味着平台原本的热榜算法消失了。
如果只是偶尔看一次热搜,我不会专门搭一个服务;但只要每天固定要扫几个平台,能把这些榜单收进一个页面,按自己的顺序排列,再从手机随时打开,这种“小而专”的工具就很容易变成长期常用入口。
更多推荐

所有评论(0)