Cloudflare

DNS nameserverをCloudflareに設定することで、DNS設定、SSL設定、自宅ネットワークへのトンネリングをWeb UIから行うことができる。

いくつか制限はあるものの、単純にWebアプリケーションをインターネットに公開するだけなら無料プランで十分に使える。

Raspberry Pi 4

Raspberry Pi 4 Model B/8GBをメインサーバーとして使っている。 特に性能的に不満はない。

通常時起動時のhtop

Docker

Raspberry Pi 上のDockerコンテナを用いて、複数のアプリケーションが動いている。

例えばこのブログではnginxコンテナをlocalhost:1313にport forwardして起動している。

version: "3.2"

services:
  host:
    image: nginx:xxxxx
    container_name: xxxxx
    volumes:
      - type: bind
        source: ./public/
        target: /usr/share/nginx/html/
      - type: bind
        source: ./nginx/
        target: /etc/nginx/conf.d/
    ports:
      - 1313:80

Tunnel, cloudflared

Cloudflareと、自宅のインターネットを接続するために、Cloudflare Tunnelを用いる。 もちろん外部からは接続できないCloudflareとの専有線で、ポートを開放するなどの自分のインターネットルーターへの設定は特に必要ない。

自宅ネットワーク側のTunnelの終端として、cloudflaredを常に起動しておく必要がある。

例えばこのブログでは、以下のように設定してRaspberry Piのlocalhost:1313をkajindowsxp.comとして公開している。

公式Doc https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/