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 strongSECRET_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.