Nextcloudをたててくそでかファイルサーバーつくった

乳は控えめな方が良いが、ストレージはデカいほうが良い。

動機

Microsoft 365 Personal(旧Office 365 Solo)を年間契約してて、ストレージ1TBとMS Officeのサブスクが降ってきてるんですけど、最近Officeで資料を作ることが増えてきて、かつ、デスクトップとThinkPadの同期が割と遅い(同期タイミング、通信速度もろもろ)のが気になってきたので、前から挫折してたNextcloud鯖を生やすことにしました。

要件

  1. 宅内、宅外の両方で使えること
  2. 宅内、宅外を気にしないでドメインで接続したい
  3. 宅内の場合はGbEで通信すること(NAS的な運用もしたい)
  4. Nextcloud以外にもGRAV(Flat-File CMS)も同居させたいので、サブドメイン切ってポートも変えたい

実際にやってみた

Nextcloudのインストールにはzip版、Snap版、Docker版があるが、結局Zip版にした。 DockerはさわったことないのでDockerとはなんぞやだったし、Snap版は入れるのはかんたんだったけどWebrootがどこなのか結局わからなくてNginxの設定ファイルの書き方で詰まったので。
Zip版はMariaDBを触る必要があり、DB触りたくねえ~~ってGRAVを選んだので手が出せなかったけど、他に選択肢がなくなったので仕方なく私がやりました。

nginxの設定

https://docs.nextcloud.com/server/20/admin_manual/installation/nginx.html

server_name drive.home.neso.tech
root /var/www/nextcloud

に書き換え。

そういえばnginxといえば、設定ファイルを /sites-available に置く派と /conf.d に置く派があるみたいなんですが、どっちが正統(?)なんでしょうか。
個人的にはavailableにおいといてenableにシンボリックリンク貼るほうが有効無効と過去のconfも取っておけて分かりやすいように思うんですが。

LEの取り方が変わってた

SSLはみんな大好きLet's Encryptで取った。

新規取得でcertbotを触るのは久しぶりで、
$ certbot --nginx -d drive.home.neso.tech では取れなかったので、
$certbot ceronly --manual --preferred-challenge dns -d drive.home.neso.tech で取った。

conoha-dnsがクソ便利でした。 -> conoha-dns
$ conoha-dns add _acme-challenge.drive.home.neso.tech -t TXT -d hogehogehogehogehogehoge でDNS APIが叩けて非常に楽。

外出先と家の中で同じホスト名を使って接続する

外出先からだけ、家の中でだけ、のどちらかなら簡単だったのだけどネットワークのこと理解してなくて時間かかった。

v4とv6の両方をDNSレコードにかく

これなら内側からでもv6を通って一意にNextcloud鯖までいけるのでよかった。

最初は宅内DNSサーバーを作って、家にいるときにはルーターのDNS設定をそこに向けて、宅内宅外の判別をさせようかと思っていたのだけど、IPv4+IPv6でなんかうまくいった。
WAN側からはv4(v6も可)を経由して名前解決ができるが、LAN内ではv4だけではルーターがNextcloud鯖へパケットを向けてくれないらしいのでv6でいい感じになれているらしい。

v6のことよくわからなくて敬遠してたけど、LANの内外を関係なく一意に特定できるのでクソ強いですね...

自分で理解するために図を書いたらなるほどLANの内側からは名前解決できないのがなんとなく理解できた。
確かにルーターの設定画面は「WAN側から指定のポートにパケットがきたらLAN側のhogeというホストに流す」としか書いてなかった。

HELP

そういやこんな警告出てるんですけど、どこ直したら良いんですか

PHPのシステム環境変数が正しく設定されていないようです。getenv("PATH") コマンドでテストして何も値を返さないことを確認してください。 PHP設定の注意事項と php-fpmを利用する場合のサーバー向け設定をインストールドキュメント↗で確認してください。
PHPのメモリ制限が推奨値の512MB以下です。
"Strict-Transport-Security" HTTPヘッダが最低でも "15552000" 秒に設定されていません。セキュリティを強化するには、セキュリティTips ↗で解説しているHSTSを有効にすることを推奨します。 メモリキャッシュが設定されていません。可能であれば、パフォーマンスを向上するため、memcacheを設定してください。より詳しい情報はドキュメントで参照できます。

おわり

100MB/sでファイルが転送されるの楽しくて無駄に転送して遊んでる。
そのうちNICとルーター変えて10GbEやりたいな...

おわり。

Next Post Previous Post