django-helpdesk is a free, open source project & work management project written in Python and released under BSD-3-Clause. It has 1,685 GitHub stars, 699 forks and 36 open issues, and was last pushed 3 days ago. On this registry it ranks #42 of 62 tracked projects in Project & Work Management, with 5 head-to-head comparisons available.

What is django-helpdesk?

What it is

django-helpdesk is a Django application for managing tickets in an internal helpdesk. It was formerly known as Jutda Helpdesk, and its description presents it as a ticket tracker for small businesses. The project lives in the Python and Django ecosystem, and it is distributed under the BSD-3-Clause license.

The concrete problem it addresses is the need for a self-managed helpdesk ticket system inside a Django-based environment. The README describes a demo project, standalone installation, and integration with an existing Django application. The topics connect the project to bugs, cases, incidents, issues, agile, kanban, and scrum, which indicates support and issue-tracking workflows.

Key capabilities

  • It manages tickets for an internal helpdesk, according to its tagline, GitHub description, and README.
  • It tracks items that its topics describe as bugs, cases, incidents, and issues.
  • It is a Django application, so it can be installed standalone or integrated into an existing Django project.
  • It includes a demo Django project in the demodesk/ folder for testing or development.
  • It offers a local demo workflow through make rundemo or through a Docker image built from standalone/Dockerfile.
  • Its topics identify agile, kanban, and scrum as work-management contexts.
  • It provides keyword search, while the README warns that the SQLite demo database does not allow case-insensitive searches.

Who uses it and how

  • Small businesses can use it as a Django powered ticket tracker for internal helpdesk operations.
  • Teams can evaluate it locally by running the demodesk/ demo project and logging in as admin with the password defined in demo.json.
  • Operators can run the demo in Docker by building standalone/Dockerfile as demodesk, exposing port 8080, and opening http://localhost:8080.
  • Developers can integrate it into an existing Django project by following the installation and configuration documentation.
  • Contributors can prepare a development environment with git clone, uv venv, make develop, and optional dependency groups such as teams and test.

Getting started

The README describes standalone installation and integration with an existing Django application, with documentation in docs/ and online at http://django-helpdesk.readthedocs.org/. For a quick demo, it instructs users to install uv, create a virtual environment, and run make rundemo or build and run the demodesk Docker image.

When to use it — and when not to

Use django-helpdesk when an internal helpdesk needs a self-hosted Django ticket tracker and the operator can run a database. The facts note that SQLite does not support case-insensitive keyword search, while PostgreSQL or MySQL are presented as better choices for search. The facts do not list a hosted option or a paid product it replaces, and they do not describe storage or SMTP requirements.

project readme (upstream, from github) — read inline

django-helpdesk - A Django powered ticket tracker for small businesses.

.. image:: https://dev.azure.com/django-helpdesk/django-helpdesk/_apis/build/status/django-helpdesk.django-helpdesk?branchName=master :target: https://dev.azure.com/django-helpdesk/django-helpdesk/_build/latest?definitionId=1&branchName=master :alt: Build Status

.. image:: https://coveralls.io/repos/github/django-helpdesk/django-helpdesk/badge.svg?branch=main :target: https://coveralls.io/github/django-helpdesk/django-helpdesk?branch=main

Copyright 2009-2026 Ross Poulton and django-helpdesk contributors. All Rights Reserved. See LICENSE for details.

django-helpdesk was formerly known as Jutda Helpdesk, named after the company which originally created it. As of January 2011 the name has been changed to reflect what it really is: a Django-powered ticket tracker with contributors reaching far beyond Jutda.

Complete documentation is available in the docs/ directory, or online at http://django-helpdesk.readthedocs.org/.

Demo Quickstart

django-helpdesk includes a basic demo Django project so that you may easily get started with testing or developing django-helpdesk. The demo project resides in the demodesk/ top-level folder.

You will need to install the uv package manager to simplify setting up the demo: https://docs.astral.sh/uv/getting-started/installation/

If you have not already created a virtual environment then run this command: uv venv

To start up a demo project server, run this command:

make rundemo

or with docker::

docker build --file standalone/Dockerfile -t demodesk ..
docker run --rm -v "$PWD:/app" -p 8080:8080 demodesk

then pointing your web browser at http://localhost:8080 (log in as user admin with password Pa33w0rd, defined in the demo.json fixture file).

For more information and options, please read the demo/README.rst file.

