Bombolone is a tasty Content Management System for Python based on Flask, MongoDB, AngularJS, Sass and Bootstrap. It's designed to be a simple, flexible toolset for projects of any size.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Bombolone version 0.3.3

Bombolone is a tasty Content Management System for Python based on Flask, MongoDB, AngularJS, Sass and Bootstrap. It's designed to be a simple, flexible toolset for projects of any size.

Based from the Python and Angular implementation of

Important dependecies

Before starting check if you have all you need.

# Install Homebrew
ruby -e "$(curl -fsSL"

# Install MongoDB
brew install mongodb

# Install Virtualenv
sudo pip install virtualenv

Important, if you use a Mac OSX please install the commandline tools manually from Apple's Developer site.…

Quick start

Just for running a new app let's follow these 6 steps.

# Clone the latest stable version in your new web app folder
git clone --branch 0.3.3 new_app && cd new_app

# Run Mongodb
sudo mongod

# Create your own environment from the new_app folder
virtualenv venv && . venv/bin/activate

# Install libraries
python install && cd bombolone

# Init Bombolone Mongodb
bombolone bake

# Run Bombolone 
bombolone serve

Registered users are:

  • Admin with username 'admin' and password 'admin123'
  • User with username 'user' and password 'user123'


Sometimes you simply don’t need to use all the features of a CMS. Bombolone lets you have a good core, with five modules are essential for almost all web applications.

You can control them from the administration panel, and each has different tools to edit, create or delete. It's important to note that beginning the application has two types of users: administrators and users. Administrator can do everything. Users can only edit content and other little things, but configurable to allow multiple levels of access depending on rank.

Core Modules


Allows user administration:

  • Administrators : can create, modify or delete users.
  • Users : can only read the account list by default.


The rank module allows you to see what ranks are available.


Allows you to quickly create dynamic and static pages.

  • Administrators : can create, edit, modify or delete pages.
  • Users : can edit any content pages by default.


From here you can decide which languages you want the site to use.


With the HashTable module you can create different hashmap be used inside modules or the site.

  • Administrators : can create, edit, modify or delete hash map.
  • Users : can edit any content of hash map by default.

How compile CSS

Setting up the ruby environment

gem update --system
gem install compass
gem install compass-h5bp

In a new tab with the same path run Compass

compass watch

Fabric command-line

We use Fabric to provide a basic suite of operations for executing local or remote shell commands, as well as auxiliary functionality such as prompting the running user for input, or aborting execution. If you find trouble to installing Fabric, you can check this page.

pip install fabric
sudo pip install yuicompressor

Available commands:

Check if is running the MongoDB database

fab check_database

Init the basic database

fab init_database            
fab local_backup

Minify .js files that have been changed since last run

fab minify                   
fab mongodb_restore
fab update
fab write_db_in_config



Run python test


Js Unit/Integration Tests

Before run the test, you need install some dependecies. Download and install Node from If you never use Protractor before you can have a quick intro here.

# Install Nvm
curl | bash

# Select Nvm
nvm alias default v0.10.29

# Installing all node packaged modules
npm install

# Install Protractor global
npm install -g protractor

# Install Selenium
webdriver-manager update

Run Unit tests

npm test

Run Integration tests not log in

webdriver-manager start
protractor conf.js

Run Integration tests as admin

webdriver-manager start
protractor conf.js --params.admin true --params.login.user 'admin' --params.login.password 'admin123'

Who we are

Python and Javascript Lovers!

The project was created by @zizzamia.

Contributors: @jibbolo, @proudlygeek, @diegor, @danmaccauro, @bernarpa.

The logo was designed by @FakeSamGregory.


  • BSD