Kon's DX Lab - Case Study

Day 90|FlaskやStreamlitでアプリを公開する

Published on 2025-06-30

🔬 Case Study Summary
Problem

(ここに課題を記述)

Result

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


Tech & Process

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

こんにちは、こんです🦊

昨日は Slack 連携アプリを作って、VPSからメッセージを飛ばす仕組みを作りました!
今日はその続きとして、Pythonで作ったWebアプリを実際にVPSに置いて外からアクセスできるようにしてみます!


1. 導入:この記事でできるようになること

こんにちは、今回も一緒に進めていきましょう🦊

この記事では、Pythonで作った小さなWebアプリを VPSに置いて、外からアクセスできる形にするところまで一緒に体験します。

  • /app1 に Flask で作った簡単なAPIを置く

  • /app2 に Streamlit のアプリを置く

  • nginxを使って外からアクセスできるようにする

💡 なぜやるの?

  • FlaskとStreamlitは、個人開発や業務自動化でよく使う無料フレームワーク

  • VPSに置いておけば、仲間やクライアントに共有できる

  • 自宅PCで動かすだけじゃなく、ちゃんとWebで動かす練習になる!


2. 背景・基礎知識

🔹 Flaskってなに?

  • Python製の超シンプルなWebアプリの「骨組み」みたいなもの

  • ちょっとしたAPIを作るのにぴったり

  • 無料&オープンソースだから誰でも使える!


🔹 Streamlitってなに?

  • Pythonのデータ分析を「即Webアプリ化」できる便利ツール

  • コードを書いて streamlit run するだけで、グラフやフォームがWeb画面になる

  • 研究や社内ツールにとても人気


🔹 VPSに置くと何がいいの?

  • ローカルPCのとき:自分しかアクセスできない

  • VPSに置いたとき:どこからでもURLを叩ける → チームや社外共有OK!


3. 実践パート


✅ ステップ1|Python環境を確認

python3 --version
pip3 --version

足りない人は:

sudo apt update
sudo apt install python3 python3-pip

✅ ステップ2|Flaskをインストールして簡単なAPI

pip3 install flask

例:app.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, Flask from VPS!"

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

起動:

python3 app.py

✅ ステップ3|Streamlitも試してみよう

pip3 install streamlit

例:streamlit_app.py

import streamlit as st

st.title("VPSからのStreamlitデモ")
st.write("Hello, this is a Streamlit app running on your VPS!")

起動:

streamlit run streamlit_app.py --server.port 8501 --server.address 0.0.0.0

✅ ステップ4|nginxで /app1 /app2 に振り分ける

location /app1 {
    proxy_pass http://localhost:5000/;
    proxy_set_header Host $host;
}

location /app2 {
    proxy_pass http://localhost:8501/;
    proxy_set_header Host $host;
}

設定を書いたら:

sudo nginx -t
sudo systemctl reload nginx

4. つまずきポイントと対処法(FAQ)


5. まとめと次回予告

✅ 今回は、Pythonで作ったWebアプリをVPSで公開する基本の流れを体験しました。

これで「自分だけのローカルツール」から一歩進んで、
「外からアクセスできるサービスの種」が作れました!


🔜 次回は、SSL化したサブドメイン × Flask / Streamlit の本番運用Tips を紹介予定です!

一歩ずつ進めばOKです。一緒に作っていきましょう🦊


#Flask #Streamlit #Python #ConoHaVPS