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で通知を受け取ることができます。

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 upgradeDockerおよびDocker ComposeのバイナリとRSS-Bridgeの依存関係をインストールします:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx gitCertbotのためにシステムを準備するために、「core」スナップパッケージをインストールします:
sudo snap install coreElectronic 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-stoppedDockerコンテナをビルドして実行します:
sudodocker compose up --detachシステム内のすべての利用可能なコンテナをリストして、RSS-Bridgeが正常に実行されていることを確認します:
dockerps
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レコードに置き換えます。

サイト構成ファイルを保存し、「/etc/nginx/sites-enabled」フォルダにリンクします:
sudoln-s/etc/nginx/sites-available/rss-bridge /etc/nginx/sites-enabledNginxデーモンを再読み込みして新しい設定を適用します:
sudo systemctl reload nginx.serviceSSLをリクエストして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リバースプロキシが正常に機能しているかテストします。

FYI: OpenSSLを使用して独自のSSL証明書を発行することで、ウェブ暗号化についてさらに学びましょう。
RSS-BridgeにカスタムRSSフィードジェネレーターを追加する
デフォルトでは、RSS-Bridgeには16のカスタムフィードジェネレーターのみが付属しています。これらのほとんどは、RedditやTwitchなどの人気のあるウェブサイトをカバーしていますが、プロジェクトはGitHubリポジトリに400以上のユーザー管理のフィードジェネレーターも提供しています。
これにアクセスするには、まずDockerコンテナを無効にします:
sudodocker compose downホームディレクトリに新しいフォルダを作成し、その中に移動します:
mkdir ~/git&&cd ~/gitRSS-Bridgeリポジトリを新しいフォルダにクローンします:
git clone https://github.com/RSS-Bridge/rss-bridge.gitGitリポジトリ内の「bridges」ディレクトリをDockerコンテナのフォルダにコピーします:
cp-rv ./rss-bridge/bridges ~/rss-bridge/Dockerコンテナのフォルダ内に新しいテキストファイルを作成します:
nano ~/rss-bridge/whitelist.txt新しいテキストファイルに「*」を書き込み、インスタンスのすべてのフィードジェネレーターを有効にします。

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

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

新しい設定を適用するためにDockerコンテナを再起動します。
cd ~/rss-bridge
sudodocker compose up --detachHTTP認証でRSS-Bridgeを保護する
カスタムフィードを追加するだけでなく、インスタンスに少し認証チャレンジを含めることもできます。これは、匿名ユーザーがウェブアプリを悪用するのを防ぐのに特に役立ちます。
RSS-Bridge Dockerコンテナを停止します:
sudodocker compose downDockerコンテナのディレクトリに新しい「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リンクをクリックします。

RSSフィードの詳細を提供します。私の場合、Urbit OSのGitリポジトリで現在オープンしているすべての問題をリストするフィードを作成したいと思います。
Generate Feedをクリックして、ウェブサイト用のカスタムRSSフィードを作成します。

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

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

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