RSS-Bridgeを使用してソーシャルメディアのRSSフィードを作成する

木のテーブルの上に置かれたノートパソコンの写真。

RSS-Bridgeは、Linux用の強力な自己ホスト型RSSフィードジェネレーターです。これを使用すると、現在のほぼすべてのモダンなウェブサイトからフィードを作成できます。これにより、メディアフィードを1つにまとめたいRSSユーザーにとって非常に便利です。この記事では、Dockerを使用してUbuntu LinuxにRSS-Bridgeをインストールし、展開する方法を示します。

目次

  • RSS-BridgeでRSSフィードを作成する理由
  • RSS-Bridgeの依存関係を取得する
  • RSS-Bridgeを取得してビルドする
  • Nginxを使用してSSLリバースプロキシを作成する
  • RSS-BridgeにカスタムRSSフィードジェネレーターを追加する

RSS-BridgeでRSSフィードを作成する理由

RSS-Bridgeの最大のセールスポイントの1つは、シンジケーションリンクを提供しないウェブサイトのプロキシとして機能することです。たとえば、YouTubeでは、お気に入りのクリエイターが新しい動画をアップロードしたかどうかを確認するために、独自のフロントエンドアプリを使用する必要があります。RSS-Bridgeを使用すると、新しい動画があるときにRSSで通知を受け取ることができます。

YouTubeの購読ページのスクリーンショット。

RSS-Bridgeのもう1つの利点は、シンジケートしているサイトとの間でより大きな制御とセキュリティを提供することです。これにより、RSSフィードのためにサードパーティサービスに依存したくないプライバシーを重視するユーザーにとって魅力的です。

ヒント: 自分のRSSリーダーアプリをFreshRSSを使用してホストすることもできます。

RSS-Bridgeの依存関係を取得する

前提: この記事では、インターネットにアクセス可能なUbuntuサーバーにRSS-Bridgeをインストールすることを前提としています。また、現在所有しているアクティブなドメイン名があることも前提としています。

まず、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

新しい「docker.list」ファイルに次の行を書き込みます:

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

システムのパッケージリポジトリを更新し、次のコマンドを実行してパッケージが最新であることを確認します:

sudo apt update &&sudo apt upgrade

DockerおよびDocker ComposeのバイナリとRSS-Bridgeの依存関係をインストールします:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx git

Certbotのためにシステムを準備するために、「core」スナップパッケージをインストールします:

sudo snap install core

Electronic Frontier Foundation (EFF)からCertbotパッケージをインストールします:

sudo snap install certbot --classic

知っておくと良いこと: Dockerを使用して自分のWordPressサイトを展開する方法を学びましょう。

RSS-Bridgeを取得してビルドする

ホームディレクトリ内に新しいフォルダを作成し、その中に移動します:

mkdir ~/rss-bridge &&cd ~/rss-bridge

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

nano ./docker-compose.yml

新しいDocker Composeファイル内に次のコードブロックを貼り付けます。これは、カスタム設定用にボリュームがマッピングされたRSS-Bridgeのデフォルトの「docker-compose.yml」です:

version: '2'  
  
services:  
  rss-bridge:  
    image: rssbridge/rss-bridge:latest  
    volumes:  
      - /home/$USER/rss-bridge/:/config  
# Replace "/home/$USER/rss-bridge" with "/root/rss-bridge" if you're running on root.  
    ports:  
      - 127.0.0.1:3000:80  
    restart: unless-stopped

Dockerコンテナをビルドして実行します:

sudodocker compose up --detach

システム内のすべての利用可能なコンテナをリストして、RSS-Bridgeが正常に実行されていることを確認します:

dockerps

RSS-Bridge Dockerコンテナが正常に実行されているターミナル。

Nginxを使用してSSLリバースプロキシを作成する

この時点で、ポート3000で実行中のRSS-Bridgeインスタンスがあります。ただし、使用するには、まずその出力接続をSSLリバースプロキシを通過させる必要があります。

RSS-BridgeサーバーのIPアドレスを指す新しい「A」DNSレコードを作成します。私の場合、RSS-Bridgeインスタンスの「A」レコードをサブドメイン「rss」に設定します。

サーバーに戻り、新しいNginxサイト構成ファイルを作成します:

sudonano/etc/nginx/sites-available/rss-bridge

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

server {  
  
        server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;  
  
        location /{  
                proxy_pass http://127.0.0.1:3000;  
                proxy_http_version 1.1;  
                proxy_set_header Upgrade $http_upgrade;  
                proxy_set_header Connection "upgrade";  
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
                proxy_set_header Host $host;  
}  
}

「server_name」変数の値をサーバーの「A」DNSレコードに置き換えます。

Nginxの「server_name」変数を強調表示したターミナル。

サイト構成ファイルを保存し、「/etc/nginx/sites-enabled」フォルダにリンクします:

sudoln-s/etc/nginx/sites-available/rss-bridge /etc/nginx/sites-enabled

Nginxデーモンを再読み込みして新しい設定を適用します:

sudo systemctl reload nginx.service

SSLをリクエストしてRSS-Bridgeに接続する

これが完了したら、CertbotからSSL証明書をリクエストしてリバースプロキシを保護できます。これにより、クライアントとインスタンス間のすべての接続が暗号化され、安全になります。

