軽量TwitterフロントエンドのNitterをセルフホスト

NitterというTwitterのフロントエンドがあります.最近はTwitterが重くてなにか検索しようと思っても待ち長かったり画像読み込み失敗したりといったこともよくあります(PCのスペックと回線が細いせいも大きいですが).軽量ブラウザを使ったりもしてみましたがそうすると見た目や使い勝手がいまいち.

そして現在そういった軽量ブラウザは利用もできなくなりました.

This browser is no longer supported.
Please switch to a supported browser to continue using twitter.com. You can see a list of supported browsers in our Help Center.

そこで Nitter を試してみたところ軽くていい感じです.

現在ログイン機能はないので,投稿や非公開Tweetや非公開リストなどは使えませんが,イベントのハッシュタグを追ったり,過去のtweetを検索といったことをするのに便利です.

RSS形式での出力にも対応しています.

軽量で便利なのでロカールマシンでNitterを動かして外にURLを共有するときは https://nitter.net/ を利用していました.

という話を以前オープンソースカンファレンス2020福岡内の鹿児島らぐのコマで発表しました.

しかし,最近は https://nitter.net/ がTwitterの制限に掛かって利用できないことが多くなってきました.なので自分のVPS上にホストしてみました.

Note
同じ手順で Raspberry Pi OS buster armhf や Debian sid(nimはDebinaパッケージのもの利用)でも動作しました.

Nitterのインストール環境の用意

Nitterが依存している Redislibsass を導入しておきます.

$ sudo apt install redis-server libsass-dev

Nitterを専用アカウントで動かしたいので nitter ユーザ,グループを作ってそのユーザで操作します.

$ sudo groupadd nitter (1)
$ sudo useradd -m -g nitter nitter (2)
$ sudo -iu nitter (3)
  1. nitter グループを作成
  2. nitter ユーザを作成
  3. nitter ユーザのシェルを開く

nimの用意

Nitterはnim-langで出来ています.Nitterのコンパイルにはnim 1.2.0以上が必要ですが,Debian busterのパッケージ版のnimは 0.19.4 でコンパイル出来ません.buster-backports も 1.0.4-1~bpo10+1 と対応していません.(bullseyeは1.4.2)

$ nimble build -d:release
  Verifying dependencies for nitter@0.1.0
       Tip: 2 messages have been suppressed, use --verbose to show them.
     Error: Unsatisfied dependency: nim (>= 1.2.0)
$ dpkg-query -W nim
nim     0.19.4-1

とりあえずnimの公式サイトのバイナリを利用してコンパイルすることにします.

$ wget https://nim-lang.org/download/nim-1.4.2-linux_x64.tar.xz \
https://nim-lang.org/download/nim-1.4.2-linux_x64.tar.xz.sha256 (1)
$ sha256sum -c ./nim-1.4.2-linux_x64.tar.xz.sha256 (2)
nim-1.4.2-linux_x64.tar.xz: OK
$ tar tvf nim-1.4.2-linux_x64.tar.xz | lv (3)
$ tar xvf nim-1.4.2-linux_x64.tar.xz (4)
  1. nimのバイナリをダウンロード
  2. hash確認
  3. アーカイブ確認
  4. アーカイブ展開

Nitterのコンパイル

Nitterのsourceをcloneしてさっきダウンロードして展開したnimでコンパイルします.

$ git clone https://github.com/zedeus/nitter
$ cd nitter
$ PATH=~/nim-1.4.2/bin:$PATH nimble build -d:release
$ PATH=~/nim-1.4.2/bin:$PATH nimble scss
$ mkdir ./tmp

Redis が起動しているのを確認して nitter を起動してみます.この状態で 8080 ポートにアクセスして Nitter が利用できるのを確認します.ポート番号などは nitter.conf で変更できます.

$ ps -ef|grep -i redis (1)
redis    11786     1  0 Feb11 ?        00:15:28 /usr/bin/redis-server 127.0.0.1:6379
$ ./nitter & (2)
$ w3m http://localhost:8080/ (3)
$ kill %1 (4)
$ exit (5)
  1. Redisが動いているのを確認
  2. Nitterを起動
  3. Nitterの動作を確認
  4. Nitterを終了
  5. nitter アカウントから抜ける

Nitterの起動設定

次にNitterに起動設定を行います.Systemd環境なので以下のようなサービスファイルを用意しました.

/etc/systemd/system/nitter.service
[Unit]
Description=Nitter (An alternative Twitter front-end)
After=syslog.target
After=network.target

[Service]
Type=simple

# set user and group
User=nitter
Group=nitter

# configure location
WorkingDirectory=/home/nitter/nitter
ExecStart=/home/nitter/nitter/nitter

Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

サービスを有効にしてNitterを起動します.

