最近老苏身边中招的人也开始多起来了,大家要保重~
本文开始于
9
月下旬,完成于10
月下旬,目前正式版本还是老苏打包时用的2.6.0
,不过现在已经有了3.0.0 RC1
什么是 CommaFeed ?
CommaFeed
是受Google Reader
启发而开发的自托管RSS
阅读器,基于Dropwizard
和AngularJS
。CommaFeed
现在被认为是功能完整的并且处于维护模式。
CommaFeed
已经有些年头了,但老苏没找到官方的镜像,本着学习(折腾)的目的,打算自己动手构建着玩。一开始是准备基于源码构建的,但是没成功,所以退而求其次,改为基于官方发布的 jar
包进行构建
如果你不想自己构建,可以跳过,直接阅读下一章节
v1
版还整了多阶段构建,实际上也就节省了 wget
的空间
FROM openjdk:8-jdk as build
LABEL maintainer=laosuRUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list \&& apt-get clean \&& apt-get update \&& apt-get install -y wget RUN wget https://ghproxy.com/github.com/Athou/commafeed/releases/download/2.6.0/commafeed.jar
RUN wget https://ghproxy.com/raw.githubusercontent.com/Athou/commafeed/2.6.0/config.yml.example -O config.ymlFROM openjdk:8-jdk
LABEL maintainer=laosuVOLUME /configCOPY --from=build commafeed.jar ./commafeed.jar
COPY --from=build config.yml ./config/config.ymlEXPOSE 8082CMD [ "java", "-Djava.net.preferIPv4Stack=true", "-jar", "commafeed.jar", "server", "/config/config.yml" ]
但是这个版本需要我们自己下载 config.yml
,并将 config.yml
放入到映射的卷中,否则容器启动时检测不到该文件会导致启动失败
所以就有了我们现在的 v2
版 Dockerfile
FROM openjdk:8-jdk as build
LABEL maintainer=laosu # 设置国内源
RUN sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list \ && apt-get clean \ && apt-get update \ && apt-get install -y wget # 下载 2.6.0 的代码和配置文件
RUN wget https://ghproxy.com/github.com/Athou/commafeed/releases/download/2.6.0/commafeed.jar
RUN wget https://ghproxy.com/raw.githubusercontent.com/Athou/commafeed/2.6.0/config.yml.example -O config.yml # 基本设置
EXPOSE 8082
VOLUME /config ## 运行前会检查 config 目录 ;
CMD \ if [ -f "/config/config.yml" ]; then \ echo "***** config 目录已存在设置文件, 跳过 *****" ; \ else \ echo "***** config 目录不存在或为空, 复制设置文件 *****" && \ cp config.yml ./config/config.yml ; \ fi; \ java -Djava.net.preferIPv4Stack=true -jar commafeed.jar server /config/config.yml
这个版本会在我们映射的卷中找到原始的 config.yml
,修改之后只要重启容器就可以了
构建镜像和容器运行的基本命令如下👇
# 新建目录
mkdir commafeed# 进入目录
cd commafeed# 将 Dockerfile 放入当前目录# 构建镜像
docker build -t wbsu2003/commafeed:v1 .# 运行容器
docker run -d \--name commafeed \-p 8082:8082 \-v $(pwd)/config:/config \-v $(pwd)/data:/home/commafeed \wbsu2003/commafeed:v1
在群晖上以 Docker 方式安装。
在注册表中搜索 wbsu2003
,下拉找到 wbsu2003/commafeed
,版本选择 latest
。
在 docker
文件夹中,创建一个新文件夹 commafeed
,并在其中建两个子文件夹,分别是 config
和 data
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/commafeed/config | /config | 存放设置 |
docker/commafeed/data | /home/commafeed | 存放数据库 |
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
8082 | 8082 |
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 commafeed 和 子目录
mkdir -p /volume2/docker/commafeed/{config,data}# 进入 commafeed 目录
cd /volume2/docker/commafeed# 运行容器
docker run -d \--restart unless-stopped \--name commafeed \-p 8082:8082 \-v $(pwd)/config:/config \-v $(pwd)/data:/home/commafeed \wbsu2003/commafeed
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: '3'services:commafeed:image: wbsu2003/commafeedcontainer_name: commafeedrestart: unless-stoppedports:- 8082:8082volumes:- ./config:/config- ./data:/home/commafeed
然后执行下面的命令
# 新建文件夹 commafeed 和 子目录
mkdir -p /volume2/docker/commafeed/{config,data}# 进入 commafeed 目录
cd /volume2/docker/commafeed# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
容器正常启动之后,在 config
目录中可以找到 config.yml
文件
至少有 2
处需要修改
publicUrl
的默认值指向了 localhost
,用 docker
安装必须使用局域网 IP
或者域名allowRegistrations: false
改为 allowRegistrations: true
否则主页上只有登录
保存之后记得重启容器
在浏览器中输入 http://群晖IP:8082
就能看到主界面
先注册用户
注意对密码的要求:
- 不能少于
8
位;- 必须包含1个或多个大写字符;
- 必须包含1个或多个小写字符;
- 必须包含1个或多个特殊字符;
点左上角的 Subscribe
,输入 Feed URL
后回车,如果地址没问题的话,会自动填充 Feed Name
- 老苏博客的订阅地址是:https://laosu.ml/atom.xml
- 因为没建分类,所以默认的分类(
Category
)是All
点 Save
保存,在左侧菜单找到刚添加的订阅
从仅显示标题
模式改为显示全文
模式
进入设置,选择 Language
,拉到底可以找到 简体中文
CommaFeed
原本应该是支持移动端和浏览器插件的
但实际上现在只能找到 FireFox
的插件
移动端也差不多,看来 RSS
最终都会像 Google Reader
一样,慢慢消失的无影无踪
Athou/commafeed: Google Reader inspired self-hosted RSS reader.
地址:https://github.com/Athou/commafeed
CommaFeed
地址:https://www.commafeed.com/#/welcome