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 runs on Python 2.7 (Python 3 support is being developed)
User '[email protected]' and passwd 'admin' to login in to /admin
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
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
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.
If you don't have a MongoDB instance running, you can quickly configure it:
./bin/mongod --dbpath /tmp/
WARNING: If you want to persist the data, give another path in place of
--dbpath /tmp
If you already have, just define your MongoDB settings:
$ $EDITOR quokka/local_settings.py
===============quokka/quokka/local_settings.py===============
MONGODB_DB = "yourdbname"
MONGODB_HOST = 'your_host'
MONGODB_PORT = 27017
MONGODB_USERNAME = None
MONGODB_PASSWORD = None
=============================================================
# You can also use envvars `export QUOKKA_MONGO_DB="yourdbname"`
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 (for media conversions) you may need the following requirements on your operating system
sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev
apk add gcc python py-pip libjpeg zlib zlib-dev tiff freetype git py-pillow python-dev musl-dev
sudo yum install libtiff-devel libjpeg-devel zlib-devel freetype-devel python-devel
Install all needed python packages
If you have a virtualenv, activate it!
source env/bin/activateorworkon env
pip install -r requirements/requirements.txt
Initial data, users and running commands
Create a superuser (required to login on admin interface)
$ manage accounts_createsuperuser
[email protected]
P4$$W0Rd
Populate with sample data (optional if you want sample data for testing)
$ manage populate
credentials for /admin will be email: [email protected] passwd: admin
Run
$ manage runserver --host 0.0.0.0 --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:
http://quokkaproject.org/documentation
If you want to help writing the docs please go to https://github.com/quokkaproject/quokkaproject.github.io
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.
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
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.
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)
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!
Because it is the happiest animal in the world!
This project is licensed under the MIT license, see LICENSE for more details.
This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to honor this code. [code-of-conduct]: http://todogroup.org/opencodeofconduct/#QuokkaProject/[email protected]
Content type
Image
Digest
sha256:39071f7c5…
Size
102.3 MB
Last updated
about 10 years ago
docker pull quokka/quokka-nginx-uwsgi