こんにちは、こんです🦊
今日は「社内アプリを自作して、安全にオンラインで公開してみたい!」という思いから、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のすごいところ。
明日からも引き続き、“仕組みでラクする”アプリづくりを続けていきます!