WEB上に、自分の書いた記事を公開する方法は、いろいろある。
無料HP作成サービス:アメブロ、Wix,Note,X、等
レンタルサーバー
さくらレンタルサーバー、等
GMO → 自分のクリニックHPはここで作成
Pythonanywhere → 自分の文書DLサイト(実はFlaskファイルを自由に公開できるレンタルサーバーはほぼない)
https://note.com/kojikoji3744/n/ncd01bb40f836
VPSサーバー:使用経験なし
クラウドマネージドサーバー:Google CloudRun → PharmaQR
https://note.com/kojikoji3744/n/n9e18c6ddd6bd
Microsoft Azur(+GitHub) 使用経験なし
等
今回、上記のものとは違うCloudflare Tunnnelの手法で、SakuraMAP (MapNS_SakuraEdition_v3)を外部に公開した。
https://note.com/kojikoji3744/n/n9e18c6ddd6bd
手順
1.まず PC 上で http://localhost:5000 を表示
2.次に cloudflared tunnel --url http://localhost:5000 をcmdで実行

公式の Windows 向けダウンロードページから cloudflared を入れます。
手順①:公式ページからダウンロードCloudflare Tunnel の公式ダウンロードページに行きます:👉 https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/downloads/ ✔ Windows版を選ぶページ内で👉 Windows(64-bit)通常はこれ:cloudflared-windows-amd64.exe👉 クリックしてダウンロード
手順②:ファイルを配置ダウンロードしたファイルを:C:\cloudflared\などに移動します(新しくフォルダ作成でOK)
手順③:名前を変更(重要)ファイル名を短くします:cloudflared-windows-amd64.exe↓cloudflared.exe
手順④:動作確認(ここが最重要)フォルダを開いて、アドレスバーに👇入力cmdするとコマンドプロンプトが開くので:cloudflared.exe --version👉 これが出れば成功:cloudflared version 202X.X.X
(おすすめ)手順⑤:どこでも使えるようにする毎回フォルダ移動が面倒なのでPATH追加します
⑥そして、 cloudflared tunnel --url http://localhost:5000 をcmdで実行
3.出てきた https://president-tony-flood-chest.trycloudflare.com を開く

(参考)公開を止めるときは、cloudflared を動かしているターミナルでCtrl + Cです。Flask 側も止めたければ、Flask のターミナルでも Ctrl + C です。
これで、Flaskアプリ(MapNS)がhttps://president-tony-flood-chest.trycloudflare.com
に公開されたが、これは、普通はサーバーを借りないとできないことだ。それが自分のPCでできてしまう。
今は、止めてまた起動すると、ドメインは毎回変わるが、独自ドメイン固定も可能ということだ。例:mapns.kojikoji.com
もともと、このMapNSはフリーアクセスのコンセプトだったが、Flaskでパスワード追加は可能だし、Cloudflare側でログイン制限もできるという。
このような認証による「安全性」だけではない。なにより、「自己サーバー」(とても、ぼくにはそれを作る力はないが)と比べて、Cloudflare Tunnel は、自分のPC → Cloudflare → インターネットという「内側から外へ」の接続を作る。つまり:
普通の公開
→ 外から自宅PCへ直接アクセス(ポート開放が必要)
Cloudflare Tunnel
→ あなたのPCがCloudflareに常時接続し
その経路を通してアクセスを“中継”
👉 外から直接PCに来ないので、穴を開ける必要なし
なので、安全性は、いわゆる「自己サーバー」よりも高いという。
ただ、PCが起動していないと使えない。
→ サーバーではなく「自分のPCそのもの」。つまり
レンタルサーバーなしで公開できる ✔
ポート開放なしでOK ✔
localhostを外部公開できる ✔
ただし
👉 アプリ側のセキュリティは自分で守る必要あり
(まとめ)「安全」と言われる理由
主な理由は3つです:
① 外部から直接アクセスされない
あなたのPCのIPは隠れる
攻撃対象になりにくい
② 通信は常に暗号化
HTTPS(TLS)で保護
③ Cloudflare側で制御可能
認証(ログイン制限)
IP制限
Bot対策
(参考)localhostでWEBファイルをみるためには大きく2種類だけ。
①「静的ファイルを見る」(HTMLだけ、JSだけ)
②「プログラムを動かす」(Flaskで app.py 起動など)
すなわち、今回のような②のかわりに、①のためにApacheというサーバーソフト(静的 or 動的)をダウンロードすれば、(自己サーバー構築という大仕事までやらずに)そのフォルダに、htmlファイルをおけば、localhostでWEBファイルをみれるので → このCloudflare Tunnelの手法で、公開可能 ということだ。
(ちなみに、XAMPPとはApache + PHP + MySQL の初心者向けセットで、やはり、フォルダにHTML置くだけでlocalhost見れる)
→このやり方をすれば、多くのhtmlファイルは、もっとかなり楽にWEB公開できるのではないか?
✔ 実はもっと簡単な方法もある(重要)
静的HTMLだけなら👇
python -m http.server 8000
👉 これだけでOK(Apache不要)
*過去に作成したKataGoクローンや、現在開発中のAlfaZero様の囲碁AIを公開するときがもし将来きたとしたら、今まではGoogle CloudRunに思考エンジンをおき、APIで連携させPythonanywhereで公開予定だった。
→Cloudflare Tunnelを使うことがより単純かつ安全かつ安価かもしれない。
自分のPC内に、思考エンジンをおき、localhostでみれるようにしておけば、安全に、外部公開できるのだから(ただPCは常時起動させておかねばならないが)。
