pippython3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvuv sync
Create a service file:
sudo nano /etc/systemd/system/directoryname.service
Add the following configuration:
[Unit]
Description=FastAPI Application
After=network.target
[Service]
User=username
WorkingDirectory=/workingdirectory
ExecStart=/workingdirectory/.venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000
Restart=always
RestartSec=3
Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable directoryname
sudo systemctl start directoryname
systemctl status directoryname