Platform for Mozilla Support
Python JavaScript HTML CSS Other
Clone or download
Failed to load latest commit information.
.circleci [Issue #2967] Update Jenkinsfile. (#3245) Jun 7, 2018
authority [Bug 1238055][Bug 1225606] Upgrade Django to 1.8. Feb 25, 2016
bin [Issue #3041] Set max tasks per celery child to 25. Jul 18, 2018
configs Remove Vagrant. Nov 20, 2017
docker Tag using GIT_SHA_SHORT Jun 11, 2018
docs [fix issue #3179] Switch product icons from sprite to real product icon. Apr 17, 2018
jsi18n Collect jsi18n files via staticfiles to get hashed filenames. Feb 24, 2016
k8s Enable feeds in production Jul 9, 2018
kitsune Fix l10n string extraction for *.ltxt Jinja templates Jul 13, 2018
media Added CORS to images Jun 11, 2013
requirements Upgrade celery and dependencies Jul 5, 2018
scripts Add surveygizmo credentials and run only on prod. Mar 13, 2018
static Simplfy static CORS rules. Jan 5, 2016
tests Move WebQA Jenkinsfile under tests dir. Nov 23, 2017
wsgi Send access log to stdout. Mar 22, 2018
.dockerignore Split dockerfiles. Nov 30, 2017
.editorconfig Add circleci. Dec 1, 2017
.env-build Update env variables Mar 1, 2018
.env-dist Preserved legacy trackEvent function, added analytics.js back to bundle Mar 21, 2018
.env-test Persistent DB connection when testing. Mar 6, 2018
.eslintrc Fix eslint problems. Dec 15, 2015
.gitignore Add commander deploy helper. Mar 16, 2018
.pre-commit-config.yaml Upgrade to pip8 Nov 20, 2017
.travis.yml Switch docker repo to mozmeao/kitsune. Nov 23, 2017
CONTRIBUTORS.rst Replace manually curated list of contributors with link to generated … May 21, 2015
Jenkinsfile Fix typo s/dockerImagePush/dockerImageTag/ Jun 11, 2018
LICENSE Fix a thing Ricky found that I missed when I fixed the other issue Apr 5, 2013
Procfile Add celery worker and cron commands. Feb 5, 2018 Update docs with local install search functionality. Jun 29, 2018
bower.json Fix Bug 1380708 implement static tabzilla Jul 31, 2017
contribute.json Update and serve contribute.json (#2905) Aug 3, 2017
docker-compose.yml Revert "Add max_allow_packet to mysql container." Mar 6, 2018
gulpfile.js Fix a lot of lint errors. Jul 29, 2015
jenkins.yml Switch docker repo to mozmeao/kitsune. Nov 23, 2017 Update docker. Nov 20, 2017
newrelic.ini Add newrelic configuration file. (#3051) Feb 8, 2018
package.json Update docker. Nov 20, 2017
setup.cfg Run tests on travis. Nov 20, 2017
tox.ini Add Jenkinsfile pipeline Nov 15, 2016


Kitsune is the platform that powers SuMo (

It is a Django application. There is documentation online.

The legacy branch contains the codebase and deployment scripts for use in the SCL3 datacenter. Only security fixes and changes to support product launches are allowed to go in.

The master branch is where the active development of Kitsune happens to modernize, containerize and bring to Kubernetes. Feature Pull Requests are not allowed in unless related with the current effort to move to Kubernetes.

You can access the staging site at

See what's deployed


To setup a local Kitsune development environment:

#. Fork this repository & clone it to your local machine.

#. Download base Kitsune docker images:

docker pull mozmeao/kitsune:base-latest
docker pull mozmeao/kitsune:base-dev-latest

#. Build Kitsune docker images. (Only needed on initial build or when packages change)

docker-compose -f docker-compose.yml -f docker/composefiles/build.yml build base
docker-compose -f docker-compose.yml -f docker/composefiles/build.yml build dev

#. Copy .env-dist to .env

cp .env-dist .env

#. Create your database

docker-compose -f docker-compose.yml -f docker/composefiles/dev.yml run web ./ migrate

#. Install node and bower packages

docker-compose -f docker-compose.yml -f docker/composefiles/dev.yml run web npm install
docker-compose -f docker-compose.yml -f docker/composefiles/dev.yml run web ./node_modules/.bin/bower install --allow-root

#. (Optional) Enable the admin control panel

echo "ENABLE_ADMIN=True" >> .env

#. Run Kitsune

docker-compose -f docker-compose.yml -f docker/composefiles/dev.yml up web

The running instance will be located at unless you specified otherwise, and the administrative control panel will be at

#. (Optional) Create a superuser

docker-compose -f docker-compose.yml -f docker/composefiles/dev.yml exec web ./ createsuperuser

#. (Optional) Create some data

docker-compose -f docker-compose.yml -f docker/composefiles/dev.yml exec web ./ generatedata

#. (Optional) Update product details

docker-compose -f docker-compose.yml -f docker/composefiles/dev.yml exec web ./ update_product_details

#. (Optional) Get search working

First, make sure you have run the "Create some data" step above.

1. Enter the web container: `docker exec -it kitsune_web_1 /bin/bash`
2. Build the indicies: `./ esreindex` (You may need to pass the `--delete` flag)
3. Precompile the nunjucks templates: `./ nunjucks_precompile`