2024-02-23

Nextcloudアップグレードでエラー

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したら、なんか色々作り直してる的なメッセージが出て、無事起動。
よかったよかった。

2022-06-12

Cloudflareに魂を売ってみた

うちの回線遅いなーフレッツ光に変えようかなーでも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暗号モードをフル(厳密)に変更しておいたが、ただのフルとどう違うのかはよくわからん。

とりあえずここまでやって満足したが、ゼロトラストなんかもできちゃうみたいなので、まだ色々遊べそう……しかし、なんでこれが無料なのか全く謎だわ……

2021-02-23

n8n.ioを立ててみる

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ショートカットを組み合わせればなにかできるかな)

2021-02-11

10GbEの世界

せっかく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