$ sudo systemctl enable --now nitter.service
$ systemctl status nitter
● nitter.service - Nitter (An alternative Twitter front-end)
   Loaded: loaded (/etc/systemd/system/nitter.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-02-17 01:13:07 JST; 34s ago
 Main PID: 19702 (nitter)
    Tasks: 1 (limit: 4696)
   Memory: 3.6M
   CGroup: /system.slice/nitter.service
           └─19702 /home/nitter/nitter/nitter
$ w3m http://localhost:8080/

外に公開せず,ローカルで動作させる場合はここまでの手順でOKです.

ドメインとSSL証明書の用意

※この手順はローカルで動かす場合は必要ありません.

今回はサブドメインを用意しました.DNSを設定して nitter.matoken.org を用意しました.設定ミスしたときにリカバリしやすいようにTTlを短く設定してうまく行ったらいつもの長さにします.

証明書はcertbotを使いLet’s encryptで作成しました.

$ sudo certbot certonly -d nitter.matoken.org

apache httpdの用意

※この手順はローカルで動かす場合は必要ありません.

Nitterをそのまま外に公開するのはセキュリティ的に良くないということで,apache httpdでhttpdの処理をしてNitterの8080に転送するようにしました.

Nitter用のapache httpd設定ファイルを用意します.

/etc/apache2/sites-available/nitter.matoken.org.conf
<VirtualHost *:80>
        ServerName nitter.matoken.org
        Redirect permanent / https://nitter.matoken.org/
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName nitter.matoken.org
        ServerAdmin webmaster@matoken.org

        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>

        ProxyPreserveHost On
        ProxyPass / http://127.0.0.1:8080/ nocanon
        ProxyPassReverse / http://127.0.0.1:8080/
        AllowEncodedSlashes On

        ErrorLog ${APACHE_LOG_DIR}/error.nitter.matoken.org.log
        CustomLog ${APACHE_LOG_DIR}/access.nitter.matoken.org.log combined

        SSLCertificateFile /etc/letsencrypt/live/nitter.matoken.org/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/nitter.matoken.org/privkey.pem

</VirtualHost>
</IfModule>

設定を有効にしてテスト後反映します.

$ sudo a2ensite nitter.matoken.org.conf (1)
$ sudo apache2ctl configtest (2)
$ sudo systemctl reload apache2 (3)
  1. 設定ファイルを有効にする
  2. 設定ファイルのテスト
  3. apache httpdの設定反映

この状態で http://nitter.matoken.org/ 及び https://nitter.matoken.org/ にアクセスしてみて Nitter が利用できたらOKです.

とりあえず一般公開しておきますが,今の https://nitter.net みたいにアクセス制限がしょっちゅうかかるようになったら制限するかもしれません.

環境

$ git -C ~nitter/nitter log -1
commit f392b6ca37e66c7c759aa98db23e0bdc62b39c3d (HEAD -> master, origin/master, origin/HEAD)
Author: Lukas Winkler <github@lw1.at>
Date:   Sun Feb 14 12:49:09 2021 +0100

    run optipng -o 9 on all images (#337)
$ dpkg-query -W apache2 redis* libsass-dev certbot
apache2 2.4.38-3+deb10u4
certbot 0.31.0-1+deb10u1
libsass-dev:amd64       3.5.5-4
redis-server    5:5.0.3-4+deb10u2
redis-tools     5:5.0.3-4+deb10u2
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64

Nextcloudが Internal Server Error を返すようになって困った

NextcloudのWeb版にアクセスすると Internal Server Error が帰ってくるようになっていました.

20210119 00:01:55 1076844

Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

別のユーザで試すとログイン画面は表示されて認証機能は動作します.しかしログイン後同じように Internal Server Error このときAndroid版アプリでは普通に利用できていそうです.

よくあるのがサポート対象外になったレガシーなアプリを導入すると同じような状態になることがあります.
しかし,前回利用できていたときと現在の間に特にディストリビューション, Nextcloud, Nextcloudアプリ共にアップデートはしていないはずです.

ログを確認するとhttpdのaccess/errorのlogは特に問題なさそう.
nextcloud.logでそれらしいのは file_put_contents failed でしょうか?

logはNextcloudの設定ファイルの config.php で確認できる.
$ grep log config/config.php
  'log_type' => 'file',
  'logfile' => '/var/log/nextcloud.log',
  'loglevel' => 0,
$ tail -f /var/log/nextcloud.log | jq .
errorっぽいところ?
{
  "reqId": "DVQsgBekfOCY3dvjYO6w",
  "level": 3,
  "time": "2021-01-18T14:59:53+00:00",
  "remoteAddr": "180.131.110.140",
  "user": "matoken",
  "app": "core",
  "method": "GET",
  "url": "/index.php/apps/files/",
  "message": {
    "Exception": "OCP\\Files\\GenericFileException",
    "Message": "file_put_contents failed",
    "Code": 0,
    "Trace": [
      {

まずは手動でファイルとデータベースのバックアップを取っておきます.

バックアップ例
$ sudo -u www-data php /var/www/files.matoken.org/occ maintenance:mode --on (1)
$ sudo -u www-data tar cvf - ${NEXTCLOUD_PATH} | xz > ${BACKUP_PATH}/nextcloud-`date +%F_%T`.tar.xz (2)
$ sudo -u www-data tar cvf - ${NEXTCLOUD_DATA_PATH} | xz > ${BACKUP_PATH}/nextcloud-data-`date +%F_%T`.tar.xz (3)
$ mysqldump --opt --all-databases --events | xz > ${BACKUP_PATH}/nextcloud-`date +%F_%T`.sql.xz (4)
$ sudo -u www-data php /var/www/files.matoken.org/occ maintenance:mode --off (5)
1 メンテナンスモードにする
2 Nextcloud自体のバックアップ
3 Nextcloudデータのバックアップ
4 データベースのバックアップ
5 メンテンスモードを終了

occmaintenance:repair コマンドを試します.

$ sudo -u www-data php ${NEXTCLOUD_PATH}/occ maintenance:repair
 - Repair MySQL collation
     - All tables already have the correct collation -> nothing to do
 - Repair mime types
  : 以下略

コマンド終了後webを再読込するとエラーは解消されました. :)

しかしファイルの一覧が表示されません.最新ファイルは表示されるのでそのファイルを確認すると表示されます.

次に occ files:scan を試してみました.

$ sudo -u www-data php ${NEXTCLOUD_PATH}/occ files:scan --all
Starting scan for user 1 out of 7 (user1)
  : ※省略
+---------+-------+--------------+
| Folders | Files | Elapsed time |
+---------+-------+--------------+
| 20752   | 34164 | 00:04:33     |
+---------+-------+--------------+

これでは変わらなかったようです.多分必要なかった.

次に occ files:scan-app-data を試します.

$ sudo -u www-data php ${NEXTCLOUD_PATH}/occ files:scan-app-data
Scanning AppData for files

+---------+-------+--------------+
| Folders | Files | Elapsed time |
+---------+-------+--------------+
| 84      | 97    | 00:00:01     |
+---------+-------+--------------+

これが当たりだったようで復活しました!

ログを見るとこの問題が発生している間も他のNextcloudアプリは動作していたようだし,Androidアプリ版ではファイルの自動アップロードも動いていたようなので恐らくNextcloud Web版の部分が壊れていたのではないかと思います.

しかし治ったのはいいけどなぜこれが起こったかが謎なのが気持ち悪いです…….

環境
$ sudo -u www-data php /var/www/files.matoken.org/occ -V
Nextcloud 20.0.5
$ dpkg-query -W php mariadb-server
mariadb-server  1:10.3.27-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64

Nextcloud 20.0.4のセキュリティ&セットアップ警告に対応

先日 Nextcloud 19.0.6 から 20.0.4 にアップデートしました.
すると「セキュリティ&セットアップ警告」画面にいくつか警告が出てきたのでその対応メモです.

20201227 19:12:04 2470200

セキュリティ&セットアップ警告
サーバーのセキュリティとパフォーマンスにとって重要なことは、すべてが正確に設定されていることです。あなたの助けとなるよう、Nextcloudでは一部の自動チェックを行っています。詳細な情報は、リンク先のドキュメントを参照してください。

セットアップに関して警告がいくつかあります。
The old server-side-encryption format is enabled. We recommend disabling this. For more details see the documentation.
データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 "occ db:add-missing-indices"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。
テーブル "oc_cards"のインデックス "cards_abiduri"が見つかりません。
The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running "occ db:add-missing-primary-keys" those missing primary keys could be added manually while the instance keeps running.
Missing primary key on table "oc_federated_reshares".
Missing primary key on table "oc_systemtag_object_mapping".
Missing primary key on table "oc_comments_read_markers".
Missing primary key on table "oc_collres_resources".
Missing primary key on table "oc_collres_accesscache".
Missing primary key on table "oc_filecache_extended".
データベース内のいくつかの列で、big intへの変換が行われていません。 大きなテーブルでカラムタイプを変更すると時間がかかることがあるため、自動的には変更されませんでした。 'occ db:convert-filecache-bigint'を実行することによって、それらの保留中の変更は手動で適用できます。 この操作は、インスタンスがオフラインの間に行う必要があります。 詳細についてはこれに関するドキュメントページを読んでください。
federated_reshares.share_id
filecache_extended.fileid
share_external.id
share_external.parent
インストールガイド ↗を再確認して、 ログ にあるすべてのエラーや警告を確認してください。

データベースにいくつかのインデックスがありません。

データベースから修正していきます.まあ書いてあるコマンドを叩くだけですが.

$ sudo -u www-data php ${NEXTCLOUDPATH}/occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Adding cards_abiduri index to the cards table, this can take some time...
cards table updated successfully.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Check indices of the schedulingobjects table.
Check indices of the oc_properties table.

The database is missing some primary keys.

The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running “occ db:add-missing-primary-keys” those missing primary keys could be added manually while the instance keeps running.
Missing primary key on table “oc_federated_reshares”.
Missing primary key on table “oc_systemtag_object_mapping”.
Missing primary key on table “oc_comments_read_markers”.
Missing primary key on table “oc_collres_resources”.
Missing primary key on table “oc_collres_accesscache”.
Missing primary key on table “oc_filecache_extended”.

$ sudo -u www-data php ${NEXTCLOUDPATH}/occ db:add-missing-primary-keys
Check primary keys.
Adding primary key to the federated_reshares table, this can take some time...
federated_reshares table updated successfully.
Adding primary key to the systemtag_object_mapping table, this can take some time...
systemtag_object_mapping table updated successfully.
Adding primary key to the comments_read_markers table, this can take some time...
comments_read_markers table updated successfully.
Adding primary key to the collres_resources table, this can take some time...
collres_resources table updated successfully.
Adding primary key to the collres_accesscache table, this can take some time...
collres_accesscache table updated successfully.
Adding primary key to the filecache_extended table, this can take some time...
filecache_extended table updated successfully.

データベース内のいくつかの列で、big intへの変換が行われていません。

データベース内のいくつかの列で、big intへの変換が行われていません。 大きなテーブルでカラムタイプを変更すると時間がかかることがあるため、自動的には変更されませんでした。 ‘occ db:convert-filecache-bigint’を実行することによって、それらの保留中の変更は手動で適用できます。 この操作は、インスタンスがオフラインの間に行う必要があります。

$ sudo -u www-data php ${NEXTCLOUDPATH}/occ db:convert-filecache-bigint
Following columns will be updated:

* federated_reshares.share_id
* filecache_extended.fileid
* share_external.id
* share_external.parent

This can take up to hours, depending on the number of files in your instance!
Continue with the conversion (y/n)? [n] y

The old server-side-encryption format is enabled. We recommend disabling this.

ここはE2EEで使うサーバサイドの暗号化形式で古い形式が有効になっているのを無効にしたほうがいいよって警告のようです.

The old server-side-encryption format is enabled. We recommend disabling this. For more details see the documentation.

古い形式が使われているかを確認します.

$ sudo -u www-data php ${NEXTCLOUDPATH}/occ encryption:scan:legacy-format
Scanning all files for legacy encryption
Scanning all files for matoken
Scanning all files for hoge
  :

encryption:scan:legacy-format

古い形式は使われていなかったので設定( ${NEXTCLOUDPATH/config/config.php )で明示的に無効にしてしまいます.

-  'encryption.legacy_format_support' => false,
+  'encryption.legacy_format_support' => true,

もし古い形式が残っていて移行したいでもマスターキーを設定していないという場合は該当ファイルの所持ユーザーにデータをコピーし直してもらう必要がありそうです.あまりやりたくない作業ですね.(以下のページを見るとクライアントがアップロードし直しをしてくれるのかもしれない)

これで再読込するとすべてのチェックに合格しました :)

20201227 19:12:47 2533788

環境
$ sudo -u www-data php /var/www/files.matoken.org/occ -V
Nextcloud 20.0.4
$ dpkg-query -W php mariadb-server
mariadb-server  1:10.3.27-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -vm
#1 SMP Debian 4.19.160-2 (2020-11-28) x86_64

Nextcloud 19からのNextcloudアプリ化したCollabora Online を試す

Nextcloud 19がリリースされました.

今回の新機能にCollabora Online がNextcloud Hub に含まれるようになり,簡単にすべてのユーザが利用できるようになったそうです.

Easy to install for every user
Collabora Online will be shipped out of the box with the new Nextcloud 19 Hub. A special community server has been developed, that can easily be installed with a single click by every user, and so avoiding web server and docker containers installation and configuration.

少し前にもデモサーバーを用意してくれてお手軽に試せるようにしてくれていましたが今回は自分の環境でとても簡単に動くようになったようです.

ということでNextcloud 19 にアップデートして試してみました.

Nextcloud 19環境管理者権限で https://$NEXTCLOUDURL/index.php/settings/admin/richdocuments にアクセスして設定を見てみます.

NC19 CODE 01

Use the built-in CODE という設定が増えています.がグレーアウトしています.

Use the built-in CODE – Collabora Online Development Edition
Easy to install, for personal use or for small teams. A bit slower than a standalone server and without the advanced scalability features.

てことで,以下のNextcloud アプリを導入します.

NC19 CODE 02

導入は本当に簡単で「ダウンロードして有効にする」を押すだけです.

コマンドラインではこんな感じで導入できます.

$ sudo -u www-data php ./occ app:install richdocumentscode
richdocumentscode installed
richdocumentscode enabled

導入されると Built-in CODE が選べるようになっているので選択します.後はファイルでオフィス文章を開いたり新規作成すれば自動的に起動して利用できます.

NC19 CODE 03

初回はちょっと時間がかかります.これはCODEが裏で起動する時間がかかるからみたいです.
後は普通に利用できます :)
Demoサーバと違って制限もないので普通に使えます.NextcloudでURL共有をするとGoogleDoc のようにみんなで同時にドキュメントを編集したりも出来ます.(Nextcloudの指定ユーザだけ編集可能とかURLを知ってる人は誰でも編集できるとかも出来ます.)

少し使っていて気になったのは以下のメッセージがたまに出ます.ディスク空き容量が 4GBで出るときと出ないときがありぎりぎり動いているのかなと思いましたが,空き容量を6GBに空けても出たり出なかったりします.もしかしたらバグかも?

NC19 CODE 04

そしてこちらの画面はセッションが数個(2個のつもり)でも出ます.セッションのカウントがおかしいのか他のバグなのか?

NC19 CODE 05

今回のCollabora Online はどんな仕組みなのかなとディレクトリを覗くと,Collabora Online がAppImage 化されてごろっと置かれているようです.

$ ls -l apps/richdocumentscode/collabora/
total 339320
-rwxr--r-- 1 www-data www-data 347455528 Jun  5 01:27 Collabora_Online.AppImage

これが文章を閉じてもずっと起動しているようです.RAMが少ないのでちょっと辛い.

$ ps aux | pee "head -1" "grep Collabora_OnlineAppImage"
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mk       29361  0.0  0.0   2272   752 pts/2    S+   23:04   0:00 pee head -1 grep Collabora_OnlineAppImage

このマシンはリモートのサーバで日本語フォントがほとんど入っていないのでCollabora Online でもフォントがあまり選べません.システムにフォントを導入します.今回はNoto CJK を導入してみました.

$ sudo apt install fonts-noto-cjk

導入してもそのままではCollabora Online には反映されませんでした.文章を閉じて,AppImage のプロセスをkill して再度文章を開くとまた AppImage が起動して反映されました.

ということでとても簡単にWebだけでNextcloud からCollabora Online が導入できるようになりました.
とても便利なのでおすすめです.

環境
$ sudo -u www-data php ./occ app:list | grep richdocuments
  - richdocuments: 3.7.0
  - richdocumentscode: 4.2.403
$ sudo -u www-data php ./occ status
  - installed: true
  - version: 19.0.0.12
  - versionstring: 19.0.0
  - edition:
$ dpkg-query -W php apache2
apache2 2.4.38-3+deb10u3
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64

Nextcloud 18から19にbeta channel でアップグレード

Nextcloud 19が06/03にリリースされました.

未だ18からのアップデートは来ていませんが一時的に beta channel にして 19 にアップグレードしてみました.

$ sudo -u www-data php ./updater/updater.phar
Nextcloud Updater - version: v16.0.3-3-ga0c2b25 dirty

Current version is 18.0.5.

No update available.

Nothing to do.

先ずはバックアップをとっておきます.Nextcloudのディレクトリ以下とデータベースをバックアップしておけば最悪データが壊れたり消えてしまって復元できます.データが多いと時間がかかるので日頃取得して差分バックアップするようにしておくといいです.

次にscript コマンド等でログを取っておきます.リモートでssh経由の場合などはGNU screen やtmux などで切断されても復帰出来るようにしておきます.

準備が出来たら先ずは Nextcloud を18 の最新にしておきます.

$ cd $(NEXTCLOUDPATH}
$ sudo -u www-data php ./occ app:update --all
$ sudo -u www-data php ./updater/updater.phar
$ sudo -u www-data php ./occ app:update --all

Nextcloud の update channel を stable から beta にします.

$ sudo -u www-data php ./occ config:system:set updater.release.channel --value 'beta'
System config value updater.release.channel set to string beta

channel はすぐには反映されません.今回は20分ほどで反映されました数時間掛かることもあるよう.
19 が降りてきたら後は普通にアップグレードします.

$ sudo -u www-data php ./updater/updater.phar
Nextcloud Updater - version: v16.0.3-3-ga0c2b25 dirty

Current version is 18.0.5.

Update to Nextcloud 19.0.0 available. (channel: "beta")
Following file will be downloaded automatically: https://download.nextcloud.com/server/releases/nextcloud-19.0.0.zip
Open changelog ↗

Steps that will be executed:
[ ] Check for expected files
[ ] Check for write permissions
[ ] Create backup
[ ] Downloading
[ ] Verify integrity
[ ] Extracting
[ ] Enable maintenance mode
[ ] Replace entry points
[ ] Delete old files
[ ] Move new files in place
[ ] Done

Start update? [y/N] y
Info: Pressing Ctrl-C will finish the currently running step and then stops the updater.

[✔] Check for expected files
[✔] Check for write permissions
[✔] Create backup
[✔] Downloading
[✔] Verify integrity
[✔] Extracting
[✔] Enable maintenance mode
[✔] Replace entry points
[✔] Delete old files
[✔] Move new files in place
[✔] Done

Update of code successful.

Should the "occ upgrade" command be executed? [Y/n]
  :
  :
Keep maintenance mode active? [y/N]
Maintenance mode disabled

Maintenance mode is disabled

Nextcloud 19 になりました :)

Nextcloud19 00

$ sudo -u www-data php /var/www/files.matoken.org/updater/updater.phar
Nextcloud Updater - version: v16.0.3-3-ga0c2b25 dirty

Current version is 19.0.0.

No update available.

Nothing to do.

channel を stable に戻しておきます.一旦19に上げていれば18に戻りません.

$ sudo -u www-data php /var/www/files.matoken.org/occ config:system:set updater.release.channel --value 'stable'
System config value updater.release.channel set to string stable
$ sudo -u www-data php /var/www/files.matoken.org/updater/updater.phar
Nextcloud Updater - version: v16.0.3-3-ga0c2b25 dirty

Current version is 19.0.0.

No update available.

Nothing to do.

https://$NEXTCLOUDURL/index.php/settings/admin/overview の「セキュリティ&セットアップ警告」を確認するといくつかメッセージが出ているので修正します.

Nextcloud19 01

セキュリティ&セットアップ警告
サーバーのセキュリティとパフォーマンスにとって重要なことは、すべてが正確に設定されていることです。あなたの助けとなるよう、Nextcloudでは一部の自動チェックを行っています。詳細な情報は、リンク先のドキュメントを参照してください。

セットアップに関して警告がいくつかあります。
データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 “occ db:add-missing-indices”を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。
テーブル “oc_properties”のインデックス “properties_path_index”が見つかりません。
データベースにはオプションのカラムがいくつかありません。大きなテーブルにカラムを追加するには時間がかかるため、オプションのカラムは自動的に追加されませんでした。”occ db:add-missing-columns”を実行することで、不足しているカラムはインスタンスの実行中に手動で追加することができます。カラムが追加されると、応答性や使い勝手が改善される可能性があります。
テーブル “oc_comments” にオプションのカラム “reference_id” が存在しません。
このインスタンスには推奨されるPHPモジュールがいくつかありません。 パフォーマンスの向上と互換性の向上のために、それらをインストールすることを強くお勧めします。
bcmath
gmp
インストールガイド ↗を再確認して、 ログ にあるすべてのエラーや警告を確認してください。

Nextcloudのセキュリティは、セキュリティスキャン ↗でチェックしてください。

と言っても基本的にメッセージに従うだけです.

データベースにいくつかのインデックスがありません。
$ sudo -u www-data php ./occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Check indices of the schedulingobjects table.
Check indices of the oc_properties table.
Adding properties_path_index index to the oc_properties table, this can take some time...
oc_properties table updated successfully.
データベースにはオプションのカラムがいくつかありません。
$ sudo -u www-data php ./occ db:add-missing-columns
Check columns of the comments table.
Adding additional reference_id column to the comments table, this can take some time...
Comments table updated successfully.
このインスタンスには推奨されるPHPモジュールがいくつかありません。

これは環境によって少し代わります.対応パッケージを導入してhttpdを再起動して反映します.以下はDebian Buster amd64 でのパッケージ名.そしてApache httpd でホストしている場合の例です.

$ sudo apt install php7.3-bcmath php7.3-gmp
$ sudo service apache2 reload

これで「セキュリティ&セットアップ警告」ページを再読込すると,「すべてのチェックに合格しました。」となりました :)

Nextcloud19 02

古いバックアップの削除

これは必須ではないのですが,この環境はディスクの空き領域が少ないのでリモートにバックアップした上で最新以外のバックアップは削除しています.以下の updater-ocws62au2wl3 部分は環境によって変わると思います.

$ rm -rf ./data/updater-ocws62au2wl3/backups/nextcloud-18.0.4.2
環境
$ dpkg-query -W php7.3 php7.3-bcmath php7.3-gmp apache2
apache2 2.4.38-3+deb10u3
php7.3  7.3.14-1~deb10u1
php7.3-bcmath   7.3.14-1~deb10u1
php7.3-gmp      7.3.14-1~deb10u1
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64

Nextcloud とCollarora Demo Server で簡単にLibreOffice Online を試す

こちらの記事で知ったのですが,Nextcloud でCollabora Online のDemo Server が簡単に使えるようになったようです.試してみました.

この機能は Collabora Online 3.6.0 で入ったようです.

Add demo server selector and show hint about that when Collabora is not setup

なので,Collabora Online 3.6.0 の動作するNextcloud 15〜19 環境が必要です.今回は Nextcloud 18.0.4 環境で試しました.

Nextcloud にCollabora Online App を導入します.

導入は簡単で,管理者権限のあるユーザでWeb経由で導入したり,CLIで導入できます.

cliでの導入例
$ sudo -u www-data php $NEXTCLOUD/occ app:install richdocuments
richdocuments installed
richdocuments enabled

次にDemo Server を設定します.
管理者ユーザでログインした状態のNextcloud で「設定」→「Collabora Online」で設定します.

確認メッセージが表示されます.

lool demo04

「Use a demo server」にチェックするとDemo Serverが選択できます.いくつか選択肢があるので今回は「Tokyo, Japan」を選びました.

lool demo03

少し設定が出来ます.

lool demo05

この状態でファイル画面に遷移して,「新しいドキュメント」を作成してみます.

lool demo06

LibreOffice Onlineが起動してDemo Server のメッセージが表示されます.

lool demo07

後は普通に編集できます :)
Demo ServerなのでこまめにDemoのメッセージが表示されますがこれはDemoなのでしょうがないですね.テキスト編集は特にもたつく感じはなくネイティブとそう変わらない感じ.スライドで画像やシェイプ図形など使うとまた違うかもしれません.

lool demo08

LibreOffice Online を自分のサーバに導入するのも以下のあたりでバイナリが配布されているので案外お手軽なのでこのDemo Server で気に入ったらLibreOffice Online を導入するといいと思います.

環境
$ sudo -u www-data php /var/www/files.matoken.org/occ app:list | grep richdocuments
  - richdocuments: 3.6.0
$ sudo -u www-data php /var/www/files.matoken.org/occ --version
Nextcloud 18.0.4
$ dpkg-query -W php apache2 mariadb-server
apache2 2.4.38-3+deb10u3
mariadb-server  1:10.3.22-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64

LibreOffice Hackfest Online #2 に参加して LibreOffice をbuildした

最近毎週水曜日に開催されている「LibreOffice Hackfest Online #2」に参加してみました.
今回は#2で#0から始まったので3回目.

Jitsi Meet で集まってYoutubeLive での配信も行っていました.配信された動画はアーカイブされていて以下で公開されています.

今回はLibreOffice のビルドをする回でした.自分は確か以前LOOLを試すためにbuildして以来で2,3年ぶりかな?デスクトップ版は初めてです.
いつも使っている環境はLinuxのDebian sid amd64 環境なのでここでbuildすることに.

当日だけだとsourceをとってくるだけで終わってしまうだろうと前日までに source の clone と build-dep でbuild に必要なパッケージを導入しておきました.

$ git clone git://anongit.freedesktop.org/libreoffice/core
$ sudo apt build-dep libreoffice

そして当日は autogen.sh を実行して依存関係に失敗,以下のあたりを追加で導入しました.

$ sudo apt install git ccache junit4 gstreamer1.0-libav libkrb5-dev nasm graphviz libpython3-dev

その後,再度 autogen.sh を実行.

$ ./autogen.sh

makeを掛けるとHackfest に利用しているJitsi Meets に影響が出そうです.てことで影響が出たら中断するつもりでこんな感じで優先度を下げて実行しました.問題なさそうなのでそのまま放置しておきました.

$ time nice -n 19 make -j1

Hackfest が終わってもまだ終わる気配はなかったのでそのままおいときます.
そして翌朝やっと終了していました.

make は20:06:23〜翌日の06:29:35 まで掛かっていました.優先度を下げていたとはいえかなり時間がかかりました.
時間がかかったのはCPUの温度が上がってCPUスロットリングが効いて0.8GHzとかにクロックが落ちていたのが大きそうです.

早速実行すると起動して利用できそうです.

$ instdir/program/soffice

LibOBuild1 20200507 12:05:26 2204368

しかしUI言語がUSAしか選べません.

LibOBuild2 20200507 19:05:56 2517755

恐らく autogen.sh の実行時にオプションがなかったせいだと思います.

$ ./autogen.sh --help|grep -i with-lang -A 13
  --with-lang="es sw tu cs sk"
                          Use this option to build LibreOffice with additional
                          UI language support. English (US) is always included
                          by default. Separate multiple languages with space.
                          For all languages, use --with-lang=ALL.
  --with-locales="en es pt fr zh kr ja"
                          Use this option to limit the locale information
                          built in. Separate multiple locales with space. Very
                          experimental and might well break stuff. Just a
                          desperate measure to shrink code and data size. By
                          default all the locales available is included. This
                          option is completely unrelated to --with-lang.

                          Affects also our character encoding conversion
                          tables for encodings mainly targeted for a
                          particular locale, like EUC-CN and EUC-TW for
                          zh, ISO-2022-JP for ja.

                          Affects also our add-on break iterator data for
                          some languages.

                          For the default, all locales, don't use this switch at all.
                          Specifying just the language part of a locale means all matching
                          locales will be included.

ということで --with-lang=ALL--with-locales="en es pt fr zh kr ja" で多国言語対応と,--with-package-format='deb' でDebian package 書き出し,それに依存して --enable-epm を付けてみました.

$ ./autogen.sh --with-package-format='deb' --enable-epm --with-lang=ALL --with-locales="en es pt fr zh kr ja"

そして make

今回は結果をTwitterに投稿するようにしてみました.

$ /bin/time -o /tmp/time -f "%E 位掛かりました" nice -n 19 make -j1 && echo "SAYAKAによる自動投稿: LibreOfficeのbuildが正常に 終わった みたいです.$(echo ;cat /tmp/time)" || echo "SAYAKAによる自動投稿: LibreOfficeのbuildが失敗したみたいです($?)$(echo ;cat /tmp/time)" | sayaka --post

しかし6時間46分程してから失敗><

SAYAKAによる自動投稿: LibreOfficeのbuildが失敗したみたいです(2)
Command exited with non-zero status 2
6:46:38 位掛かりました

logを見るとtranslationsのcloneをずっとやっていて回線が不安定になったかタイムアウトかそんな感じで途中でcloneに失敗して転けていました.

Cloning into '/home/matoken/src/core/translations'...
error: RPC failed; curl 56 GnuTLS recv error (-9): Error decoding the received TLS packet.

再度実行してみると正常終了しました.

SAYAKAによる自動投稿: LibreOfficeのbuildが正常に 終わったみたいです.
6:36:46 位掛かりました

起動してみると日本語も選べます :)

