Skip to content


Repository files navigation

PypiVersion Doc badge Travis Pypi


Full featured platform for fast and easy building extensible web applications.

Don't waste your time searching stable solution for daily problems.

Deploy and Enjoy ! No skills required !

For Users

  • CMS, Page, Responsive, Layouts, Themes, Color Variations
  • Widgets, Plugins, 3rd party app integrations
  • Frontend Edit, Install/Uninstall modules in one click !
  • Store, Form Designer, Blog, News, Folio, Links, Navigations, ..
  • Media, Folders, Files, Images, Documents, Import - Export, ..
  • LIVE settings, Auto loading modules, editable templates, ..
  • Authentification, 3rd party backends, SAML standard, ..

For Developers

  • Python, Django, FeinCMS, OpenStack Horizon
  • AngularJS, React, Bootstrap, Compress, Bootswatch
  • Crispy forms, Floppy forms, Select2
  • Filer, DbTemplates, Reversion, Constance
  • Haystack, Oscar, Django Admin Bootstrap
  • and tons of other apps bundled as modules

Further reading:

Join the chat at Coverage


one liner


wget -O - | sh

Install Blog

wget -O - | sh

Install Store

wget -O - | sh


python -c 'import urllib; print urllib.urlopen("").read()' >
sudo sh

Command by command

virtualenv -p /usr/bin/python2.7 leonardo_venv
cd leonardo_venv
. $PWD/bin/activate

pip install -e git+
pip install -r $PWD/src/django-leonardo/requirements.txt
django-admin startproject --template= myproject

export PYTHONPATH=$PWD/myproject
cd myproject

python makemigrations --noinput
python migrate --noinput
python bootstrap_site --url=

echo "from django.contrib.auth.models import User; User.objects.create_superuser('root', '', 'admin')" | python shell

python runserver

Navigate your browser to your_ip/admin and login with root:admin For settings production mode could take inspiration from Leonardo Documentation.


Leonardo in default state has enabled some modules which provides basic stuff for common sites:

  • Web - precise FeinCMS integration
  • Navigation - common navigation components
  • Media - Filer integration with media widgets
  • Search - Haystack integration
  • Auth - Basic auth with standard user actions
  • Devel - Widgets for site developers


These modules are included in default leonardo installation, but could be uninstalled anytime without affecting your DB:

  • System - Common management stuff (listing installed packages, widgets version etc..)
  • Sitestarter - simple site starter which handle missing site and create it from custom yaml template
  • Admin - django admin
  • Ckeditor - Default wysiwyg editor for now. Alternatives: Redactor,Summernote,Tinymce..

For uninstalling:

pip uninstall leonardo-system
pip uninstall leonardo-sitestarter

For switch wysiwyg:

pip uninstall leonardo-ckeditor
pip install leonardo-redactor


Leonardo in default state using module loader which allows you to easy installation of new packages.

All modules lives in Package Index.


  • Admin - Standard Django admin
  • Admin Honeypot - Django admin honeypot
  • Bootstrap Admin - Bootstrap Django admin
  • Material Admin - Material Django admin
  • Analytics - Analytics service integration for Leonardo projects
  • Blog - Elephant Blog integration
  • Celery - Celery workers for Leonardo CMS
  • Multisite - Multi site with security
  • Folio - Portfolio app
  • Geo - Some geolocation related widgets (Google maps,..)
  • Galleries - Awesome galleries
  • Forms - Stable Form Designer integration with Remote Forms
  • Store - Oscar Ecommerce - FeinCMS integration
  • News - Heavy FeinCMS News
  • `Newswall`_ - Newswall
  • Links - navigation helpers bundles as Leonardo module
  • Redactor - A lightweight wysiwyg editor for Leonardo
  • Sentry - end-user friendly error page
  • Page Permissions - extend Page and provide new Navigation templates with permissions
  • Team - team model and widgets
  • Oembed - oembed objects with caching
  • Static - client-side libraries like an AngularJS, React, D3.js, ..



Our cookiecutters are a good start for creating new Site, Module or Theme.


Leonardo defines a group of bundles that can be used to install Leonardo and the dependencies for a given feature.

You can specify these in your requirements or on the pip comand-line by using brackets. Multiple bundles can be specified by separating them by commas.

$ pip install "django-leonardo[multisite]"

$ pip install "django-leonardo[blog,store,multisite]"

Here is current list of bundles.

Looking for commercial support?

If you are interested in having an Leonardo project built for you, or for development of an existing Leonardo site. Please get in touch via

Read More