Skip to main content

Deploy a Flask App on QuikDB — Python Deployments Made Simple

· 3 min read
Samson Ajulor
CEO, QuikDB

Python deployment has always been annoying. Gunicorn configs, WSGI servers, Docker multi-stage builds, pip freeze vs Poetry vs pipenv. You just want your Flask app running somewhere.

QuikDB handles all of that. If your repo has a Dockerfile, we use it. If it doesn't, we generate one. Either way, your app goes from GitHub to a live URL in about 90 seconds.

Two ways to deploy Python apps

Option A: You have a Dockerfile

If your repo already has a Dockerfile, QuikDB uses it as-is. This is the easiest path for Flask, FastAPI, Django, or any Python framework.

A typical Flask Dockerfile looks like this:

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]

QuikDB detects the Dockerfile, builds the image, and starts the container. No extra config needed.

Option B: No Dockerfile

If you don't have a Dockerfile, QuikDB generates one based on your repo:

  • Detects requirements.txt or pyproject.toml
  • Picks the right Python version
  • Sets up the virtual environment
  • Configures the start command

You can override any of this in the deployment wizard.

Deploy step by step

1. Connect GitHub

Go to compute.quikdb.com, sign in, and connect your GitHub account from the Repos page.

2. Create a deployment

Click New Deployment, pick your Flask repo, select the branch.

QuikDB scans your repo. If it finds a Dockerfile, it shows configSource: dockerfile. If not, it auto-detects your Python setup.

Review the config:

  • Build command: usually empty for Dockerfile-based deploys (the Dockerfile handles it)
  • Start command: whatever your Dockerfile's CMD is, or gunicorn app:app for auto-detected
  • Port: make sure this matches what your app listens on

3. Add environment variables

Flask apps usually need at least:

  • FLASK_ENV or FLASK_DEBUG
  • SECRET_KEY
  • Database URLs

Add these in the config step or later in the Environment tab. Keys with SECRET, KEY, or PASSWORD in the name are auto-encrypted.

4. Deploy

Click Deploy. QuikDB builds the Docker image on a runner node and starts your container. For Dockerfile-based deploys, build time depends on your image complexity — a slim Python image usually takes 30-60 seconds.

Your app goes live at your-app-abc123.quikdb.net.

FastAPI works the same way

FastAPI deploys the exact same way. The only difference is your Dockerfile CMD:

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

Make sure the port in your Dockerfile matches the port QuikDB expects (set it in the deployment config).

What you get

  • HTTPS out of the box
  • Health checks that monitor your app
  • Logs viewable in the dashboard
  • Zero-downtime restarts on redeploy
  • Custom domains with auto-SSL

Pricing

Same flat pricing as all QuikDB deployments:

  • Hobby ($5/mo): 3 containers, 0.5 vCPU, 512MB RAM each
  • Pro ($19/mo): 5 containers, 1 vCPU, 1GB RAM each

No per-request charges. No bandwidth surprises.

Try it

Test repos you can fork and deploy right now:

Go to compute.quikdb.com and deploy your Python app.