Для деплоя на сервак приложения с минимальными усилиями (вариант не подходит для реальных боевых проектов) достаточно использовать uvicorn и supervisor.
Uvicorn скорее всего уже был установлен при старте проекта на fastapi. Для установки supervisor выполним
apt-get install supervisor
Файл конфигурации по умолчанию находится в /etc/supervisor/supervisord.conf (для Ubuntu, Debian)
Добывим в конец файла запись
supervisord.conf
[program:fastapp] command = /root/Env/reco/bin/uvicorn main:app --host 0.0.0.0 --port 8000
directory = /home/evgen/img-text-reco
stderr_logfile=/var/log/long.err.log
stdout_logfile=/var/log/long.out.log
autostart=true
autorestart=true
Где
fastapp
- произвольное название приложения
/root/Env/reco/bin/uvicorn
- путь к файлу uvicorn находящемся в виртуальном окружении проекта
main:app --host 0.0.0.0 --port 8000
- команда для запуска приложения (main
- это файл main.py
в котором определен app=FastAPI()
)
directory
- путь к файлу main.py
остальные переменные вроде и так понятны исходя из названия
Сохраняем файл и вызываем
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start fastapp
Переходим по адресу your_ip:8000
и все должно работать
По хорошему сюда еще nginx надо добавить, но пока влом