概要

RSSでWebサイトの情報収集を行えるFreshRSSを、Dockerを使って実行しました。

そのときの方法について紹介します。

環境

  • Docker version 20.10.23
  • docker-compose version 1.25.0
  • FreshRSS 1.20.2

FreshRSSについて

FreshRSSは、RSSを使ったWebサイトの情報収集ができるソフトウェアです。自前でサーバーを用意して利用するもので、無料で利用することができます。FeedlyやInoreaderなどのサービスがありますが、これらとは異なり、無料でできることに制限はありません。

私も、VPSを借りたサーバーにFreshRSSをインストールして使っています。

FreshRSSの開発はGitHubで行われており、コードを閲覧したり、プルリクエスト等で開発に協力することができます。また、寄付も受け付けています。

GitHub - FreshRSS/FreshRSS: A free, self-hostable aggregator…

FreshRSSを使い始めてから数ヶ月経ちますが、ちゃんと動いており、不満はありません。強いて上げるならば設定が分かりにくいということくらいです。

ここでは、FreshRSSをサーバーにインストールして使う方法を紹介します。

インストール

私は、FreshRSSの実行にDockerとDocker Composeを使っています。Dockerを使う理由はインストールがしやすいからです。また、今後もしも削除する場合にもアンインストールしやすいようにしています。

Docker Composeでの設定ファイルを次に載せました。Dockerのイメージは公式で配布されているものを利用しています。

version: "3"

services:
  freshrss:
    image: freshrss/freshrss:alpine
    restart: unless-stopped
    ports:
      - 8080:80
    volumes:
      - data:/var/www/FreshRSS/data
      - extensions:/var/www/FreshRSS/extensions
    environment:
      TZ: Asia/Tokyo
      CRON_MIN: '*/15'

volumes:
  data:
  extensions:

environmentでは、タイムゾーンやRSSを取得しに行く間隔を指定しています。特にCRON_MINは取得の間隔ですので、お好みのものを設定してください。私は15分ごとに取得するように設定しています。

portsには8080番ポートを指定しています。これでサーバーの80番ポートで接続可能です。

さらに私の場合は、Nginxのリバースプロキシを利用してHTTPS接続ができるようにしています。

Nginxの設定は次です。server_nameやssl_certificateなどの設定は適当なものに置き換えてください。

server {
    listen 443 ssl http2;
    server_name freshrss.example.com;

    ssl_certificate /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080/;
        proxy_set_header Host $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;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_read_timeout 90;

        # Forward the Authorization header for the Google Reader API.
        proxy_set_header Authorization $http_authorization;
        proxy_pass_header Authorization;
    }
}

server {
    listen 80;
    server_name freshrss.example.com;

    return 301 https://$server_name$request_uri;
}

これで設定は終わりです。FreshRSSにアクセスできます。

FreshRSSでは、初期ユーザーとして、ユーザー名「freshrss」、パスワード「freshrss」が設定されています。この情報でログインした後は、セキュリティのためパスワードなどを変更して利用しましょう。

さいごに

RSSの確認をするときは、ブラウザからアクセスして行いますが、APIが公開されているため、対応さえしていればスマホアプリなどからもアクセス可能です。

実際に私は、Reader 5というiOSアプリを利用して、iPhoneからアクセスしています。

FreshRSSを使ってみたい人の参考になれば嬉しいです。