FastAPI Deployment on GCP VM with Azure DevOps CI/CD


1. Clone Repository on GCP VM & Setup Virtual Environment

Option A: Using pip

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Option B: Using uv

uv sync


2. Create systemd Service

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


3. Enable & Start Service

sudo systemctl daemon-reload
sudo systemctl enable directoryname
sudo systemctl start directoryname

Verify

systemctl status directoryname


4. Allow Passwordless Restart (Required for CI/CD)