知名的RSS阅读器Inoreader被墙了,正好趁机自建一个RSS阅读器来用。经过一番对比,在TinyTinyRSS,Fever和FreshRSS之间选择了FreshRSS来使用。
设置数据库
因为之前搭建WordPress时已经设置了MySQL,这次就在原本的MySQL建立新的数据库来供FreshRSS来使用。使用以下命令进入MySQL的容器。
docker exec -it db /bin/bash
然后输入mysql -u root -p
并输入管理密码。接下来创建新的用户以便使用:
create user freshrss identified by 'password'
其中password
应替换为要使用的密码。
接下来创建新的数据库:
create database freshrss
数据库创建完成后给刚才创建的用户赋予权限:
grant all privileges on freshrss.* to freshrss
其中第一个freshrss
是刚创建的数据库名称,第二个freshrss
是刚才创建的用户名称。
完成之后输入exit
退出mysql,再次输入exit
退出容器。
设置FreshRSS容器
在参照了Github上的官方说明后,发现官方使用的Traefik用不上,于是对官方提供的命令做了些修改。首先创建数据卷:
docker volume create freshrss-data
docker volume create freshrss-extensions
然后启动容器:
docker run -d --restart unless-stopped --log-opt max-size=10m \
-v freshrss-data:/var/www/FreshRSS/data \
-v freshrss-extensions:/var/www/FreshRSS/extensions \
-e 'CRON_MIN=4,34' \
-e TZ=Asia/Shanghai \
-p 8080:80 \
--net wordpress_app-network \
--name freshrss freshrss/freshrss
这里为了方便之后Nginx的设置直接把容器的端口暴露在8080,当然,云管理界面的防火墙没打开这个端口仍然无法访问。上面的--net
选项是为了连接到WordPress使用的数据库而设置,如果连接到其他数据库或者干脆使用内置的SQLite请酌情修改。
启动之后打开防火墙的8080端口就可以直接访问,但是使用http协议并不安全,所以这里继续使用原有的Nginx和Certbot来进行使用https协议。
设置SSL访问
修改之前WordPress的docker-compose.yml
文件,在certbot
的command
的最后加入要使用的域名:
-d rss.example.com
然后修改nginx配置文件,在80端口的监听中加入新的域名:
server {
listen 80;
listen [::]:80;
server_name www.example.com rss.example.com;
location ~ /.well-known/acme-challenge {
allow all;
root /var/www/html;
}
location / {
rewrite ^ https://$host$request_uri? permanent;
}
}
接下来在最后加入对新域名到8080端口的转发:
server{
listen 443;
listen [::]:443;
server_name rss.example.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
include /etc/nginx/conf.d/options-ssl-nginx.conf;
location / {
proxy_pass http://IP-Address:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
其中www.example.com和IP-Address都应替换为相应的域名和地址。之后保存配置文件并重启Web服务器。重启之后重新运行Certbot来为新域名增加SSL证书。运行完成后访问之前设置的域名即可对新安装的FreshRSS进行初始配置。
Comments NOTHING