Kon's DX Lab - Case Study

Day 35|Streamlitアプリを安全に無料公開してみた記録!

Published on 2025-05-06

🔬 Case Study Summary
Problem

(ここに課題を記述)

Result

(ここに具体的な成果を記述)


Tech & Process

(ここに採用技術とプロセスを記述) コードを詳しく見る »

こんにちは、こんです🦊
今日は「社内アプリを自作して、安全にオンラインで公開してみたい!」という思いから、Streamlit Cloudを使って無料公開する方法にチャレンジしました。


🎯 今日の目的:作ったアプリを安全に公開してみたい

業務改善のために、Streamlitで作った簡単な記録アプリを社内メンバーに見てもらいたい
ただし、保存先(Googleスプレッドシートなど)の情報は安全に守りたい……
そんなニーズに応えるために、「無料でも安全に使える方法がないか」を検証してみました!


🔧 試したこと:GitHub × Streamlit Cloud × Secretsの設定

✅ GitHubにアプリをアップロード

  • アプリフォルダをGit管理

  • app.py だけをPushして、secrets.toml は .gitignore で除外!

✅ Streamlit Cloudで無料公開

  • GitHubリポジトリを指定して「Deploy」

  • 自動でアプリURLが生成されて、誰でもアクセス可能に!

✅ Secretsの設定で安全に認証情報を保護

  • .streamlit/secrets.toml の中身をStreamlit Cloudの「Secrets」欄にだけ貼り付け

  • 改行は \n に変換して TOML形式で記述

  • Google SheetsやAPIキーなども安全に渡せる!


🔥 ハマったこと:GitHubのPush Protection(セキュリティ機能)

GitHubは秘密情報を検出すると、自動でPushを拒否してくれます。
今回は間違って secrets.toml をPushしてしまい、GitHubに止められてしまいました……!

対応策:

  • git rm --cached で履歴から削除

  • .gitignore に追加して再発防止

  • 最終的には git filter-repo を使って履歴を安全に修正!


✅ 実際の成果:公開アプリURL(例)

https://yourusername-streamlit-app.streamlit.app
↑ このようなURLで社内共有できるようになります🎉


🧠 気づき:公開×非公開を分ける設計が重要!

Streamlitは無料でも強力な仕組みが整っていて、**「見せたい部分は公開」「守るべき部分は非公開」**という設計が実現できます。
今回は本当に細かい点までトラブル対応しましたが、それだけに学びも深かったです!


✍️ 明日以降の展望

  • 保存されたGoogle Sheetsデータの可視化ページも追加予定

  • ログイン機能(streamlit-authenticator)も試してみたい!


🚀 最後にひとこと

「自作アプリを安全に社内共有する」って、実は意外と簡単でした。
ちょっとした工夫で、セキュアな運用と公開が両立できるのがStreamlitのすごいところ。
明日からも引き続き、“仕組みでラクする”アプリづくりを続けていきます!