インストール: Nextcloud News | NextcloudのRSSリーダー

概要

NextcloudのプラグインアプリにNews (Nextcloud News app) がある。これはRSSリーダーとなっている。NextcloudにNewsアプリをインストールすることで,NextcloudにRSSリーダー機能を追加できる。

OSSのRSSリーダーはいくつか存在しており,過去に「Tiny Tiny RSSのインストール方法」を紹介した。そのときは,Nextcloud Newsの存在を知らなかった。ここ1-2か月でNextcloud Newsの存在を知り興味をもった。

カレンダーや連絡先の管理のためにどうせNextcloudを使うのだから,その他の機能もNextcloudで統一できるならば,サブドメインの管理なども不要になり効率が良くなる。

そこで今回はNextcloud Newsのインストール方法と初期設定について整理した。

Nextcloud 15.0.6のNews 13.1.6で確認した。

インストール

まず,Nextcloudにログインする。その後,右上の [設定] ボタン>[Apps]を選択する。

設定項目

[Multimedia] に [News] があるので,隣の [Download and enable] を選ぶ。

Contactsの有効化

ダウンロードが完了すると,左上の [Apps Selection Menu] に [News] が追加される。

[Apps Selection Menu] に追加された [News]

[Apps Selection Menu]>[News] を選ぶことで,News画面を表示できる。

News

インストール自体はこれで完了となる。

フィードの更新設定

ただ,デフォルトだと以下の警告が画面上部に表示されている。

Ajax or webcron mode detected! Your feeds will not be updated!

How to set up the operating system cron

Install and set up a faster parallel updater that uses the News app’s update API

警告にある通り,フィードの更新の設定が必要となる。表示されている「How to set up the operating system cron」や,NewsのFAQに掲載されている「Feeds are not updated」を参考にcronの設定を行う。FAQのほうが情報が詳しかったのでこちらを参考に設定する。

1. まずdata/news/config/config.iniuseCronUpdates = trueの指定があることを確認する。デフォルト値は以下のようになっており,特に修正する必要はなかった。

autoPurgeMinimumInterval = 60
autoPurgeCount = 200
maxRedirects = 10
maxSize = 104857600
exploreUrl = 
feedFetcherTimeout = 60
useCronUpdates = true

2. 続いて管理画面からバックグランドジョブにCronを指定する。AJAXやWebcronだとフィードは更新されないらしい。

[Settings]>[Administration]>[Basic settings]>[Backgroud jobs]>[◎Cron] を選ぶ。

この設定により,Newsの画面の警告が消える。

3. 最後にcronでの定期実行コマンドを登録する。crontab -eを実行するか,レンタルサーバーの設定で以下のコマンドを登録する。

php -f /var/www/nextcloud/cron.php

cron.phpはNextcloudのインストールディレクトリーの直下にあるので,自分のインストール構成に合わせてパスを変更する。

これでフィードの自動更新設定は完了となる。

フィードのインポート

最後に他のRSSリーダーで購読しているフィードをインポートする。事前に他のRSSリーダーでOPML形式でフィードをエクスポートしておく。

[News]>[Settings]>[Subscriptions (OPML)]>[Import] を選ぶ。

フィードの取り込みが始まる。リンク切れしているフィードなどはインポートに失敗してエラーが出るので注意する。

フィードのインポートが完了すると上記の画面が表示される。

結論

Nextcloud Newsのインストール方法を整理した。

軽く使ってみた限り,最低限の機能だけがあるように感じた。具体的には,以下の機能があるように感じた。

  • フィードのカテゴリー分類
  • スター
  • フィードの更新無視
  • インポート・エクスポート

代わりに,Tiny Tiny RSSにはある以下の機能はなかった。

  • 公開フィード
  • 既読履歴

個人的には,フィードの更新無視の機能が必要に思っている。リストとしてはもっておきたいが,更新頻度が短いのでフィードは読みたくない場合があったりする。

