Deploy a Flask App on QuikDB — Python Deployments Made Simple
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.txtorpyproject.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:appfor auto-detected - Port: make sure this matches what your app listens on
3. Add environment variables
Flask apps usually need at least:
FLASK_ENVorFLASK_DEBUGSECRET_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:
- Flask: quikdb/quikdb-test-flask
- FastAPI: quikdb/quikdb-test-fastapi
Go to compute.quikdb.com and deploy your Python app.