$ /instdir/program/soffice

libodevalpha0

せっかくbuildできたのでこのLibreOfficeDev 7.0.0.0.alpha0+ の Impress でスライドを作ってみました.60ページほどのスライドをざっと書いてみましたが特に問題なく普通にかけてしまい拍子抜けしてしまいました.

VPSサーバでもbuild

ローカルのDebian sid amd64環境ではうまく行ったけど回線やPCの問題で時間がかかります.VPSサーバでbuildしてからバイナリパッケージをダウンロードしたほうが早いのではと試してみました.
このサーバはドイツのニュルンベルクでホストされているContabo社のVPS300です.スペック(CPU 2Core/RAM 4GB/HDD 300GB)の割のとても安い(€3.99/月)けど回線が細い感じのサーバです.

OSはDebian 10(buster) amd64を導入してあります.依存関係が少し手間取りましたが後はスムーズに&手元のPCよりずっと速く終わりました.

必要なパッケージの導入
$ sudo apt build-dep libreoffice
$ sudo apt install libperl-dev libarchive-zip-perl javacc gperf python-dev bison flex ant doxygen ccache gstreamer1.0-libav libkrb5-dev nasm
sourceの入手
$ time git clone git://anongit.freedesktop.org/libreoffice/core
   :
real    35m26.954s
user    8m5.441s
sys     1m1.694s
autogen(--with-locales も`ALL` にしてみた)
$ time ./autogen.sh --with-package-format='deb' --enable-epm --with-lang=ALL --with-locales=ALL
make
$ time make -j$(nproc)
  :
