title: How can I deploy FastAPI manually on a Ubuntu Server?
body: <p>I have a very simple API (2 routes) which just has GET requests, and doesnt need any authentication or anything for now.</p>
  <p>I want to know what is the best and appropariate way to deploy my API for production. I am unable to use docker, and would like to do it the server way.</p>
  <p>So i have a few questions:</p>
  <ul>
  <li>On the fastapi documentation it says you can do <code>uvicorn main:app --host 0.0.0.0 --port 80</code> but i was thinking if that is the correct way for production? Do i just enter that command, and will the API automatically start listening on the servers IP address? Also is this method efficient and will it be able to handle all the requests? Or what would i change for it to be faster?</li>
  <li>When should i use a process manager?</li>
  <li>When should i use multiple workers? And what benefits do they provide?</li>
  <li>When should i use Gunicorn as mentioned here? <a href="https://www.uvicorn.org/deployment/#gunicorn" rel="nofollow noreferrer">https://www.uvicorn.org/deployment/#gunicorn</a></li>
  </ul>
  <p>I am just a little confused on how to deploy this because one article says do this, another says do this.</p>