Self-hosting QueryGrade

QueryGrade is a Django web application, and you can run your own instance.

The quickest local run

For a local instance backed by SQLite, no background workers:

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver

That serves the app at http://127.0.0.1:8000. Create an admin user with python manage.py createsuperuser if you want the Django admin.

With Docker

The bundled docker-compose.yml brings up two services - the Django web app and a PostgreSQL database:

docker-compose up --build

The web image runs migrations and collects static files on startup, so don’t override its command. Note that plain docker-compose up gives you web + database only; it does not start the Celery worker or scheduler, so the asynchronous machine-learning features (retraining, drift monitoring) won’t run under it. Those run as separate worker/beat processes in a full deployment.

A few things to know

  • Authentication is standard Django session login; passwords require at least 12 characters.
  • Rate limiting is off by default in development - enable it for anything public.
  • Production hardening (DEBUG=False, a strong SECRET_KEY, ALLOWED_HOSTS, secure cookies) is manual - work through the checklist before exposing an instance.
  • Password-reset emails print to the console in development; a real email backend is needed in production for reset links to be delivered.

Running into a setup snag? Send us a message and we’ll help you sort it out.

Still need help? Contact us