Twitterに疲れたあなたへ。RSSを活用したシンプルなニュース閲覧システムMinifluxを

## はじめに

Twitterとか、Xとかいう謎のサイトあるじゃないですか。あれ、眺めるの疲れません？

というわけで、この記事は[Miniflux](https://miniflux.app/)を布教するための記事です。MinifluxはよくあるRSSのデータを収集してくれるオープンソースのRSSフィードです。つまるところ、ニュースリーダーだと思ってくれて構いません。

ただ、ただのニュースリーダーではありません。複数のサイトの記事を、かなり統一したフォーマットで読むことができるように構造化してくれる**すばらしい**サービスなのです。

…べつにいらないって？

まあ、いいんです。とりあえず、どんな感じか見てみましょう。

## Minifluxの概要

![スクリーンショット 2025-01-17 19.41.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300771/48b1512c-e6a2-ea91-8f83-f8f4cc63ee76.png)

これは、私のVPNで動いているminifluxのサイトです。そして、閲覧しているのは私のQiitaの記事になります。正直、これをやりたいがために今日は記事をいくつか書きました。

さて、ぶっちゃけ思ったことでしょう。べつにそんな見やすいってほどでもなくね…と。いや、わかりますよ。確かに、Qiitaはよくできているし広告で画面が不自由になることもない、とても良いサイトだと思います。ですが、それとは少し違うベクトルの話をします。

世の中には、いろんなニュースサイトがありますよね。たとえばGIZMODEだとかGIGAZINEだとか、NHKもRSSで記事を提供してくれています。しかし、それらのサイトの表示形式は、決して一貫していないのです。

ニュースリーダーで記事を見るとき、あなたは本家のサイトにアクセスして記事を閲覧することでしょう。しかし、サイトごとに記事の構造は違いますし、色味なんかも好みが分かれます。フォントも見づらかったり、文字が小さかったり、さまざまな不満点があることでしょう。

ただし、このMinifluxの記事をダウンロードする機能を利用すれば(というか、設定すればボタンを押すまでもなく自動でやってくれます)、その違和感から解放されます。全ての記事を(はちょっと言い過ぎですが)、統一したフォーマットで読むことができるのです。

さらに、これは完全にカスタマイズ可能。先ほどの画像のUIも、実はかなりcssで改造しています。文字の大きさからフォント、行間に至るまで、CSSで解決できる違和感はほとんど自力で解決できますよ。([CSS自慢](https://gist.github.com/maTORIx/e5fd1b39c050d9286120a03b4e911330))

![スクリーンショット 2025-01-17 19.42.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300771/da618d45-ec6b-291b-32c0-da03d4678738.png)

これが、ニュース一覧です。著作権とかが怖いので、自分以外が書いたものは載せられませんが、自分の場合は1日に数百件の記事が入荷されています。

気になる時事ネタから、非常にマニアックなブログまで。全て自分好みに。もちろん、いらないものは、最初から入っていません。全てはあなた次第です。

どうですか？ちょっとは興味が湧いてきましたか？

## Minifluxを立ち上げる
Dockerをインストールしているのなら、話は簡単です。

```sh
cd /some/directory
expost POSTGRESS_PASSWORD="XXXXX"
export MINIFLUX_USERNAME="XXXXX"
export MINIFLUX_PASSWORD="XXXXX"
docker run -d --restart always \
	--name miniflux-db \
	-e POSTGRES_PASSWORD=$POSTGRESS_PASSWORD \
	-e PGDATA=/var/lib/postgresql/data/pgdata \
	--network miniflux \
	-v $PWD/postgres/data:/var/lib/postgresql/data \
	-p 5432:5432 \
	postgres
docker run -d --restart always \
  -p 8080:8080 \
  --name miniflux \
  --network miniflux \
  -e "DATABASE_URL=postgres://miniflux:$POSTGRESS_PASSWORD@postgres/miniflux-db?sslmode=disable" \
  -e "RUN_MIGRATIONS=1" \
  -e "CREATE_ADMIN=1" \
  -e "ADMIN_USERNAME=$MINIFLUX_USERNAME" \
  -e "ADMIN_PASSWORD=$MINIFLUX_PASSWORD" \
```

これで、サーバーが再起動しても自動で起動してくれるようになりました。あとは、localhost:8080にアクセスするだけ。(人に見せる都合上ポートをありきたりにしていますが、8080は開発中に被りやすいので避けた方がいいかも)

## RSSを購読しよう
さて、サイトにアクセスしてみて最初に驚くことがあると思います。

ワイ「……なんもねぇ」

そう、RSSを購読する前の状態では、READMEはおろか記事の一つも存在しないのです。そんなニュースリーダーに彩を加えるために、とりあえずサイトを追加してみましょう。

追加するにはヘッダーにある`Feeds(+)`の`+`にあるリンクを踏みます。ここに、好きなニュースサイトを入れてみましょう。

![スクリーンショット 2025-01-17 20.06.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300771/efd8de82-cd52-d277-da28-4b1f0e46859a.png)


自分のオススメは、[NHK](https://www.nhk.or.jp/toppage/rss/index.html)とかGIGAZINE、GIZMODEぐらいですかね。まあ、皆さん普段情報収集はされてると思うので、各自登録してみてください。ちなみにQiitaもRSS対応してます。

ありがたいことにminifluxには対象のサイトを入力すると自動でrssを配信しているURLを探索してくれる機能があります。とりあえず、購読してみたいと思ったらそのURLを入れてみて、自動探索にかけてみるといいと思います。

(記事の冒頭で紹介したダウンロード機能は、自動ダウンロード未設定の場合、右上のダウンロードボタンを押すことで動きます)

## カスタマイズしよう

さて、次に驚くことがあるはずです。

ワイ「なんか……見づらくね」

そう。このMinifluxはミニマリストのためのRSSフィードを謳っているだけあり、スタイルが非常にシンプルです。というかなんというか…まあ洗練されていないといっていいでしょう。初期状態のMinifluxのUIは非常に見づらいです。それにフォント設定なんかも特にしてないので、特に日本語の記事を閲覧するときにちょっとした違和感を感じます。

![スクリーンショット 2025-01-17 20.11.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300771/5dc570a0-9ab6-f13f-ec07-a46a8570e0dd.png)

私のMinifluxもCSSを調整する前はこうでした。まず、明朝体なのが気に食わない。それに、フォントもカッコいいけど見づらい系で読みにくいし、ヘッダーの行間も気に食わない。

そんな状況を解決するのが、設定画面にある`Custom CSS`の部分です。

とりあえず、自分の[css](https://gist.github.com/maTORIx/e5fd1b39c050d9286120a03b4e911330)を置いておきます。とりあえず、これをぶち込んでくれたら、自分と感性が同じ感じの場合は割と読みやすいかもしれません。

あと、設定のUpdateボタンを押す前にもう一つ。フォントのダウンロード先を明示する必要があります。Custom CSSの下の`External font hosts`の部分です。ここに`fonts.googleapis.com fonts.gstatic.com`といった感じでスペース区切りでURLを入力してください。

そして、Updateボタンを押したら、あら不思議。先ほどまで見づらかったMinifluxのUIがある程度マシになっているではありませんか！

## カスタマイズしよう(その2)

さて、次に紹介するのは記事の自動ダウンロードやその他の設定です。これは、Feedごとの設定なのでちょっと面倒ですが、設定する価値はあると思います。

まずFeedsページのフィードの下に、`Edit`とあると思います。それのリンクを踏むと、フィードごとの設定画面に到達します。そこでまず設定して欲しいのが、記事を自動でダウンロードする機能です。

`Network Settings`にある`Fetch original content`のチェックボックスにチェックを入れて、Updateしましょう。ひとまず、これだけで記事のダウンロードボタンを押す手間が減ります。(設定後新しく入ってきた記事は、自動ダウンロードされます)

また、サイトによっては記事の画像がうまく表示されないところもあります。そんな時は、`Rules`の`Rewrite rules`に`add_dynamic_image`と入れてみてください。これで、おそらくほとんどの場合は解決すると思います。それ以外にもさまざまなRuleがありますので、もっとカスタマイズしたい方はドキュメントを参照すると良いと思います。

## おいついた
これで、あなたも立派なMinifluxユーザーです。というか私自身、このサービスを利用して数日程度しか経っていないので、実質あなた方と同じMiniflux初級者です。

しかしながら、そんな短い期間でもすぐにわかる素晴らしさがこのMinifluxにはあります。自前で運用する必要があるという難点はありますが、皆さんのことですし自宅サーバーの一つや二つ持っているでしょう。もし、外部からアクセスしたいならVPNを使うなり[この記事](https://qiita.com/matorixmatrix/items/947e4e0039fd6aee9d65)を参考にするなりしてみてください。

## 参考
ここで存在を知りました。

https://qiita.com/jqtype/items/ca576967ffa1a25e6e4a

## スペシャルサンクス

https://miniflux.app/