次のコマンドを実行して、ドメイン名をCertbotに登録します:

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

「y」と入力し、Enterを押してEFFから最新の更新を受け取ります。

スクリーンショット

サブドメインの新しい証明書をリクエストします:

sudo certbot --nginx-d SUBDOMAIN.YOUR-ROOT.DOMAIN

ウェブブラウザで開いてSSLリバースプロキシが正常に機能しているかテストします。

RSSフィードテスト実行のスクリーンショット

FYI: OpenSSLを使用して独自のSSL証明書を発行することで、ウェブ暗号化についてさらに学びましょう。

RSS-BridgeにカスタムRSSフィードジェネレーターを追加する

デフォルトでは、RSS-Bridgeには16のカスタムフィードジェネレーターのみが付属しています。これらのほとんどは、RedditやTwitchなどの人気のあるウェブサイトをカバーしていますが、プロジェクトはGitHubリポジトリに400以上のユーザー管理のフィードジェネレーターも提供しています。

これにアクセスするには、まずDockerコンテナを無効にします:

sudodocker compose down

ホームディレクトリに新しいフォルダを作成し、その中に移動します:

mkdir ~/git&&cd ~/git

RSS-Bridgeリポジトリを新しいフォルダにクローンします:

git clone https://github.com/RSS-Bridge/rss-bridge.git

Gitリポジトリ内の「bridges」ディレクトリをDockerコンテナのフォルダにコピーします:

cp-rv ./rss-bridge/bridges ~/rss-bridge/

Dockerコンテナのフォルダ内に新しいテキストファイルを作成します:

nano ~/rss-bridge/whitelist.txt

新しいテキストファイルに「*」を書き込み、インスタンスのすべてのフィードジェネレーターを有効にします。

RSS-Bridgeインスタンスのすべてのジェネレーターモジュールを有効にするホワイトリストのアスタリスクを強調表示したターミナル。

このテキストファイルを使用して他のフィードジェネレーターをフィルタリングすることもできます。これを行うには、ls bridgeを実行し、インスタンスに表示したいジェネレーターの名前を見つけます。

Gitリポジトリからのカスタムジェネレーターの小さなリストを表示しているターミナル。

テキストファイルを開き、「*」を削除し、「.php」拡張子なしでジェネレーターの名前を提供します。

whitelist.txtファイル内のカスタムジェネレーターを表示しているターミナル。

新しい設定を適用するためにDockerコンテナを再起動します。

cd ~/rss-bridge  
sudodocker compose up --detach

HTTP認証でRSS-Bridgeを保護する

カスタムフィードを追加するだけでなく、インスタンスに少し認証チャレンジを含めることもできます。これは、匿名ユーザーがウェブアプリを悪用するのを防ぐのに特に役立ちます。

RSS-Bridge Dockerコンテナを停止します:

sudodocker compose down

Dockerコンテナのディレクトリに新しい「config.ini.php」ファイルを作成します:

nano ~/rss-bridge/config.ini.php

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

[authentication]  
  
enable = true  
username = "MyRSSBridgeUsername"  
password = "MyStrongPassword"

「username」と「password」変数の値を自分のユーザー名とパスワードに置き換えます。

インスタンスのカスタムユーザー名とパスワードを表示しているターミナル。

構成ファイルを保存し、新しい設定を適用するためにコンテナを再起動します:

sudodocker compose up --detach

注意: これを行うと、インスタンスからのカスタムRSSフィードを購読するためにユーザー名とパスワードを追加する必要があります。

最初のカスタムRSSフィードを作成する

最初のカスタムフィードを作成するには、ジェネレーターのリストをスクロールし、フィードを作成したいサイトを探します。

ジェネレーターのエントリの下にあるShow moreリンクをクリックします。

Github IssueカスタムRSSフィードジェネレーターを強調表示したスクリーンショット。

RSSフィードの詳細を提供します。私の場合、Urbit OSのGitリポジトリで現在オープンしているすべての問題をリストするフィードを作成したいと思います。

Generate Feedをクリックして、ウェブサイト用のカスタムRSSフィードを作成します。

Github Issueフィードジェネレーターのカスタマイズ詳細を表示しているスクリーンショット。

ブラウザのアドレスバーからRSS-Bridgeのアドレス全体をコピーします。

Firefoxのアドレスバーで強調表示されてコピーされたアドレスのスクリーンショット。

RSSフィードリーダーに移動し、クリップボードのリンクを使用して新しいサブスクリプションエントリを作成します。

新しいRSSフィードをテストして、フィードリーダーを使用して新しいカスタムフィードの内容をリストします。

Linux用のオフラインRSSリーダーNewsflashで動作しているカスタムフィードを表示しているスクリーンショット。

RSS-BridgeをインストールしてカスタムRSSフィードを作成および公開することは、デジタルライフを取り戻すための第一歩です。自己ホスティングについてさらに学び、SimpleLoginを使用して独自のプライベートメールエイリアスサーバーを作成することで、オンラインでの保護を強化しましょう。

画像クレジット: Alejandro Escamilla via UnsplashおよびRSS-Bridge Github。すべての変更とスクリーンショットはRamces Redによるものです。