real    137m3.246s
user    59m6.001s
sys     25m13.390s

その後も git pull && make とかして 7.0.0.0.alpha1+ にすることも出来ました.

buildしたDebianパッケージはいつまでかわからないけどここで公開しています.

てことでどうにかビルドできました.build後のsource ディレクトリ以下は20GB近く.build-depでも1GB以上消費しました.ディスクも結構食いますね.

相談しながら引っかかったら聞くという場があるのは助かりますね.今回の機会がなかったら自分でbuildしなかったと思います.

次回の「LibreOffice Hackfest Online #3」は05/13(Wed)に開催で以下のページから申し込みが出来ます.jitsi Meetでの開催で,YoutubeLiveでの配信も行われる予定です.

YoutubeLiveを音声のみで視聴する試み

Youtubeの動画には音声のみのストリームがあるのでこれをダウンロードしてpodcast的に聞いたりすることがあるのですが,YoutubeLiveには音声のみのストリームはないようです.

Youtube動画
$ youtube-dl --ignore-config -F https://www.youtube.com/watch?v=PNWQvqUUHbQ
[youtube] PNWQvqUUHbQ: Downloading webpage
[youtube] PNWQvqUUHbQ: Downloading MPD manifest
[info] Available formats for PNWQvqUUHbQ:
format code  extension  resolution note
251          webm       audio only DASH audio    3k , webm_dash container, opus @160k (48000Hz)
139          m4a        audio only DASH audio   49k , m4a_dash container, mp4a.40.5@ 48k (22050Hz)
140          m4a        audio only DASH audio  130k , m4a_dash container, mp4a.40.2@128k (44100Hz)
278          webm       256x144    DASH video   95k , webm_dash container, vp9, 30fps, video only
160          mp4        256x144    DASH video  108k , mp4_dash container, avc1.4d400b, 30fps, video only
242          webm       426x240    DASH video  220k , webm_dash container, vp9, 30fps, video only
133          mp4        426x240    DASH video  242k , mp4_dash container, avc1.4d400c, 30fps, video only
243          webm       640x360    DASH video  405k , webm_dash container, vp9, 30fps, video only
134          mp4        640x360    DASH video  463k , mp4_dash container, avc1.4d401e, 30fps, video only
244          webm       854x480    DASH video  752k , webm_dash container, vp9, 30fps, video only
135          mp4        854x480    DASH video 1155k , mp4_dash container, avc1.4d4014, 30fps, video only
247          webm       1280x720   DASH video 1505k , webm_dash container, vp9, 30fps, video only
136          mp4        1280x720   DASH video 2007k , mp4_dash container, avc1.4d401f, 30fps, video only
18           mp4        640x360    360p  494k , avc1.42001E, 30fps, mp4a.40.2@ 96k (44100Hz), 1.34MiB
22           mp4        1280x720   720p 1788k , avc1.64001F, 30fps, mp4a.40.2@192k (44100Hz) (best)
YoutubeLive
$ youtube-dl --ignore-config -F https://www.youtube.com/watch?v=XXXX-XXXXXX 2>/dev/null
[youtube] XXXX-XXXXXX: Downloading webpage
[youtube] XXXX-XXXXXX: Downloading m3u8 information
[youtube] XXXX-XXXXXX: Downloading MPD manifest
[info] Available formats for XXXX-XXXXXX:
format code  extension  resolution note
91           mp4        256x144    HLS  197k , avc1.42c00b, 30.0fps, mp4a.40.5@ 48k
92           mp4        426x240    HLS  338k , avc1.4d4015, 30.0fps, mp4a.40.5@ 48k
93           mp4        640x360    HLS  829k , avc1.4d401e, 30.0fps, mp4a.40.2@128k
94           mp4        854x480    HLS 1380k , avc1.4d401f, 30.0fps, mp4a.40.2@128k
95           mp4        1280x720   HLS 2593k , avc1.4d401f, 30.0fps, mp4a.40.2@256k (best)

