Getting started


If you prefer using containers or have problems with configuring PostgreSQL, Redis and Elasticsearch, try Docker instructions.


Before you are ready to run Saleor you will need certain software installed on your computer.

  1. Python version 3.5.x or 2.7.x

  2. pip if you’re using an older release of Python 2.7

  3. wheel Python package if you’re using pip older than 8.1.2

  4. Node.js version 8 or above


    Debian and Ubuntu users who install Node.js using system packages will also need to install the nodejs-legacy package.

  5. webpack module bundler installed globally with:

    $ npm i webpack -g
  6. PostgreSQL version 9.4 or above

We also strongly recommend creating a virtual environment before proceeding with installation.


  1. Clone the repository (or use your own fork):

    $ git clone
  2. Enter the directory:

    $ cd saleor/
  3. Install all dependencies:

    $ pip install -r requirements.txt
  4. Set SECRET_KEY environment variable.


    Secret key should be a unique string only your team knows. It’s serious as this key is used to ensure security of your installation. Consult Django’s documentation for details.

    We try to provide usable default values for all of the settings. We’ve decided not to provide a default for SECRET_KEY as we fear someone would inevitably ship a project with the default value left in code.

    $ export SECRET_KEY='<mysecretkey>'
  5. Create PostgreSQL user:


    You need to create the user to use within your project. Username and password are extracted from DATABASE_URL environmental variable. If absent, defaults to saleor and saleor. Consult PostgreSQL’s documentation for details.

  6. Prepare the database:

    $ python migrate
  7. Install front-end dependencies:

    $ npm install


    If this step fails go back and make sure you’re using new enough version of Node.js.

  8. Prepare front-end assets:

    $ npm run build-assets
  9. Run like a normal django project:

    $ python runserver

Example data

If you’d like some data to test your new storefront you can populate the database with example products and orders:

$ python populatedb