NOTE REGARDING SQLITE AND SEARCHING: The demo project uses sqlite as its database. Sqlite does not allow case-insensitive searches and so the search function may not work as effectively as it would on other database such as PostgreSQL or MySQL that does support case-insensitive searches. For more information, see this note_ in the Django documentation.

When you try to do a keyword search using sqlite, a message will be displayed to alert you to this shortcoming. There is no way around it, sorry.

Installation

  • |standalone_icon| For standalone installation, refer to standalone documentation _.

  • |django_icon| To integrate with an existing Django application, follow the guidelines in installation documentation _ and configuration documentation _.

.. |standalone_icon| image:: src/helpdesk/static/helpdesk/img/icon512.png :height: 24px :width: 24px :align: middle

.. |django_icon| image:: src/helpdesk/static/helpdesk/img/django-logo-positive.png :height: 24px :width: 60px :align: middle

Developer Environment

Front-end Dependencies

Before you get started, make sure you have the following installed:

- ``node`` – `Command-line JSON processor `_
- ``yarn`` – `JavaScript package manager `_
- ``npm`` – `Node.js package manager `_


Build Dependencies
~~~~~~~~~~~~~~~~~~

The project uses the modern `uv` package manager: https://docs.astral.sh/uv/
There are a number of options that make life a lot easier in the Makefile.
To see option for the Makefile run: `make`

Follow these steps to set up your development environment to contribute to helpdesk:
 - check out the helpdesk app to your local file system::

    git clone https://github.com/django-helpdesk/django-helpdesk.git

 - Install the `uv` package manager::
    https://docs.astral.sh/uv/getting-started/installation/

 - install a virtual environment ::

    uv venv

 - install the requirements for development::

    make develop

 - you can install optional dependencies using the --group option. The `make develop` script installs test dependencies.

    # This installs pinax teams dependencies for production
    uv sync --all-extras --group teams
    # This installs pinax teams dependencies as well as test
    uv sync --all-extras --dev --group test --group teams


If you prefer working within an activated virtual environment instead of using the `uv` tool
then you can use the normal command after the above step for creating the virtualenv to activate it::

    source .venv/bin/activate

 - or depending on your shell it might be:
    . .venv/bin/activate

The project enforces a standardized formatting in the CI/CD pipeline. To ensure you have the correct formatting run::

    make checkformat

To auto format any code use this::

    make format

Testing
-------

From the command line you can run all the tests using: `make test`

To run specific tests then run quicktest.py with arguments in an activated virtualenv or use this:
    uv run quicktest.py 

See `quicktest.py` for usage details.

If you need to create tests for new features, add your tests in a test file to the `tests` module::

 - from an activated virtualenv use::
    python quicktest.py helpdesk.tests.test_my_new_features -v 2

 - whether a virtualenv is activated or not you can use this command::
    uv run quicktest.py helpdesk.tests.test_my_new_features -v 2

Upgrading from previous versions
--------------------------------

If you are upgrading from a previous version of `django-helpdesk` that used
migrations, get an up to date version of the code base (eg by using
`git pull` or `pip install --upgrade django-helpdesk`) then migrate the database::

    python manage.py migrate helpdesk --db-dry-run # DB untouched
    python manage.py migrate helpdesk

Lastly, restart your web server software (eg Apache) or FastCGI instance, to
ensure the latest changes are in use.

You can continue to the 'Initial Configuration' area, if needed.

Contributing
------------

We're happy to include any type of contribution! This can be:

* back-end python/django code development
* front-end web development (HTML/Javascript, especially jQuery)
* language translations
* writing improved documentation and demos

For more information on contributing, please see the `CONTRIBUTING.rst` file.


Licensing
---------

django-helpdesk is licensed under terms of the BSD 3-clause license.
See the `LICENSE` file for full licensing terms.

Note that django-helpdesk is distributed with 3rd party products which
have their own licenses. See LICENSE.3RDPARTY for license terms for
included packages.

.. _note: https://docs.djangoproject.com/en/dev/ref/databases/#substring-matching-and-case-sensitivity

Frequently asked questions

Is django-helpdesk free to use?

django-helpdesk is open source under the BSD-3-Clause licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does django-helpdesk do?

A Django application to manage tickets for an internal helpdesk. Formerly known as Jutda Helpdesk.

What is django-helpdesk written in?

django-helpdesk is primarily written in Python. Its source is publicly available at https://github.com/django-helpdesk/django-helpdesk, and it has 1,685 GitHub stars.