FreshRSSを使ってRSSリーダーを自己ホストする方法

カフェのテーブルの上にあるノートパソコンの写真。

FreshRSSは、Linuxサーバー向けのシンプルで簡単にデプロイできるウェブベースのRSSフィードリーダーです。Tiny Tiny RSSと同様に、ウェブブラウザからアクセスできるクリーンでクロスプラットフォームのインターフェースを提供します。

この記事では、UbuntuにFreshRSSをインストールする方法を示します。また、マルチユーザーセッション用にリーダーを設定する方法も強調します。

目次

  • なぜFreshRSSなのか?
  • FreshRSSのインストール
  • リバースプロキシとSSLの設定
  • FreshRSSへのアクセスと設定

なぜFreshRSSなのか?

FreshRSSの最大のセールスポイントの1つは、内蔵のウェブスクレイパーが付属していることです。これにより、RSSフィードをサポートしていないウェブサイトでも基本的なRSSフィードを作成できます。

FreshRSSのウェブスクレイピングツールのスクリーンショット。

FreshRSSは、現代のコンテンツプラットフォームでプッシュ通知もサポートしています。その結果、プラットフォームは投稿の更新に非常に迅速かつ反応的です。最後に、インストールも簡単で、自己ホスティングを始めたばかりの初心者にとって理想的なプロジェクトです。

完全に動作しているFreshRSSインスタンスのスクリーンショット。

FreshRSSのインストール

前提条件: この記事では、VPSインスタンスのIPアドレスとホスト名を指すAレコードとPTRレコードを持つ作業中のドメイン名があることを前提としています。

FreshRSSをインストールするためにDockerを使用します。

Dockerのインストール

プロジェクトのウェブサイトからDockerリポジトリの署名キーを取得します:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg |sudo gpg --dearmor-o/etc/apt/keyrings/docker.gpg  
sudochmod a+r /etc/apt/keyrings/docker.gpg

Docker用の新しいリポジトリファイルを作成します:

sudonano/etc/apt/sources.list.d/docker.list

新しいリポジトリファイルに次の行を記述します:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

システムリポジトリを更新し、システムを更新してDockerバイナリをインストールします:

sudo apt update &&sudo apt upgrade  
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx

FreshRSS Dockerコンテナの構築

ユーザーのホームディレクトリにFreshRSS用の新しいディレクトリを作成し、その中に入ります:

mkdir ~/freshrss &&cd ~/freshrss

お気に入りのテキストエディタを使用して「docker-compose.yml」ファイルを作成します:

nano ./docker-compose.yml

新しいdocker-composeファイルに次のコードブロックを貼り付けます:

---  
version: "2.4"  
volumes:  
  data: null  
  extensions: null  
services:  
  freshrss:  
    image: freshrss/freshrss:latest  
    build:  
      context: https://github.com/FreshRSS/FreshRSS.git#latest  
      dockerfile: Docker/Dockerfile-Alpine  
    container_name: freshrss  
    hostname: freshrss  
    restart: unless-stopped  
    logging:  
      options:  
        max-size: 10m  
    volumes:  
      - data:/var/www/FreshRSS/data  
      - extensions:/var/www/FreshRSS/extensions  
    ports:  
      - "8080:80"  
    environment:  
      TZ: Asia/Manila # あなたのタイムゾーンに変更  
      CRON_MIN: 3,33

docker-compose.ymlファイルを保存します。次のコマンドを実行してDockerコンテナをビルドします:

sudodocker compose up -d

リバースプロキシとSSLの設定

FreshRSSインスタンスが起動したら、次にNginxを設定してリバースプロキシを作成し、ドメイン名を介して公開アクセスできるようにします。

まず、インスタンス用のNginxサイト設定ファイルを作成します:

sudonano/etc/nginx/sites-available/freshrss

新しいサイト設定ファイルに次のコードブロックを貼り付けます:

server {  
    listen 80;  
    listen [::]:80;  
  
    root                    /var/www/html;  
    server_name             freshrss.your-domain-name.here;  
  
    location /{  
        proxy_set_header    X-Forwarded-For $remote_addr;  
        proxy_set_header    Host $http_host;  
        proxy_set_header    X-Forwarded-Proto $scheme;  
        proxy_pass          http://localhost:8080;  
}  
}

新しいサイト設定ファイルを保存し、次のコマンドを実行して「/etc/nginx/sites-enabled」へのシンボリックリンクを作成します:

sudoln-s/etc/nginx/sites-available/freshrss /etc/nginx/sites-enabled/

Nginxの設定をテストします:

sudo nginx -t

すべてが正常であれば、Nginxサーバーデーモンをリロードし、システム起動時に有効にします:

sudo systemctl reload nginx

インスタンスのSSLを有効にする

SSL証明書を取得するために、システムにコアスナップデーモンをインストールします:

sudo snap install core

スナップを使用して、電子フロンティア財団(EFF)のcertbotユーティリティを取得してインストールします:

sudo snap install certbot --classic

次のコマンドを実行して、EFFにcertbotインストールを登録します:

sudo certbot register --agree-tos-m [email protected]

次のコマンドを実行して、インスタンスのSSL証明書をリクエストします:

sudo certbot --nginx-d your-freshrss-domain-name

FreshRSSへのアクセスと設定

ウェブブラウザを開き、新しいFreshRSSインスタンスのアドレスに移動します。ページのドロップダウンリストをクリックし、FreshRSSを実行したい言語を選択してから「送信」をクリックします。

FreshRSSの言語選択プロンプトのスクリーンショット。

これにより、現在のインスタンスが正常に動作しているかどうかを確認するFreshRSSの自己テストモジュールが読み込まれます。続行するには、ページの下部までスクロールし、「次のステップに進む」をクリックします。

依存関係チェックプロンプトのスクリーンショット。

ドロップダウンリストをクリックし、「SQLite」を選択してから「送信」をクリックします。

データベース選択プロンプトのスクリーンショット。

インスタンスの管理者ユーザーの詳細を入力し、「送信」をクリックして作成します。

このインスタンスの管理者ユーザーの詳細のスクリーンショット。

「インストールを完了」をクリックして、新しいFreshRSSインスタンスを正しく開始します。

ユーザー登録の有効化

まず、FreshRSS管理者アカウントにログインし、ページの右上隅にある歯車アイコンをクリックします。

FreshRSSの設定ボタンを強調表示したスクリーンショット。

「管理」カテゴリまでスクロールし、「システム設定」を選択します。

「ユーザー登録フォーム」サブカテゴリに移動し、「登録フォーム」の隣のドロップダウンボックスをクリックして、「有効: アカウントの制限なし」オプションを選択します。

FreshRSSインスタンスの登録トグルのスクリーンショット。

ページの下部にある「送信」ボタンをクリックして、新しいサイト設定を保存します。

既存ユーザーのデータを消去

FreshRSS管理者アカウントに移動し、ページの右上隅にある歯車アイコンをクリックします。

「管理」カテゴリに移動し、「ユーザー管理」を選択します。

これにより、FreshRSSインスタンス内の現在のユーザーのリストが表示されます。無効にしたいユーザーの名前をクリックします。

ユーザー管理プロンプト内のクリック可能なユーザー名を強調表示したスクリーンショット。

「消去」ボタンをクリックして、ユーザーのRSSフィードを消去します。

現在読み込まれているユーザーの「消去」ボタンを強調表示したスクリーンショット。

自分自身のウェブベースのRSSフィードリーダーをホスティングすることは、オンラインでの個人データを管理する第一歩に過ぎません。Peertubeを使って自分の動画共有ウェブサイトをホストする方法を学びましょう。

画像クレジット: Yongma Seo via UnsplashとFreshRSS Github (ロゴ)。すべての変更とスクリーンショットはRamces Redによるものです。