これをリモートサーバでaudioのみに変換してしまうと細い回線で音声だけ聞くことが出来るのではと試してみました.
(屋外移動中などに聞くのを想定)

YoutubeLiveのダウンロードには youtube-dl ,変換には ffmpeg を利用しました.

youtube-dl についてはこのあたりを参考にしてください.

以下ではyoutube-dlで最低画質の動画(フォーマットコード91)の144p/48kな動画をダウンロードして標準出力に渡して,パイプでffmpegで受け取って音声だけ切り出して udp:1234 に配信しています.音質をあげたい場合は360pで128k,720pで256kのようなので対応の動画を選ぶと良いですね.

$ youtube-dl -f 91 $YOUTUBELIVEURL -o - | ffmpeg -i - -c:a copy -vn -f adts udp://127.0.0.1:1234

この状態で ffplay で受信して再生できました :)

$ ffplay udp://127.0.0.1:1234

リモートのVPSサーバとかでこれをやると外出先でMVNOの低速モードでの受信も問題なさそうです.
自分だけで聞く分にはこれでいいのですが,自分の配信したYoutubeLiveを多人数に音声を配信して聞いてもらいたいなどの場合には使えません.(他の人のものを勝手に不特定配信は駄目)

そこで Icecast2 に流すのも試してみました.
ほほ同じようにして流せました.PCとAndroid端末でモバイル回線の低速モードでも試してみたところ同時に視聴できました :)

$ youtube-dl --ignore-config -f 91 $YOUTUBELIVEURL -o - | ffmpeg -i - -c:a copy -vn -f adts -content_type audio/aac iceca
st://source:password@icecast2.example.org:8000/youtubelivetest
peeでデータを2つに分けてモニタしながらとかも
$ youtube-dl --ignore-config -f 91 $YOUTUBELIVEURL -o - | pee "ffplay -" "ffmpeg -i - -c:a copy -vn -f adts -content_type audio/aac iceca
st://source:password@icecast2.example.org:8000/youtubelivetest"

youtubelive2icecast2

$ mpv http://icecast2.example.org:8000/youtubelivetest.m3u

Playing: http://icecast2.example.org:8000/youtubelivetest
 (+) Audio --aid=1 (aac 2ch 48000Hz)
AO: [pulse] 48000Hz stereo 2ch float
A: 00:00:02 / 00:00:10 (24%) Cache: 7.9s/139KB
File tags:
 icy-title:
A: 00:00:22 / 00:00:30 (75%) Cache: 7.1s/126KB

YoutbeLive,Icecast2と間にサービスを挟むと遅延はどんどん大きくなるので余裕があったらYoutubeLiveに流すのと同じマシンで直接icecast2に流したほうがいいでしょうね.

懸念点としてはYoutubeのシステム的にこの視聴方法で視聴者数や視聴時間に貢献できるのかというところ.とりあえずは家に帰ったらウェブブラウザ等で視聴し直したり,リモートサーバでウェブブラウザを起動してYoutubeLiveを再生してその音声を取り込んだりするか…….そうなってくるとOBS Studio等を使ったほうがわかりやすいかもしれないですね.

しかし,値段だけ考えると特定のサービスで容量を消費しないカウントフリー,エンタメフリーオプション等でYoutubeに対応したSIMを使うという手も使えそうです.
自分は意思が弱く利用サービスがカウントフリーのものに偏ったりしそうだし,通信を見られるのが嫌なので今のところ使う予定はないです.

クライアント環境
$ youtube-dl --version
2020.05.03
$ dpkg-query -W ffmpeg mpv
ffmpeg  7:4.2.2-1+b1
mpv     0.32.0-1
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ uname -m
x86_64
Icecast2環境
$ youtube-dl --version
2020.05.03
$ dpkg-query -W ffmpeg icecast2
ffmpeg  7:4.1.4-1~deb10u1
icecast2        2.4.4-1
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64

Nextcloud 17.0.2 → 18.0.1 upgrade memo

Nextcloudを17.0.2から18.0.1にupgradeしました.

$ sudo -u www-data php ./occ status
  - installed: true
  - version: 18.0.1.3
  - versionstring: 18.0.1
  - edition:

17系のeolは2020-09で18系のeolは2021-01のようです.もうしばらく17でもいいかも.

今回以下のページを参考に updater.phar でupgradeしました.
※実行前に念の為dbバックアップとかしておきましょう.

