概念図

永続デプロイの手順
01. リポジトリのクローン
git clone https://github.com/kichinosukey/coffee_receipe_generator
02. gunicornを使って起動テスト
pip install gunicorn
gunicorn --bind 0.0.0.0:8000 app:app
03. systemdの設定と永続化
アプリをサービス登録して、システム起動時に自動開始させる
sudo vim /etc/systemd/system/coffee_receipe_generator
[Unit]
Description=hoge
[Service]
ExecStart=/opt/coffee_receipe_generator/venv/bin/gunicorn --bind 0.0.0.0:8000 app:app
WorkingDirectory=/opt/coffee_receipe_generator
User=USERNAME
Group=GROUP
Restart=always
[Install]
WantedBy=multi-user.target
- サービス開始と自動起動の有効化
sudo systemctl start coffee_receipe_generator
sudo systemctl enable coffee_receipe_generator
04. (参考)nginxを使ったデプロイ
- nginxインストール
sudo apt install nginx
- nginxをプロキシとして構成する
sudo vim /etc/nginx/sites-available/coffee_receipe_generator
server {
listen 80;
server_name YOUR_DOMAIN.COM; # 設定しているドメイン名に置き換え、ローカルの場合はIPアドレス
location / {
include proxy_params;
proxy_pass http://unix:/opt/coffee_receipe_generator/coffee_receipe_generator.sock;
}
}
- nginxの設定を有効化して再起動
sudo ln -s /etc/nginx/sites-available/coffee_receipe_generator /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
まとめ
- 自宅でデプロイするだけなのでnginx入らないが、一連の手順を経験してみたかったのでやってみたが非常に手早くできた
- apacheなど他の選択肢もあったとは思うが、apacheの場合はwsgiのmodを入れたりする必要があってややこしそうなのでnginxを選んだ