つまりWANからはCloudflare Tunnelを使って自宅のNextCloudに接続したいが、LAN内では速度の面で直接接続したいってことよ(?)
NextCloud All in One (Docker)でNextCloudを起動
ここ(https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md)を参考にCloudflare Tunnel用にDokcerでなんやかんやします。
[メモ]使ったのが↓
sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 8080:8080 \
--env APACHE_PORT=11000 \
--env APACHE_IP_BINDING=0.0.0.0 \
--env SKIP_DOMAIN_VALIDATION=true \
--env NEXTCLOUD_DATADIR="/mnt/nextcloud" \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest
あとは使うドメインでNextCloudをセットアップします。
ドメインをローカルIPに解決させる
ルータがOpenWRTを使っているのでOpenWRTを使います。OpenWRTの管理画面 -> 上メニューのネットワーク -> DHCPおよびDNS -> 画面の真ん中にあるアドレス一覧
に/nd.example.com/#/192.168.1.150
みたいに入力して適用します。
あとはLAN内からping nd.example.com
としてローカルIPに解決したらOK
Caddyをいれていい感じに証明書を取得してもらう
NextCloudをリバースプロキシ用としてセットアップした&SSLでしか接続できないのでこのままだと接続しても使えません。
そこで再びここ(https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md)を参考に(Caddy with ACME DNS-challenge)して証明書をいいかんじにしてもらいます。
CaddyのダウンロードからCloudflareモジュールをクリックしてダウンロード
→バイナリをパスの通った適当な場所に置いておく
→Caddyfileという名前でファイルを作り設定を書く
→caddy run --config path/to/Caddyfile
Caddyfileに書く設定にはAPI Tokenがいりますが、ここを見ると
- Zone / Zone / Read
- Zone / DNS / Edit
で用意しろと書いてあるのでそのとおりにTokenを取得します。
注
DNSをOpenWRTの入ったルータに問い合わせるようになっていない(8.8.8.8を設定してるとか)と、当然のことながらCloudflare Tunnel経由でつながるので気をつけましょう(2敗)
コメント