無需公衆 IP、手動での証明書の更新も不要です。
この記事では、サーバーに Debian 12 を使用しています。
- Cloudflare アカウントの登録
コントロールパネルでドメインを追加します。
無料で利用できる Cloudflare を選びましょう😎
-
ドメインの NS レコードを Cloudflare に変更
チュートリアルに従って進めてください。 -
Cloudflare ゼロトラストトンネルのインストール
https://one.dash.cloudflare.com/
Access->Tunnels の順に選択し、ドキュメントに従ってインストールします。
- インストールが完了したら、Public Hostname を選択し、自分のドメインを追加します。
ここでは例として、自分のサブドメインを追加します。
Http Header に完全なサブドメインを追加します。
-
Docker のインストール
apt を使用してインストールします(Debian ベースの場合)# Dockerの公式GPGキーを追加します: apt-get update apt-get install ca-certificates curl gnupg -y install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg chmod a+r /etc/apt/keyrings/docker.gpg # Aptソースにリポジトリを追加します: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ tee /etc/apt/sources.list.d/docker.list > /dev/null apt-get update apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
他のプラットフォームの場合は、以下を参照してください。
https://www.docker.com/products/docker-desktop/ -
docker-compose ファイルの作成
新しい rsshub フォルダを作成し、その中に docker-compose.yml を作成します。
ACCESS_KEY を変更してください。
services:
rsshub:
image: diygod/rsshub
container_name: "rsshub"
restart: always
ports:
- '1200:1200'
environment:
NODE_ENV: production
CACHE_TYPE: redis
REDIS_URL: 'redis://redis:6379/'
PUPPETEER_WS_ENDPOINT: 'ws://browserless:3000'
DEBUG_INFO: false
ALLOW_LOCALHOST: false
ACCESS_KEY: your_pass_key_here
depends_on:
- redis
- browserless
browserless:
image: browserless/chrome
container_name: "browserless"
restart: always
ulimits:
core:
hard: 0
soft: 0
redis:
image: redis:alpine
container_name: "redis"
restart: always
volumes:
- redis-data:/data
volumes:
redis-data:
保存し、docker compose up -d を実行します。
サービスが起動し、ドメインを開くと、rsshub のデフォルトページが表示されるはずです。
デプロイが完了し、後は自分のフィードソースを使用する際に、https://${your_domain}/${subscription_path}?key=your_ACCESS_KEY を使用します。
高度なプレイ方法:
Chaitin WAF を使用してローカル WAF を追加する
- ローカルの nginx/apache/caddy をアンインストールし、80 番および 443 番ポートを解放します。
- Chaitin WAF をインストールします。
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
Chaitin WAF の管理ページ
https://localhost:9443/
SSH マッピングサーバーを使用して 9443 ポートをローカルで開くことができます。
- Chaitin WAF に 80 番ポートのドメインを追加し、ソースを設定します。
Tunnels のポートを 80 に変更します。
- Chaitin WAF に証明書を追加します。
Chaitin WAF の一般設定 -> 証明書管理
- Chaitin WAF に 443 番ポートを追加します。
証明書を使用します。
Tunnels のポートを 443 に変更します。
ここまでで、rsshub のページを https で開くことができます。また、サーバーを経由するトラフィックはすべてクリーンアップされたトラフィックであり、より安全です。
https が問題なく動作していることを確認したら、http2 を有効にし、https を強制します。
Chaitin WAF のソース IP 取得方法を設定し、HttpHeader から X-Forwarded-For を取得するようにします。
tunnel の設定で http2 を有効にします。
ここまで設定が完了しました。Chaitin WAF には統計情報や保護機能が組み込まれているため、サイトの稼働状況や悪用されていないかをより詳しく把握することができます。