$ cd $NEXTCLIUDPATH
$ sudo -u www-data php ./updater/updater.phar
Nextcloud Updater - version: v16.0.3-3-ga0c2b25 dirty
Current version is 17.0.2.
Update to Nextcloud 18.0.1 available. (channel: "stable")
Following file will be downloaded automatically: https://download.nextcloud.com/server/releases/nextcloud-18.0.1.zip
Open changelog ↗
Steps that will be executed:
[ ] Check for expected files
[ ] Check for write permissions
[ ] Create backup
[ ] Downloading
[ ] Verify integrityapp:check-code
[ ] Extracting
[ ] Enable maintenance mode
[ ] Replace entry points
[ ] Delete old files
[ ] Move new files in place
[ ] Done
Start update? [y/N] y
Info: Pressing Ctrl-C will finish the currently running step and then stops the updater.
[✔] Check for expected files
[✔] Check for write permissions
[✔] Create backup
[✔] Downloading
[✔] Verify integrity
[✔] Extracting
[✔] Enable maintenance mode
[✔] Replace entry points
[✔] Delete old files
[✔] Move new files in place
[✔] Done
Update of code successful.
Should the "occ upgrade" command be executed? [Y/n] Y
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
2020-03-02T19:16:42+00:00 Set log level to debug
2020-03-02T19:16:42+00:00 Repair step: Repair MySQL collation
2020-03-02T19:16:42+00:00 Repair info: All tables already have the correct collation -> nothing to do
2020-03-02T19:16:42+00:00 Repair step: Repair SQLite autoincrement
2020-03-02T19:16:42+00:00 Repair step: Copy data from accounts table when migrating from ownCloud
2020-03-02T19:16:43+00:00 Repair step: Drop account terms table when migrating from ownCloud
2020-03-02T19:16:43+00:00 Updating database schema
2020-03-02T19:16:46+00:00 Updated database
2020-03-02T19:16:46+00:00 Disabled incompatible app: announcementcenter
2020-03-02T19:16:46+00:00 Disabled incompatible app: data_request
2020-03-02T19:16:46+00:00 Disabled incompatible app: external
2020-03-02T19:16:46+00:00 Disabled incompatible app: files_snapshots
2020-03-02T19:16:46+00:00 Disabled incompatible app: fulltextsearch_elasticsearch
2020-03-02T19:16:46+00:00 Disabled incompatible app: gallery
2020-03-02T19:16:46+00:00 Disabled incompatible app: gpxedit
2020-03-02T19:16:46+00:00 Disabled incompatible app: quota_warning
2020-03-02T19:16:46+00:00 Disabled incompatible app: ransomware_protection
2020-03-02T19:16:46+00:00 Disabled incompatible app: sharerenamer
2020-03-02T19:16:46+00:00 Disabled incompatible app: social
2020-03-02T19:16:46+00:00 Disabled incompatible app: socialsharing_diaspora
2020-03-02T19:16:46+00:00 Disabled incompatible app: socialsharing_email
2020-03-02T19:16:46+00:00 Disabled incompatible app: socialsharing_twitter
2020-03-02T19:16:46+00:00 Disabled incompatible app: spreed
2020-03-02T19:16:46+00:00 Updating <accessibility> ...
2020-03-02T19:16:46+00:00 Repair step: Migrate old user config
2020-03-02T19:16:46+00:00 Migrate old user config
2020-03-02T19:16:46+00:00
2020-03-02T19:16:46+00:00  Starting ...
0/0 [>-]   0%2020-03-02T19:16:46+00:00
Starting ...
1/0 [->]   0%2020-03-02T19:16:46+00:00
Starting ...
2/0 [-->]   0%2020-03-02T19:16:46+00:00
Starting ...
3/0 [--->]   0%2020-03-02T19:16:46+00:00
2020-03-02T19:16:46+00:00 Updated <accessibility> to 1.4.0
2020-03-02T19:16:46+00:00 Updating <federatedfilesharing> ...
2020-03-02T19:16:46+00:00 Updated <federatedfilesharing> to 1.8.0
2020-03-02T19:16:46+00:00 Updating <files_pdfviewer> ...
2020-03-02T19:16:47+00:00 Updated <files_pdfviewer> to 1.7.0
2020-03-02T19:16:47+00:00 Updating <files_rightclick> ...
2020-03-02T19:16:47+00:00 Updated <files_rightclick> to 0.15.2
2020-03-02T19:16:47+00:00 Updating <files_videoplayer> ...
2020-03-02T19:16:47+00:00 Updated <files_videoplayer> to 1.7.0
2020-03-02T19:16:47+00:00 Updating <logreader> ...
2020-03-02T19:16:47+00:00 Updated <logreader> to 2.3.0
2020-03-02T19:16:47+00:00 Updating <password_policy> ...
2020-03-02T19:16:47+00:00 Updated <password_policy> to 1.8.0
2020-03-02T19:16:47+00:00 Updating <privacy> ...
2020-03-02T19:16:48+00:00 Updated <privacy> to 1.2.0
2020-03-02T19:16:48+00:00 Updating <provisioning_api> ...
2020-03-02T19:16:48+00:00 Updated <provisioning_api> to 1.8.0
2020-03-02T19:16:48+00:00 Updating <recommendations> ...
2020-03-02T19:16:48+00:00 Updated <recommendations> to 0.6.0
2020-03-02T19:16:48+00:00 Updating <serverinfo> ...
2020-03-02T19:16:48+00:00 Updated <serverinfo> to 1.8.0
2020-03-02T19:16:48+00:00 Updating <support> ...
2020-03-02T19:16:49+00:00 Updated <support> to 1.1.0
2020-03-02T19:16:49+00:00 Updating <survey_client> ...
2020-03-02T19:16:49+00:00 Updated <survey_client> to 1.6.0
2020-03-02T19:16:49+00:00 Updating <text> ...
2020-03-02T19:16:49+00:00 Updated <text> to 2.0.0
2020-03-02T19:16:49+00:00 Updating <twofactor_backupcodes> ...
2020-03-02T19:16:49+00:00 Repair step: Add background job to check for backup codes
2020-03-02T19:16:49+00:00 Updated <twofactor_backupcodes> to 1.7.0
2020-03-02T19:16:49+00:00 Updating <updatenotification> ...
2020-03-02T19:16:50+00:00 Updated <updatenotification> to 1.8.0
2020-03-02T19:16:50+00:00 Updating <federation> ...
2020-03-02T19:16:50+00:00 Updated <federation> to 1.8.0
2020-03-02T19:16:50+00:00 Updating <lookup_server_connector> ...
2020-03-02T19:16:50+00:00 Updated <lookup_server_connector> to 1.6.0
2020-03-02T19:16:50+00:00 Updating <oauth2> ...
2020-03-02T19:16:50+00:00 Repair step: Update OAuth token expiration times
2020-03-02T19:16:50+00:00 Updated <oauth2> to 1.6.0
2020-03-02T19:16:50+00:00 Updating <files> ...
2020-03-02T19:16:51+00:00 Updated <files> to 1.13.1
2020-03-02T19:16:51+00:00 Updating <activity> ...
2020-03-02T19:16:52+00:00 Updated <activity> to 2.11.0
2020-03-02T19:16:52+00:00 Updating <cloud_federation_api> ...
2020-03-02T19:16:52+00:00 Updated <cloud_federation_api> to 1.1.0
2020-03-02T19:16:52+00:00 Updating <dav> ...
2020-03-02T19:16:52+00:00 Repair step: Fix component of birthday calendars
2020-03-02T19:16:52+00:00 Repair info: 4 birthday calendars updated.
2020-03-02T19:16:52+00:00 Repair step: Regenerating birthday calendars to use new icons and fix old birthday events without year
2020-03-02T19:16:52+00:00 Repair info: Repair step already executed
2020-03-02T19:16:52+00:00 Repair step: Fix broken values of calendar objects
2020-03-02T19:16:52+00:00  Starting ...
0/0 [>-]   0%2020-03-02T19:16:52+00:00 Fix broken values of calendar objects
2020-03-02T19:16:52+00:00
2020-03-02T19:16:52+00:00
2020-03-02T19:16:52+00:00 Repair step: Registering building of calendar search index as background job
2020-03-02T19:16:52+00:00 Repair info: Repair step already executed
2020-03-02T19:16:52+00:00 Repair step: Registering background jobs to update cache for webcal calendars
2020-03-02T19:16:52+00:00 Repair info: Added 0 background jobs to update webcal calendars
2020-03-02T19:16:52+00:00 Repair step: Registering building of calendar reminder index as background job
2020-03-02T19:16:52+00:00 Repair info: Repair step already executed
2020-03-02T19:16:52+00:00 Repair step: Clean up orphan event and contact data
2020-03-02T19:16:52+00:00 Repair info: 0 events without a calendar have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 properties without an events have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 changes without a calendar have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 cached events without a calendar subscription have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 changes without a calendar subscription have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 contacts without an addressbook have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 properties without a contact have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 changes without an addressbook have been cleaned up
2020-03-02T19:16:52+00:00 Repair step: Remove activity entries of private events
2020-03-02T19:16:53+00:00 Repair info: Removed 0 activity entries
2020-03-02T19:16:53+00:00 Updated <dav> to 1.14.0
2020-03-02T19:16:53+00:00 Updating <encryption> ...
2020-03-02T19:16:53+00:00 Repair step: Write default encryption module configuration to the database
2020-03-02T19:16:53+00:00 Updated <encryption> to 2.6.0
2020-03-02T19:16:53+00:00 Updating <files_external> ...
2020-03-02T19:16:53+00:00 Updated <files_external> to 1.9.0
2020-03-02T19:16:53+00:00 Updating <files_sharing> ...
2020-03-02T19:16:54+00:00 Repair step: Fix the share type of guest shares when migrating from ownCloud
2020-03-02T19:16:54+00:00 Repair step: Copy the share password into the dedicated column
2020-03-02T19:16:54+00:00 Repair step: Set existing shares as accepted
2020-03-02T19:16:54+00:00 Updated <files_sharing> to 1.10.1
2020-03-02T19:16:54+00:00 Updating <files_trashbin> ...
2020-03-02T19:16:54+00:00 Updated <files_trashbin> to 1.8.0
2020-03-02T19:16:54+00:00 Updating <files_versions> ...
2020-03-02T19:16:54+00:00 Updated <files_versions> to 1.11.0
2020-03-02T19:16:54+00:00 Updating <sharebymail> ...
2020-03-02T19:16:55+00:00 Updated <sharebymail> to 1.8.0
2020-03-02T19:16:55+00:00 Updating <workflowengine> ...
2020-03-02T19:16:56+00:00 Repair step: Populating added database structures for workflows
2020-03-02T19:16:56+00:00 Updated <workflowengine> to 2.0.0
2020-03-02T19:16:56+00:00 Updating <admin_audit> ...
2020-03-02T19:16:56+00:00 Updated <admin_audit> to 1.8.0
2020-03-02T19:16:56+00:00 Updating <comments> ...
2020-03-02T19:16:56+00:00 Updated <comments> to 1.8.0
2020-03-02T19:16:56+00:00 Updating <firstrunwizard> ...
2020-03-02T19:16:56+00:00 Updated <firstrunwizard> to 2.7.0
2020-03-02T19:16:56+00:00 Updating <nextcloud_announcements> ...
2020-03-02T19:16:57+00:00 Updated <nextcloud_announcements> to 1.7.0
2020-03-02T19:16:57+00:00 Updating <notifications> ...
2020-03-02T19:16:57+00:00 Updated <notifications> to 2.6.0
2020-03-02T19:16:57+00:00 Updating <systemtags> ...
2020-03-02T19:16:57+00:00 Updated <systemtags> to 1.8.0
2020-03-02T19:16:57+00:00 Updating <theming> ...
2020-03-02T19:16:57+00:00 Updated <theming> to 1.9.0
2020-03-02T19:16:57+00:00 Checking for update of app accessibility in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "accessibility" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app activity in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "activity" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app admin_audit in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "admin_audit" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app bruteforcesettings in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "bruteforcesettings" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app calendar in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "calendar" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app camerarawpreviews in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "camerarawpreviews" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app carnet in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "carnet" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app checksum in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "checksum" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app cloud_federation_api in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "cloud_federation_api" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app cms_pico in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "cms_pico" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app comments in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "comments" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app dav in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "dav" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app encryption in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "encryption" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app federatedfilesharing in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "federatedfilesharing" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app federation in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "federation" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_antivirus in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_antivirus" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_external in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_external" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_markdown in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_markdown" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_mindmap in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_mindmap" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_pdfviewer in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_pdfviewer" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_rightclick in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_rightclick" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_sharing in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_sharing" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_trashbin in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_trashbin" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_versions in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_versions" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_videoplayer in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_videoplayer" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app firstrunwizard in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "firstrunwizard" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app forms in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "forms" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app gpxpod in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "gpxpod" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app logreader in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "logreader" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app lookup_server_connector in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "lookup_server_connector" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app mail in appstore
2020-03-02T19:17:02+00:00 Update app mail from appstore
2020-03-02T19:17:13+00:00 Repair step: Purify and migrate collected mail addresses
2020-03-02T19:17:13+00:00 Purify and migrate collected mail addresses
2020-03-02T19:17:13+00:00
2020-03-02T19:17:13+00:00  Starting ...
0/0 [>-]   0%2020-03-02T19:17:13+00:00
2020-03-02T19:17:13+00:00 Repair step: Make Mail itinerary extractor executable
2020-03-02T19:17:13+00:00 Repair step: Migrate Mail provisioning config from config.php to the database
2020-03-02T19:17:13+00:00 Repair info: No old config found
2020-03-02T19:17:13+00:00 Repair step: Create or update provisioned Mail accounts
2020-03-02T19:17:13+00:00 Repair info: No Mail provisioning config set
2020-03-02T19:17:13+00:00 Checked for update of app "mail" in appstore
2020-03-02T19:17:13+00:00 Checking for update of app maps in appstore
2020-03-02T19:17:13+00:00 Update app maps from appstore
2020-03-02T19:17:19+00:00 Checked for update of app "maps" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app metadata in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "metadata" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app nextcloud_announcements in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "nextcloud_announcements" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app notes in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "notes" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app notifications in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "notifications" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app oauth2 in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "oauth2" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app password_policy in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "password_policy" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app phonetrack in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "phonetrack" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app polls in appstore
2020-03-02T19:17:19+00:00 Update app polls from appstore
2020-03-02T19:17:22+00:00 Checked for update of app "polls" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app privacy in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "privacy" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app provisioning_api in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "provisioning_api" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app recommendations in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "recommendations" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app registration in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "registration" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app richdocuments in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "richdocuments" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app serverinfo in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "serverinfo" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app settings in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "settings" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app sharebymail in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "sharebymail" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app support in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "support" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app survey_client in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "survey_client" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app systemtags in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "systemtags" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app tasks in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "tasks" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app text in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "text" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app theming in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "theming" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app twofactor_backupcodes in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "twofactor_backupcodes" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app twofactor_totp in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "twofactor_totp" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app updatenotification in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "updatenotification" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app viewer in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "viewer" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app workflowengine in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "workflowengine" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app announcementcenter in appstore
2020-03-02T19:17:22+00:00 Update app announcementcenter from appstore
2020-03-02T19:17:24+00:00 Repair step: Add read permissions for existing announcements
2020-03-02T19:17:24+00:00 Add read permissions for existing announcements
2020-03-02T19:17:24+00:00
2020-03-02T19:17:24+00:00  Starting ...
0/0 [>-]   0%2020-03-02T19:17:24+00:00
2020-03-02T19:17:24+00:00 Checked for update of app "announcementcenter" in appstore
2020-03-02T19:17:24+00:00 Repair step: Add read permissions for existing announcements
2020-03-02T19:17:24+00:00 Add read permissions for existing announcements
2020-03-02T19:17:24+00:00
2020-03-02T19:17:24+00:00  Starting ...
0/0 [>-]   0%2020-03-02T19:17:24+00:00
2020-03-02T19:17:24+00:00 Checking for update of app data_request in appstore
2020-03-02T19:17:24+00:00 Update app data_request from appstore
2020-03-02T19:17:27+00:00 Checked for update of app "data_request" in appstore
2020-03-02T19:17:27+00:00 Checking for update of app external in appstore
2020-03-02T19:17:27+00:00 Update app external from appstore
2020-03-02T19:17:29+00:00 Repair step: Copy default images to the app data directory
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Checked for update of app "external" in appstore
2020-03-02T19:17:29+00:00 Repair step: Copy default images to the app data directory
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair step: Copy default images to the app data directory
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Checking for update of app files_snapshots in appstore
2020-03-02T19:17:29+00:00 Checked for update of app "files_snapshots" in appstore
2020-03-02T19:17:29+00:00 Checking for update of app fulltextsearch_elasticsearch in appstore
2020-03-02T19:17:29+00:00 Update app fulltextsearch_elasticsearch from appstore
2020-03-02T19:17:32+00:00 Checked for update of app "fulltextsearch_elasticsearch" in appstore
2020-03-02T19:17:32+00:00 Checking for update of app gallery in appstore
2020-03-02T19:17:32+00:00 Checked for update of app "gallery" in appstore
2020-03-02T19:17:32+00:00 Checking for update of app gpxedit in appstore
2020-03-02T19:17:32+00:00 Update app gpxedit from appstore
2020-03-02T19:17:34+00:00 Checked for update of app "gpxedit" in appstore
2020-03-02T19:17:34+00:00 Checking for update of app quota_warning in appstore
2020-03-02T19:17:34+00:00 Update app quota_warning from appstore
2020-03-02T19:17:36+00:00 Checked for update of app "quota_warning" in appstore
2020-03-02T19:17:36+00:00 Repair step: Add background jobs for existing users
2020-03-02T19:17:36+00:00 Add background jobs for existing users
2020-03-02T19:17:36+00:00
2020-03-02T19:17:36+00:00  Starting ...
0/0 [>-]   0%2020-03-02T19:17:36+00:00
Starting ...
1/0 [->]   0%2020-03-02T19:17:36+00:00
Starting ...
2/0 [-->]   0%2020-03-02T19:17:36+00:00
Starting ...
3/0 [--->]   0%2020-03-02T19:17:36+00:00
2020-03-02T19:17:36+00:00 Checking for update of app ransomware_protection in appstore
2020-03-02T19:17:36+00:00 Update app ransomware_protection from appstore
2020-03-02T19:17:38+00:00 Checked for update of app "ransomware_protection" in appstore
2020-03-02T19:17:38+00:00 Checking for update of app sharerenamer in appstore
2020-03-02T19:17:38+00:00 Checked for update of app "sharerenamer" in appstore
2020-03-02T19:17:38+00:00 Checking for update of app social in appstore
2020-03-02T19:17:38+00:00 Checked for update of app "social" in appstore
2020-03-02T19:17:38+00:00 Checking for update of app socialsharing_diaspora in appstore
2020-03-02T19:17:38+00:00 Update app socialsharing_diaspora from appstore
2020-03-02T19:17:39+00:00 Checked for update of app "socialsharing_diaspora" in appstore
2020-03-02T19:17:39+00:00 Checking for update of app socialsharing_email in appstore
2020-03-02T19:17:39+00:00 Update app socialsharing_email from appstore
2020-03-02T19:17:41+00:00 Checked for update of app "socialsharing_email" in appstore
2020-03-02T19:17:41+00:00 Checking for update of app socialsharing_twitter in appstore
2020-03-02T19:17:41+00:00 Update app socialsharing_twitter from appstore
2020-03-02T19:17:43+00:00 Checked for update of app "socialsharing_twitter" in appstore
2020-03-02T19:17:43+00:00 Checking for update of app spreed in appstore
2020-03-02T19:17:43+00:00 Update app spreed from appstore
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\FixNamespaceInDatabaseTables' is unknown
2020-03-02T19:17:46+00:00 Repair info: No repair steps available
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\CreateHelpCommand' is unknown
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\ClearResourceAccessCache' is unknown
2020-03-02T19:17:46+00:00 Repair info: No repair steps available
2020-03-02T19:17:46+00:00 Checked for update of app "spreed" in appstore
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\FixNamespaceInDatabaseTables' is unknown
2020-03-02T19:17:46+00:00 Repair info: No repair steps available
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\CreateHelpCommand' is unknown
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\ClearResourceAccessCache' is unknown
2020-03-02T19:17:46+00:00 Repair info: No repair steps available
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\CreateHelpCommand' is unknown
2020-03-02T19:17:46+00:00 Repair info: No repair steps available
2020-03-02T19:17:47+00:00 Repair step: Repair MySQL collation
2020-03-02T19:17:47+00:00 Repair info: All tables already have the correct collation -> nothing to do
2020-03-02T19:17:47+00:00 Repair step: Repair mime types
2020-03-02T19:17:47+00:00 Repair step: Clean tags and favorites
2020-03-02T19:17:47+00:00 Repair info: 0 tags of deleted users have been removed.
2020-03-02T19:17:47+00:00 Repair info: 0 tags for delete files have been removed.
2020-03-02T19:17:47+00:00 Repair info: 0 tag entries for deleted tags have been removed.
2020-03-02T19:17:47+00:00 Repair info: 0 tags with no entries have been removed.
2020-03-02T19:17:47+00:00 Repair step: Repair invalid shares
2020-03-02T19:17:47+00:00 Repair step: Move .step file of updater to backup location
2020-03-02T19:17:47+00:00 Repair info: .step file exists
2020-03-02T19:17:47+00:00 Repair info: .step-previous-update removed
2020-03-02T19:17:47+00:00 Repair info: .step file moved to .step-previous-update
2020-03-02T19:17:47+00:00 Repair step: Fix potential broken mount points
2020-03-02T19:17:47+00:00 Repair info: No mounts updated
2020-03-02T19:17:47+00:00 Repair step: Add log rotate job
2020-03-02T19:17:47+00:00 Repair step: Clear frontend caches
2020-03-02T19:17:47+00:00 Repair info: Image cache cleared
2020-03-02T19:17:47+00:00 Repair info: SCSS cache cleared
2020-03-02T19:17:47+00:00 Repair info: JS cache cleared
2020-03-02T19:17:47+00:00 Repair step: Clear every generated avatar on major updates
2020-03-02T19:17:47+00:00 Repair step: Add preview background cleanup job
2020-03-02T19:17:47+00:00 Repair step: Queue a one-time job to cleanup old backups of the updater
2020-03-02T19:17:47+00:00 Repair step: Cleanup invalid photocache files for carddav
2020-03-02T19:17:47+00:00 Repair step: Add background job to cleanup login flow v2 tokens
2020-03-02T19:17:47+00:00 Repair step: Remove potentially over exposing share links
2020-03-02T19:17:47+00:00 Repair info: No need to remove link shares.
2020-03-02T19:17:47+00:00 Repair step: Clear access cache of projects
2020-03-02T19:17:47+00:00 Repair step: Switches from deprecated "production" to "stable" update channel
2020-03-02T19:17:47+00:00 Repair step: Sets the enterprise logo
2020-03-02T19:17:47+00:00 Repair info: Repair step already executed
2020-03-02T19:17:47+00:00 Repair step: Reset generated avatar flag
2020-03-02T19:17:47+00:00 Starting code integrity check...
2020-03-02T19:17:59+00:00 Finished code integrity check
2020-03-02T19:17:59+00:00 Update successful
2020-03-02T19:17:59+00:00 Maintenance mode is kept active
2020-03-02T19:17:59+00:00 Reset log level
Keep maintenance mode active? [y/N] y
Maintenance mode kept active
$ sudo -u www-data php occ maintenance:mode --off
Maintenance mode disabled

