quokka 0,2,0,1,9 coveralls travis-ci docker

CMS (Content Management System) - Python, Flask and MongoDB

2 years after MIT

Quokka is dead! Long live the Quokka!


QuokkaCMS growed in to an amazing project and there are many users using the currrent version.

The problem is that too many feature requests lead in to too many issues to fix and implement.

The lack of contributors lead in to a slow pace development.

So I decided to kill this version! and start a brand new one[1] which is going to be more simple and many things will be moved in to external plugins.

So I'll need to maintain only the small core of the CMS and plugins would be maintained by community.

I am also removing the MongoDB dependency (it will be optional)

If you want to follow the Quokka Rewrite please take a look in to temporary repository [1] and once it is ready to release I'll archive this existing version in another branch and replace master branch of this repo with the new CMS.

The existing codebase will be kept in another branch but will not be actively maintained, only hotfixes and community PRs will be accepted, but the evolution of the project will be focused in quokka new generation

[1] https://github.com/rochacbruno/quokka_ng/blob/master/README.md

Suggestions please use the issues on the new repo.


Long live the Quokka!!!

Flask Registered Travis CI Coverage Status Code Health Updates

Stories in Ready irc #quokkaproject

Twitter Small Acts Manifesto Donate with Paypal

wercker status Launch on OpenShift

Quokka project

Flask and MongoDB powered CMS

quokka cms

Quokka is a flexible content management platform powered by Python, Flask and MongoDB.

You can use Quokka CMS to publish a blog, a web portal, intranet, document management system and you can install existing quokka-modules such as quokka-cart to create an e-commerce app or you can easily create a new quokka-module to fit your needs.

Quokka Dashboard (based in Flask-Admin)

quokka cms admin content dashboard

Quokka runs on Python 2.7 (Python 3 support is being developed)

See yourself

User '[email protected]' and passwd 'admin' to login in to /admin

Get Quokka

Using Docker

The easiest way to run Quokka for development or production is using quokkaCMS + Gunicorn + Supervisor under a Docker Container. You can see the instructions in the following repository: https://github.com/quokkaproject/docker-gunicorn-supervisor

Get Quokka to run locally for development or deployment

git clone https://github.com/quokkaproject/quokka --branch master --single-branch
cd quokka

if you are cloning to contribute to the project just clone it without the "--branch=master --single-branch" part

Run Quokka

Install needed packages in your local computer

You can install everything you need in your local computer or if preferred use a virtualenv for Python


  • Quokka requires a MongoDB instance running to connect.

    1. If you don't have a MongoDB instance running, you can quickly configure it:

      • Download from here
      • Unzip the file
      • Open a separate console
      • Run it inside the MongoDB directory:
        ./bin/mongod --dbpath /tmp/

        WARNING: If you want to persist the data, give another path in place of --dbpath /tmp

    2. If you already have, just define your MongoDB settings:

      $ $EDITOR quokka/local_settings.py
      MONGODB_DB = "yourdbname"
      MONGODB_HOST = 'your_host'
      MONGODB_PORT = 27017
      # You can also use envvars `export QUOKKA_MONGO_DB="yourdbname"` 
    3. If you have Docker installed you can simply run the official Mongo image

      cd quokka
      docker run -d -v $PWD/etc/mongodata:/data/db -p 27017:27017 mongo

O.S Requirements (optional)

  • O.S Requirements (for media conversions) you may need the following requirements on your operating system

    1. Ubuntu/Debian
      sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev
    2. Alpine Linux
      apk add gcc python py-pip libjpeg zlib zlib-dev tiff freetype git py-pillow python-dev musl-dev
    3. RedHat & Fedora
      sudo yum install libtiff-devel libjpeg-devel zlib-devel freetype-devel python-devel

Python requirements

Install all needed python packages

If you have a virtualenv, activate it! source env/bin/activate or workon env

pip install -r requirements/requirements.txt

Create admin user, sample data and run!

  • Initial data, users and running commands

    1. Create a superuser (required to login on admin interface)

      $ manage accounts_createsuperuser
      [email protected]
    2. Populate with sample data (optional if you want sample data for testing)

      $ manage populate

      credentials for /admin will be email: [email protected] passwd: admin

    3. Run

      $ manage runserver --host --port 5000


Check wsgi.py, wsgi_gunicorn.py and scripts under /etc folder for deployment options or check documentation


Documentation is not complete yet, but is being written at:


If you want to help writing the docs please go to https://github.com/quokkaproject/quokkaproject.github.io

Also there is a Wiki

NOTE: the content from wiki will be moved to /documentation


You can host a Quokka website in any VPS or cloud which supports Python and Flask + MongoDB access, a good option is to host the database in MongoLab if your hosting server does not provide Mongo.

python   flask   mongo  

Details and Features

Bit.ly integration

Quokka has Bit.ly integration to short post urls. In quokka/settings.py you can find the details of how to configure with your data. Check both items: SHORTENER_SETTINGS and SHORTENER_ENABLED. By default the shortener is disable, but you can change it putting True in the SHORTENER_ENABLED config.

Do not change settings.py file, use a local_settings.py or export QUOKKA_SHORTENED_ENABLED="@bool true" to your env


Why another CMS?

There is a large number of great CMS's in Python ecosystem (Plone, Opps, Mezannine, DjangoCMS etc), each one has its own patterns for extension development and theme management. A CMS can take a its role as "Product" or as "Platform" and for Quokka the idea is to play in both scenarios, The CMS should be easy to deploy, extensions and themes should be "drop-in", it should be easy to develop extensions and also it should use a "schema-free" database. Until Quokka there was no CMS filling all these needs.

Why Flask?

Because Flask is Pythonic! In my research + experience it is the best framework to develop applications which rely on "pluggable features" thanks to its Blueprints and Extension patterns, also Flask plays well with any DB/ORM of choice. (see next question)

Why MongoDB?

Because database scheme migrations are no-happy for CMS and a Quokka CMS must be always happy to work with, so no-schema-migrations is needed with MongoDB! and Mongo is the easiest, flexible and most suitable NoSQL for CMS, also there is excellent extensions for Flask (MongoEngine and Flask-Admin) which supports MongoDB!

Why the project is named "Quokka?"

Because it is the happiest animal in the world!


    1. Happiest animal in the world because they are known for how much they smile.
    1. They are marsupials
    1. They live on rottnest island named after quokkas because a Dutch guy thought they were large rats. Rottnest means "rats nest"
    1. They can climb trees
    1. Herbivores-they eat leaves,stems,grass,etc;
    1. They are nocturnal
    1. They can live for long periods of time, living off of the fat stored in their tails lol
    1. Females usually give birth once a year
    1. Quokkas are old enough to have babies at 1.5 years old!!
    1. Live 5-10 years
    1. Declining population—logging, pollution, killed by foxes,pet dogs, pet cats, humans,etc;

Related Repositories



A command-line utility that creates projects from cookiecutters (project templat ...



Generic shopping cart implementation ...



All you need to run QuokkaCMS using gunicorn and supervisor under a docker conta ...



Theming support fot Quokka modules ...



Material Theme For Quokka CMS Front End ...

Top Contributors

rochacbruno ellisonleao felipevolpone alexandre jniltinho pyup-bot realli itsnauman avelino blakev xiaohanyu requires imgxx guswidrig hypknowsys ramiroluz abnerpc 030io gustavofc x-warrior drgarcia1986 bitdeli-chef oktools DiegoYungh hersonls yasoob smurfix pra85 seanhussey rturk


-   v0.1b zip tar
-   0.2.1 zip tar
-   0.2.0 zip tar