Creme is a free/open-source Customer Relationship Management software developed by Hybird (

It is designed with an entities/relationships architecture, and is highly configurable, which allows
to adapt Creme to many different work-flows. It provides apps (ie: modules) to manage:
    - Contacts & organisations.
    - Documents & folders.
    - Activities (meetings, phone calls, tasks...) with a calendar.
    - Products & services.
    - Invoices, quotes, sales orders & credit notes.
    - Opportunities.
    - Commercial actions.
    - Email campaigns.
    - Reports.
    - Tickets.
    - Alerts, todos & memos.
    - Geolocation.
    - ...

Creme has powerful tools to filter, search or import data ; it can also be used a CRM framework
you can use to code your own CRM.

Creme is coded in Python, and uses the Django web framework ( and
the JQuery javascript library (

You can find more information on Creme on its official web site:

It's recommended to use a database engine which supports transactions.
You probably should use 'virtualenv'.

(exact versions are indicated in the file 'creme/requirements.txt')
    - Core
        - Python 2.7
        - Django 1.8 (>= 1.8.5)
        - Django-mediagenerator 1.12
        - redis 2.10 (ie: the python library, & so you'll need the related server too, of course)
        - pytz
        - python-dateutil 1.5
        - bleach 1.4
        - Pillow 3.4
        - Java >= 1.4 (only needed to build the compressed version of CSS and JavaScript files at installation time)

    - Optional
        - creme.creme_core:
            - xlrd (to import contacts and organisations from xls files)
            - xlwt (to export contacts and organisations as xls files)

        - creme.billing:
            - pdflatex (if you want PDF export)

        - creme.graphs:
            - pygraphviz (seems unavailable on windows)

        - creme.crudity:
            - lcab (if you want Infopath forms exports and your server doesn't run on Windows)

        - creme.recurrents:
            - django-formtools 1.0

        - creme.activesync (deprecated):
            - restkit 4.2
            - pycrypto 2.6

Installation with 'pip':
    - If you use MySQL, you can use the file 'creme/requirements.txt' to install all the libraries
      needed by a classical installation with the command (better in a virtualenv):
        >> pip install -r creme/requirements.txt
    - If you want a customised installation, you'll have to install the package yourself,
      depending on which apps or SQL server you want. For PostGreSQL, install the package 'psycopg2':
        >> pip install psycopg2
    - Notice some of these python packages need system libraries to be installed.
      For example, here a list of Debian/Ubuntu packages you'll have to install before:
        - python-dev
        - mysql_config & libmysqlclient-dev (or libpq5 if you want to use PostGreSQL)
        - redis-server
        - libxslt1-dev
        - default-jre
        - libjpeg-dev
        - graphviz & graphviz-dev (if you want the optional app 'graphs')


Global remarks:
    - You should know how to install/deploy a Django application.
    - Upgrade note: if you already have a Creme installation, upgrade the version one by one
      (eg: do not try to upgrade from 1.1 to 1.3, upgrade to 1.2 and then 1.3).

Database configuration:
For a new install, you have to create a new database & a new DB user (who is allowed to create/drop tables, indices...).

See the file creme/ and set your parameters in a new file called 'creme/'.
Here the minimal information you must fill :

    # -*- coding: utf-8 -*-

        'default': {
            'ENGINE':   'django.db.backends.mysql',  # NB: 'django.db.backends.postgresql_psycopg2' for PGSQL
            'NAME':     'name_of_your_db',           # <== TO BE REPLACED
            'USER':     'name_of_your_user',         # <== TO BE REPLACED
            'PASSWORD': 'password_of_the_user',      # <== TO BE REPLACED
            'HOST':     '',                          # Leave empty for localhost.
            'PORT':     '',                          # Leave empty for default port.

    SECRET_KEY = ''  # <== TO BE REPLACED (see below).
    LANGUAGE_CODE = 'en'  # Also available : 'fr'
    TIME_ZONE = 'Europe/Paris'  # See

To generate the value of SECRET_KEY, run the following command in the root directory & copy its result:
    >> python build_secret_key

You can chose precisely the creme apps you want, by copying INSTALLED_CREME_APPS & commenting the unwanted apps ;
beware to only comment app in the 'optional' section, & respect the dependencies which are indicated.

The information from the section "EMAILS [internal]" of '' should be overridden in
your '' if you want that your users receive e-mails from Creme (ToDos, Alerts...).
But these information can be filled/changed later.

Filling the DB tables:
Run the following commands in the root directory:
    >> python migrate
    >> python generatemedia
    >> python creme_populate

If you are upgrading from Creme 1.6, clean all existing sessions, for example like this:
    >> python shell
    > from django.contrib.sessions.models import Session
    > Session.objects.all().delete()

Note for MySQL users: you should load the time zone tables.
 - On Unix servers, it can be done with:
       >> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
 - For Windows environment, see


To run the development server, you just have to run this command:
    >> python runserver
You can then go to http://localhost:8000 & log in with root/root.

For a production deployment (Apache, Nginx...), you should read

In order to use the job system (eg: sending emails campaign, CSV import...), run the job manager too:
    >> python creme_job_manager