Typical installation

This section will show you how to install Thunor Web for testing or production use.

Thunor Web consists of several components, which are controlled together by a system called Docker Compose. Each component runs in a separate container, which makes the system modular and increases security.

A typical installation will use the following components:

  • Thunor Web application server, written in Python using the Django framework.
  • nginx web server, to handle HTTP requests
  • Postgres database server
  • Redis key-value server, used for caching time-consuming calculations and database queries.


  • Docker and Docker Compose (version 1.12 or later). Follow instructions for your platform:
  • A Python installation. Python 3.6 or later is recommended, but other versions will probably work - it is only used for the configuration script.
  • Git

If you use MacOS or Linux, you probably already have Python and git installed. If you use Windows, we recommend installing Anaconda, a Python distribution which includes lots of useful software.

Installation steps

  1. (Optional) Configure a DNS name. If you're only testing Thunor Web on your local machine and don't need network access, this step is unnecessary. A DNS name is an entry like thunor.example.com which points to the machine hosting Thunor Web (specifically, an "A record"). Contact your domain provider for further information.

  2. Retrieve the Thunor Web quick start tool using git

    git clone https://github.com/alubbock/thunor-web-quickstart thunor-web
    cd thunor-web
  3. Run the Thunor Web deploy script.

    Choose an option: (a) for local only installation (single computer), or (b) network accessible installation.

    (a) To install a local only version for testing, use:

    python thunorctl.py deploy --hostname=localhost

    OR (b) To install a network accessible version at thunor.example.com, and to activate TLS encrypted connections using certbot, use:

    python thunorctl.py deploy --hostname=thunor.example.com --enable-tls
  4. Create an admin account. You can use this to log in.

    python thunorctl.py createsuperuser

That's it! Thunor Web is now ready to start.

Starting and stopping

To start Thunor Web:

python thunorctl.py start

To stop Thunor Web:

python thunorctl.py stop

These commands must be run from the thunor-web directory.

Next steps

  • Check the installation FAQ if you're having issues.
  • Configure the system by changing settings in thunor-app.env (described in configuration options). After changing configuration values, restart Thunor Web using python thunorctl.py restart.
  • You can add and invite new users, and create user groups in the admin interface.
  • If you enabled TLS encryption, you may wish to schedule a job to renew those certificates automatically (they only last 90 days). See the section on TLS Encryption for details.


Simply stop the system with python thunorctl.py stop, then delete the Thunor Web directory (noting that this will delete all data in Thunor Web, of course).

Upgrade Thunor Web

Check your current version with:

python thunorctl.py version

To upgrade to the latest version, run:

git pull
python thunorctl.py upgrade

In production, a database backup is recommended before performing an upgrade.