Manual installation


The following documentation is deprecated. The approved installation is via Docker.

Getting Fancy


On your dev machine, MySQL probably needs some tweaks. Locate your my.cnf (or create one) then, at the very least, make UTF8 the default encoding:


Here are some other helpful settings:


On Mac OS X with homebrew, put my.cnf in /usr/local/Cellar/mysql/5.5.15/my.cnf then restart like:

launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist


some of the options above were renamed between MySQL versions

Here are more tips for optimizing MySQL on your dev machine.

RabbitMQ and Celery

See the Celery page for installation instructions. The example settings set CELERY_TASK_ALWAYS_EAGER = True. If you’re setting up Rabbit and want to use celery, make sure you remove that line from your


See Elasticsearch for more instructions.


On OS X the package is called redis. Get it running with the launchctl script included in homebrew. To let olympia know about Redis, add this to

REDIS_BACKEND = 'redis://'

The REDIS_BACKEND is parsed like CACHE_BACKEND if you need something other than the default settings.


Node.js is needed for Stylus and LESS, which in turn are needed to precompile the CSS files.

If you want to serve the CSS files from another domain than the webserver, you will need to precompile them. Otherwise you can have them compiled on the fly, using javascript in your browser, if you set LESS_PREPROCESS = False in your local settings.

First, we need to install node and npm:

brew install node
curl | sh

Optionally make the local scripts available on your path if you don’t already have this in your profile:

export PATH="./node_modules/.bin/:${PATH}"
Not working?

Stylus CSS

Learn about Stylus at

cd olympia
npm install

In your ensure you are pointing to the correct executable for stylus:

STYLUS_BIN = path('node_modules/stylus/bin/stylus')


We’re slowing switching over from regular CSS to LESS. You can learn more about LESS at

If you already ran npm install you don’t need to do anything more.

In your ensure you are pointing to the correct executable for less:

LESS_BIN = path('node_modules/less/bin/lessc')

You can make the CSS live refresh on save by adding #!watch to the URL or by adding the following to your

If you want syntax highlighting, try:

Generating additional add-ons


If you previously used the make full_init command during the Installing Olympia the long way process, it’s not necessary to generate additional add-ons for initialisation/development purpose.

If you need more add-ons, you can generate additional ones using the following command:

python generate_addons <num_addons> [--owner <email>] [--app <application>]

where num_addons is the number of add-ons that you want to generate, email (optional) is the email address of the owner of the generated add-ons and application (optional) the name of the application (either firefox, thunderbird, seamonkey or android).

By default the email will be and the application will be firefox if not specified.

Add-ons will have 1 preview image, 2 translations (French and Spanish), 5 ratings and might be featured randomly.

If you didn’t run the make full_init command during the Installing Olympia the long way process, categories from production (Alerts & Updates, Appearance, and so on) will be created and randomly populated with generated add-ons. Otherwise, the existing categories will be filled with newly generated add-ons.