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.
Requirements
- Docker and Docker Compose v2 (i.e.
docker compose
should work, without a dash). Follow instructions for your platform:- Docker for Windows
- Docker for Mac
- Docker for Linux
- Other platforms: Docker installation instructions
- 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
-
(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. -
Retrieve the Thunor Web quick start tool using git
git clone https://github.com/alubbock/thunor-web-quickstart thunor-web cd thunor-web
-
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
-
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 usingpython 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.
Uninstallation
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.