ただし,URLに日本語を含むとフィードを購読できないようだ。例えば,「https://article.hareruyamtg.com/article/tag/%e9%96%a2%e8%a5%bf%e5%b8%9d%e7%8e%8b%e6%88%a6/」のURLはTiny TIny RSSだと購読できるのだが,Nextcloud Newsだとエラーが出てうまくいかない。

具体的には以下のエラーが表示される。

FeedIo\Reader\NoAccurateParserException: No parser can handle this stream in /virtual/senooken/public_html/storage.senooken.jp/apps/news/vendor/debril/feed-io/src/FeedIo/Reader.php:174
Stack trace:
#0 /virtual/senooken/public_html/storage.senooken.jp/apps/news/vendor/debril/feed-io/src/FeedIo/Reader.php(153): FeedIo\Reader->getAccurateParser(Object(FeedIo\Reader\Document))
#1 /virtual/senooken/public_html/storage.senooken.jp/apps/news/vendor/debril/feed-io/src/FeedIo/Reader.php(138): FeedIo\Reader->parseDocument(Object(FeedIo\Reader\Document), Object(FeedIo\Feed))
#2 /virtual/senooken/public_html/storage.senooken.jp/apps/news/vendor/debril/feed-io/src/FeedIo/Reader.php(117): FeedIo\Reader->handleResponse(Object(FeedIo\Adapter\Guzzle\Response), Object(FeedIo\Feed))
#3 /virtual/senooken/public_html/storage.senooken.jp/apps/news/vendor/debril/feed-io/src/FeedIo/FeedIo.php(286): FeedIo\Reader->read('https://article...', Object(FeedIo\Feed), Object(DateTime))
#4 /virtual/senooken/public_html/storage.senooken.jp/apps/news/lib/Fetcher/FeedFetcher.php(77): FeedIo\FeedIo->read('https://article...')
#5 /virtual/senooken/public_html/storage.senooken.jp/apps/news/lib/Fetcher/Fetcher.php(68): OCA\News\Fetcher\FeedFetcher->fetch('https://article...', true, NULL, NULL, NULL)
#6 /virtual/senooken/public_html/storage.senooken.jp/apps/news/lib/Service/FeedService.php(116): OCA\News\Fetcher\Fetcher->fetch('https://article...', true, NULL, NULL, NULL)
#7 /virtual/senooken/public_html/storage.senooken.jp/apps/news/lib/Controller/FeedController.php(157): OCA\News\Service\FeedService->create('https://article...', 5, 'senooken', NULL, NULL, NULL)
#8 /virtual/senooken/public_html/storage.senooken.jp/lib/private/AppFramework/Http/Dispatcher.php(166): OCA\News\Controller\FeedController->create('https://article...', 5, NULL, NULL, NULL)
#9 /virtual/senooken/public_html/storage.senooken.jp/lib/private/AppFramework/Http/Dispatcher.php(99): OC\AppFramework\Http\Dispatcher->executeController(Object(OCA\News\Controller\FeedController), 'create')
#10 /virtual/senooken/public_html/storage.senooken.jp/lib/private/AppFramework/App.php(118): OC\AppFramework\Http\Dispatcher->dispatch(Object(OCA\News\Controller\FeedController), 'create')
#11 /virtual/senooken/public_html/storage.senooken.jp/lib/private/AppFramework/Routing/RouteActionHandler.php(47): OC\AppFramework\App::main('OCA\\News\\Contro...', 'create', Object(OC\AppFramework\DependencyInjection\DIContainer), Array)
#12 [internal function]: OC\AppFramework\Routing\RouteActionHandler->__invoke(Array)
#13 /virtual/senooken/public_html/storage.senooken.jp/lib/private/Route/Router.php(297): call_user_func(Object(OC\AppFramework\Routing\RouteActionHandler), Array)
#14 /virtual/senooken/public_html/storage.senooken.jp/lib/base.php(987): OC\Route\Router->match('/apps/news/feed...')
#15 /virtual/senooken/public_html/storage.senooken.jp/index.php(42): OC::handleRequest()
#16 {main}

見た感じは悪くなかったので,Tiny Tiny RSSからNextcloud Newsに乗り換えようかと思ったのだが,このバグがあるのでしばらく様子を見ることにする。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です