アプリも最新にしておきます.

$ sudo -u www-data php ./occ app:update --all

セキュリティ&セットアップ警告を確認します.管理権限ユーザでログインして, index.php/settings/admin/overview にアクセスします.

2つの警告が表示されたので対処します.

Security & Setup warnings

1つ目の警告

データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 "occ db:add-missing-indices"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。
テーブル "oc_calendarobjects_props"のインデックス "calendarobject_calid_index"が見つかりません。
テーブル "oc_schedulingobjects"のインデックス "schedulobj_principuri_index"が見つかりません。

案内の通り occ db:add-missing-indices でokでした.
(メッセージの : 部分は になっているのでコピペする場合は注意)

$ sudo -u www-data php ./occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Adding calendarobject_calid_index index to the calendarobjects_props table, this can take some time...
calendarobjects_props table updated successfully.
Check indices of the schedulingobjects table.
Adding schedulobj_principuri_index index to the schedulingobjects table, this can take some time...
schedulingobjects table updated successfully.

2つ目の警告

データベース内のいくつかの列で、big intへの変換が行われていません。 大きなテーブルでカラムタイプを変更すると時間がかかることがあるため、自動的には変更されませんでした。 'occ db:convert-filecache-bigint'を実行することによって、それらの保留中の変更は手動で適用できます。 この操作は、インスタンスがオフラインの間に行う必要があります。 詳細についてはこれに関するドキュメントページを読んでください。
mounts.storage_id
mounts.root_id
mounts.mount_id

