RSSHub+TTRSS
在树莓派raspbian上安装ttrss
和rsshub
。
安装RSSHub
采用作者提供的docker安装方法。
docker安装
# 使用官网提供的脚本安装
curl -sSL https://get.docker.com | sh
# 或者,docker.io是Ubuntu官方维护的一个docker版本
sudo apt install docker.io
RSSHub安装
docker pull diygod/rsshub
docker run -d --name rsshub -p 1200:1200 diygod/rsshub
此时,则可以通过访问ip地址:1200来检查是否安装成功
ttrss安装
ttrss由于涉及的东西比较多,所以采用比较简单的docker-compose安装。
docker-compose安装
docker-compose安装有3种办法
# 第一种
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 第二种
sudo pip install docker-compose
# 或者使用 pip3 install 来进行安装
# 第三种(推荐)
sudo apt install docker-compose
# 检验
docker-compose version
在树莓派上按照第一种方式安装后,使用docker-compose --version
进行检验是否安装成功的时候,发现提示未找到命令。
此时选择echo “https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-$(uname -s)-$(uname -m)”,然后访问得到的结果,发现显示not found。
也就是官方应该没有发布我这个机型的安装文件。于是此时采用pip安装。
ttrss项目克隆
默认已安装git,创建好一个文件夹,进入之后
git clone https://github.com/HenryQW/Awesome-TTRSS.git
找到docker-compose.yml文件所在的地方,运行
sudo docker-compose up -d
# 这个命令会重建配置有变化的容器
在修改docker-compose.yml
文件后,通过sudo docker-compose stop
停止容器运行,然后再通过up -d
运行即可。
问题
在运行ttrss的时候,出现了问题。
浏览器无法直接访问181端口
具体的表现是在执行完sudo docker-compose up -d
后,在电脑的浏览器上访问ip:port
并不能成功打开ttrss,显示拒绝连接。
在树莓派的terminal里使用curl连接ip:port
,无论是访问127.0.0.1还是0.0.0.0还是在局域网里的ip地址,都显示连接已被对方重置(connection reset by peer)。
使用sudo docker logs ttrss --tail 10
查看近十条日志,都显示ttrss operation time out
,通过github的issue上的信息得知,似乎是防火墙的问题。
但关于树莓派的防火墙调整我并没有很好的思路。
将docker-compose.yml
里的Port 181:80修改为11181:80,再重复以上的访问操作,同样显示连接已被对方重置。
使用sudo docker-compose logs --tail 10
命令查看最近十条log的时候,发现opencc
和postgre
的容器报了一个standard_init_linux.go:228: exec user process caused: exec format error
错误,紧接着就是ttrss
所在的容器报了operation time out
的错误。在issue
里有说重新拉取镜像再运行就好了。
至此,我发现了上面步骤犯的两个问题:
第一个问题是关于克隆地址的问题,原项目是在github上,我clone的地址是gitee的,是一个不经常同步的私人镜像库。导致的直接结果就是docker-compose.yml
文件会和当前最新版本的docker镜像不同步。
第二个问题是docker-compose的版本问题。本来通过curl
的方式安装的docker-compose,但是后来发现可以通过sudo apt install docker-compose
的方式来进行安装;而且即便是通过curl
的方式安装,我所安装的docker-compose版本有点落后,但是可能问题并不是很大。
在树莓派上修改以上问题后,并未有很大的变化。
不知道是何原因,在修改以上问题后,树莓派会断网,并且再也搜不到网络。
尝试
准备在WSL中试一下,看是不是硬件的问题。
在WSL中安装docker和docker-compose。
在wsl中安装docker的时候要确保wsl已经升级到2。
WSL安装docker
首先是检查wsl的version(wsl -l -v
)。
如果wsl是1,则进行升级(wsl --set-version 发行版名字 2
)。
但是在运行上面的命令的时候,需要启用虚拟机功能和下载Linux内核包(具体参见这个链接。
PS:如果运行
wsl --set-version
命令立刻结束了的话,那就是升级失败。很有可能就是虚拟机功能未打开或者Linux内核包为下载。
安装docker的时候需要使用命令安装
curl https://get.docker.com | sh
安装docker-compose的时候可以直接使用
sudo apt install docker-compose
WSL运行ttrss
和上面运行ttrss的步骤一样
结论
在WSL上可以正常运行。所以大概是树莓派本身的问题,可能是docker的安装有问题,也可能是docker-compsoe的安装有问题,或者树莓派本身就有问题。
于此,重装树莓派或许问题便可得到解决。
解决
重装raspberry pi os
后,使用sudo apt install docker.io
安装docker,使用sudo apt install docker-compose
安装docker-compose,然后clone项目,最终可正常运行。
格式化内存卡,使用烧录工具将img文件烧写到内存卡后,插入树莓派,等待装机完成。重装树莓派的系统后,
sudo raspi-config
是调出配置界面的命令。主要是为了打开ssh
和连接WiFi,也可以修改用户名密码。