Nextcloud 28にアップグレードしたら(Dockerコンテナをpullしたら)、メンテナンスモードになって使えなくなってしまった。
Maintenance modeをoffにしようとすると失敗し、コマンドラインでアップグレードしようとするとこんなエラー。
$ docker-compose exec -u www-data app php occ upgrade 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 Setting log level to debug Updating database schema Exception: Database error when running migration 28000Date20230906104802 for app core Index name "card_name_index" for table "cards_properties" collides with the constraint on table "oc_cards_properties". Update failed Maintenance mode is kept active Resetting log level
どうもoc_なんちゃらってテーブルが悪さしているようなので、全部dropしたった。初めはエラーが出るテーブルを1つ1つ消してたんだけど、ずーっとエラーが繰り返されて面倒になったのでこんな感じでoc_で始まるテーブルを全削除。
# mariadb -u root --password=xxxx nextcloud -e 'show tables;' -s|grep oc_|xargs -I "@@" mariadb -u root --password=xxxx nextcloud -e "drop table @@"
これでもう1回occ upgradeしたら、なんか色々作り直してる的なメッセージが出て、無事起動。 よかったよかった。
うちの回線遅いなーフレッツ光に変えようかなーでもipv6だと自宅サーバできないらしいしなーと色々探していたら、Cloudflare で無料リバプロすればipv6でもサーバ公開できるというのを見かけて、まだipv6じゃないけど早速登録して色々弄ってみた。昔会った営業さんも感じ良かったんで印象も悪くないし……
まずドメインの情報をCloudflareに登録。勝手に今のエントリを引っ張ってきてくれるけど、なぜかcnameが全部拾えなかったりして足りない分を手動で登録。あとMXとかSPFとかDKIMとかGmailがらみのエントリも登録。 そしたらネームサーバをCloudflareに変更。うちはバリュードメインを使っているのだけど、登録して数分で切り替わったみたい。
で、自宅サーバにWebアクセスを投げてみると、リダイレクトしすぎみたいなエラーで繋がらない。キャッシュをクリアしてもダメ。 どうやらオリジンサーバで80->443のリダイレクトを仕込んでるとダメみたい。ということでnginxの設定から削除。オリジンサーバはLet’s EncryptでSSL化しているので、Cloudflare上のSSL/TLS暗号化モードをフルに変更。 とここまでやったら普通に繋がるようになった。やったね!
SSL/TLSの設定メニューを見てたら、Cloudflareがオリジン向けの証明書を発行してくれるという素敵メニューを発見。なんと証明書の期間は15年!Let’s Encryptの証明書を90日おきにせっせこ更新するのが何気に面倒だったので(cronで更新しててもたまに失敗してたりする)、これはありがたいということで早速設定。 Cloudflareの証明書をサーバ上にコピーして、nginxのssl-certificateを更新。Cloudflareだとワイルドカード証明書を作れるので、サブドメインごとに別々の証明書を作る必要もなく、めちゃくちゃ楽ちん。 最後にSSL/TLS暗号モードをフル(厳密)に変更しておいたが、ただのフルとどう違うのかはよくわからん。
とりあえずここまでやって満足したが、ゼロトラストなんかもできちゃうみたいなので、まだ色々遊べそう……しかし、なんでこれが無料なのか全く謎だわ……
IFTTTがすっかり残念なことになってしまったので、オープンソース版IFTTTって感じのn8n.io を自宅に立ててみた。dockerイメージが用意されてるので立ち上げまでは簡単。
で、早速LINE通知などしてみようと弄ってみるも、OAuth2認証に失敗する。ヘルプが存在する ことに気づかずLINE Messaging APIだとかごにょごにょしてたが(LINE Notifyが正解だった)、ヘルプ通りにやってみたらうまく……いかない。 #SafariとChromeの挙動もなんか違う感じ……
どうもCallback URLへのアクセスに失敗してるみたいで、nginxのログを見ると404を返している……n8nの画面で表示される/webhookrest/oauth2-credential/callbackが存在していない??? アクセスログを追うとどうやら/webhookrestではなく/restが正解なのでは?という気がしてきたので、nginxでURLを書き換えてみたら認証成功。
rewrite /webhookrest(.*) /rest$1 permanent;
どうもこれバグなんじゃねーのという気がしてならないが、オレがなにか間違っているだけなのかもしれんのでしばらく静観……
とりあえず天気予報のLINE通知に成功したので、やりたいことを考えよう…… iOSクライアントとか無さげなのでスマホ連携は厳しいかなー(iOSショートカットを組み合わせればなにかできるかな)
せっかくiMacに10GbのNICが載ってるのに使わないのはもったいない、ということでTwitterで見かけた中華なNIC を購入。2週間くらいで到着したので結構速かったのでは。
で、こいつをLinuxサーバに挿して、iMacと直結。 早速ファイル転送してみると流石の速さ。速すぎてディスクの書き込みの方が待たされる気がするくらい。
せっかくなのでiperfで転送速度を測ってみた。 ジャンボフレーム有効にしたときのカンスト感がすごい。
iMac(WiFi) -> Linux(1Gb NIC)
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 24.8 MBytes 208 Mbits/sec
[ 5] 1.00-2.00 sec 22.2 MBytes 186 Mbits/sec
[ 5] 2.00-3.00 sec 19.4 MBytes 163 Mbits/sec
[ 5] 3.00-4.00 sec 26.2 MBytes 219 Mbits/sec
[ 5] 4.00-5.00 sec 75.3 MBytes 631 Mbits/sec
[ 5] 5.00-6.00 sec 75.4 MBytes 632 Mbits/sec
[ 5] 6.00-7.00 sec 77.9 MBytes 654 Mbits/sec
[ 5] 7.00-8.00 sec 72.7 MBytes 610 Mbits/sec
[ 5] 8.00-9.00 sec 73.8 MBytes 619 Mbits/sec
[ 5] 9.00-10.00 sec 71.1 MBytes 596 Mbits/sec
[ 5] 10.00-10.01 sec 805 KBytes 614 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.01 sec 539 MBytes 452 Mbits/sec
iMac(10Gb NIC) -> Linux(10Gb NIC) MTU1500
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 1.09 GBytes 9.38 Gbits/sec
[ 5] 1.00-2.00 sec 1.09 GBytes 9.37 Gbits/sec
[ 5] 2.00-3.00 sec 1.10 GBytes 9.41 Gbits/sec
[ 5] 3.00-4.00 sec 1.10 GBytes 9.41 Gbits/sec
[ 5] 4.00-5.00 sec 1.10 GBytes 9.41 Gbits/sec
[ 5] 5.00-6.00 sec 1.10 GBytes 9.41 Gbits/sec
[ 5] 6.00-7.00 sec 1.10 GBytes 9.41 Gbits/sec
[ 5] 7.00-8.00 sec 1.10 GBytes 9.41 Gbits/sec
[ 5] 8.00-9.00 sec 1.10 GBytes 9.41 Gbits/sec
[ 5] 9.00-10.00 sec 1.10 GBytes 9.41 Gbits/sec
[ 5] 10.00-10.00 sec 2.42 MBytes 9.08 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 10.9 GBytes 9.40 Gbits/sec
iMac(10Gb NIC) -> Linux(10Gb NIC) MTU9000
[ 5] 0.00-1.00 sec 788 MBytes 6.61 Gbits/sec
[ 5] 1.00-2.00 sec 1.15 GBytes 9.90 Gbits/sec
[ 5] 2.00-3.00 sec 1.14 GBytes 9.82 Gbits/sec
[ 5] 3.00-4.00 sec 1.15 GBytes 9.90 Gbits/sec
[ 5] 4.00-5.00 sec 1.15 GBytes 9.90 Gbits/sec
[ 5] 5.00-6.00 sec 1.15 GBytes 9.90 Gbits/sec
[ 5] 6.00-7.00 sec 1.15 GBytes 9.90 Gbits/sec
[ 5] 7.00-8.00 sec 1.15 GBytes 9.90 Gbits/sec
[ 5] 8.00-9.00 sec 1.15 GBytes 9.90 Gbits/sec
[ 5] 9.00-10.00 sec 1.15 GBytes 9.90 Gbits/sec
[ 5] 10.00-10.00 sec 2.47 MBytes 9.69 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 11.1 GBytes 9.56 Gbits/sec