Thunor Web's full installation procedure uses Docker Compose. This gives a lot of flexibility, e.g. a database instance can be launched, or an existing one used; the system can be deployed on the local machine (the one you're running commands on), or to a remote server or cloud provider like Amazon Web Services.
To run Thunor Web on a remote machine, you can start a shell on the target machine (e.g. by SSH) and follow the typical installation. However, for advanced users, this document shows how to deploy Thunor Web on a remote server using Docker Machine, which allows you to provision containers in the cloud by command line.
- Docker and Docker Compose (version 1.12 or later). Follow instructions for your platform:
- Docker for Windows
- Docker for Mac
- Ubuntu 18.04 or later:
sudo apt install docker-compose
- Other platforms: Docker installation instructions
- Docker Machine. On Mac and Windows, this is installed along with Docker. For other platforms, see the 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're not sure if you have git, it will be provided with the Anaconda download in the previous step.
Create and activate the remote machine instance using docker-machine.
docker-machine createto create the remote instance, and follow the instructions to activate it. Docker Machine can deploy to many different remote servers including Amazon Web Services (AWS), Microsoft Azure, Digital Ocean and many others. See the list of docker-machine drivers for specifics.
Here is an simplified example for AWS, based on Docker's example:
a) Set up your docker-machine with your AWS credentials. You can do this by environment variables, or by entering your credentials into the file
[default] aws_access_key_id = AKID1234567890 aws_secret_access_key = MY-SECRET-KEY
b) Create the instance. You may wish to customize the instance size, security group, region and other options if you're doing more than a quick test (see docs):
docker-machine create --driver amazonec2 --amazonec2-open-port 80 --amazonec2-open-port 443 thunor-test
c) Activate the instance as directed by the output of the above command. On Mac and Linux, this is usually:
eval $(docker-machine env thunor-test)
On Windows, follow the instructions given by running
docker-machine env thunor-test. The machine is now active, and Docker and Docker Compose commands will affect the remote host, not the local machine. In production, we strongly recommend using a persistent volume with your provider - otherwise your data will be lost when the instance is terminated!
(Optional) Configure a DNS name. This is an entry like
thunor.example.comwhich points to the machine hosting Thunor Web. This is required if you're planning to use TLS encryption; otherwise, Thunor Web can be accessed by the instance's IP address.
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
The deploy script will automatically detect if Docker Machine is active, but you'll need to specify a remote location to install Thunor Web. On AWS using an Ubuntu instance (the default),
To access the host by IP address (no hostname), and without an encrypted connection:
python thunorctl.py deploy --thunorhome=/home/ubuntu/thunor
To access Thunor Web by hostname
thunor.example.com, and enable TLS encrypted connections:
python thunorctl.py deploy --hostname=thunor.example.com --thunorhome=/home/ubuntu/thunor --enable-tls
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
Note that stopping the Docker container doesn't delete the cloud instance (you're still getting charged!). For that, see Uninstallation, below.
- Check the installation FAQ if you're having issues.
- By default, all services will be launched on the same AWS instance.
To use an external database, for example to use PostgreSQL on
Amazon RDS, comment out (with
#symbol at start of lines) or remove the
postgressection, and update
thunor-db.envwith the server's connection details, and restart Thunor Web.
- Configure the system using settings in
thunor-app.env(described in configuration options)
- 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.
- Stop the system with
python thunorctl.py stop
- Backup the container and the local Thunor Web directory, if needed
- Deactivate Docker Machine instance with
eval $(docker-machine env --unset), or on Windows, follow the instructions given by
docker-machine env --unset
- Delete the instance with
docker-machine rm thunor-test, noting that this action is permanent.
- Delete the Thunor Web directory on your local machine
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.