Streamlit アプリケーションをデーモン化する
先日、Streamlit-Authenticator でログイン認証フォームを作る というメモを書きました。 Streamlit 作成した Web アプリケーションを本格的に利用したい場合はデーモン化しなくなります。 そこで今回は Systemd を使って Streamlit アプリケーションをデーモン化する手順をメモしておきます。
検証環境¶
対象 | バージョン |
---|---|
Ubuntu | 24.04.2 LTS |
Python | 3.13.3 |
streamlit | 1.45.0 |
streamlit-authenticator | 0.4.2 |
デーモン化したい Streamlit アプリケーションの用意¶
Streamlit で作成したアプリケーションを配置するディレクトリを作成します。 今回は /opt/streamlit_demo
にしました。
mkdir -p /opt/streamlit_demo
cd /opt/streamlit_demo
今回は Streamlit-Authenticator を使ったアプリケーションを想定していますので、ライブラリをインストールしておきます。
uv pip install streamlit-authenticator
あとは Streamlit アプリケーションを配置します。
デーモン化する¶
Streamlit アプリケーションを Systemd でデーモン化する為、ユニットファイルを作成します。 今回は以下の内容で /etc/systemd/system/streamlit_demo.service
というファイルを新規作成しました。 アプリケーションは Python の仮想環境内で実行することを想定しています。
/etc/systemd/system/streamlit_demo.service | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
新規追加したユニットファイルを認識させる為、systemctl daemon-reload
を実行します。
systemctl daemon-reload
systemd でサービスを自動起動設定&起動します。
systemctl enable streamlit_demo.service
systemctl start streamlit_demo.service
これでデーモン化が完了しました。 ユニットファイル中で --server.port 80
を指定している為、Web ブラウザで http://ADDRESS
へアクセスすると Streamlit アプリケーションが表示されるはずです。