こちらも案内どおりでok

$ sudo -u www-data php ./occ db:convert-filecache-bigint
Following columns will be updated:
* mounts.storage_id
* mounts.root_id
* mounts.mount_id
This can take up to hours, depending on the number of files in your instance!
Continue with the conversion (y/n)? [n] y

セキュリティ&セットアップ警告ページを再読込して警告が消えるのを確認します.

OK

Nextcloud 15から16にアップグレードしたときのセキュリティ&セットアップ警告を解消

Nextcloud を15から16にアップグレードしました.すると管理アカウントの「設定」→「管理」→「概要」に以下のセキュリティ&セットアップ警告が表示されました.

Nextcloud check ok 20191019 04:10:57 2932

セットアップに関して警告がいくつかあります。
PHPのメモリ制限は推奨値512MBを下回ります。
データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 "occ db:add-missing-indices"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。
テーブル "oc_twofactor_providers"のインデックス "twofactor_providers_uid"が見つかりません。
テーブル "oc_whats_new"のインデックス "version"が見つかりません。
テーブル "oc_cards"のインデックス "cards_abid"が見つかりません。
テーブル "oc_cards_properties"のインデックス "cards_prop_abid"が見つかりません。

これらを解消します.

PHPのメモリ制限は推奨値512MBを下回ります。

php.inimemory_limit512M 以上に設定します.
今回は /etc/php/7.3/apache2/php.ini

$ sudo git diff /etc/php/7.3/apache2/php.ini
diff --git a/php/7.3/apache2/php.ini b/php/7.3/apache2/php.ini
index 9a35de2..598dd82 100644
--- a/php/7.3/apache2/php.ini
+++ b/php/7.3/apache2/php.ini
@@ -403,7 +403,7 @@ max_input_time = 60
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
-memory_limit = 128M
+memory_limit = 512M
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;

編集後httpdを再読込して設定を反映します.

$ sudo service apache2 reload

データベースにいくつかのインデックスがありません。

データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 “occ db:add-missing-indices”を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。

Nextcloud のpathに移動して,occ db:add-missing-indices を実行してインデックスが作成されるのを暫く待ちます.

$ cd /var/www/Nextcloud
$ sudo -u www-data php ./occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Check indices of the twofactor_providers table.
Adding additional twofactor_providers_uid index to the twofactor_providers table, this can take some time...
Twofactor_providers table updated successfully.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Adding version index to the whats_new table, this can take some time...
whats_new table updated successfully.
Check indices of the cards table.
Adding cards_abid index to the cards table, this can take some time...
cards table updated successfully.
Check indices of the cards_properties table.
Adding cards_prop_abid index to the cards_properties table, this can take some time...
cards_properties table updated successfully.

ok

再度,管理アカウントの「設定」→「管理」→「概要」にアクセスしてチェックに合格しているのを確認 :)

Nextcloud check ok 20191019 04:10:14 19608

環境

$ sudo -u www-data php ./occ status | grep version:
- version: 16.0.5.1
$ dpkg-query -W php apache2
apache2 2.4.38-3+deb10u3
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64