Torchbox.com on Wagtail
This is the main Torchbox.com website.
Setting up a local build
This repository includes
docker-compose configuration for running the project in local Docker containers,
and a fabfile for provisioning and managing this.
The following are required to run the local environment. The minimum versions specified are confirmed to be working: if you have older versions already installed they may work, but are not guaranteed to do so.
- Docker, version 19.0.0 or up
- Docker Compose, version 1.24.0 or up
- Install instructions (Linux-only: Compose is already installed for Mac users as part of Docker Desktop.)
- Fabric, version 2.4.0 or up
- Python, version 3.6.9 or up
Note that on Mac OS, if you have an older version of fabric installed, you may need to uninstall the old one and then install the new version with pip3:
pip uninstall fabric pip3 install fabric
You can manage different python versions by setting up
Running the local build for the first time
If you are using Docker Desktop, ensure the Resources:File Sharing settings allow the cloned directory to be mounted in the web container (avoiding
mounting OCI runtime failures at the end of the build step).
Starting a local build can be done by running:
git clone [URL TO GIT REMOTE] cd tbx fab build fab start fab sh
Then within the SSH session:
./manage.py migrate ./manage.py createcachetable ./manage.py createsuperuser ./manage.py runserver 0:8000
The site should be available on the host machine at: http://127.0.0.1:8000/
There are 2 ways to run the frontend tooling:
With the frontend docker container (default)
After starting the containers as above and running
./manage.py runserver 0:8000, in a new
terminal session run
fab npm start. This will start the frontend container and the site will
be available on port :3000 using browsersync. E.G
To run the FE tooling locally. Create a
.env file in the project root (see .env.example) and add
fab start will now run the frontend container and you can start npm locally instead
There are a number of other commands to help with development using the fabric script. To see them all, run:
Frontend npm packages can be installed locally with npm, then added to the frontend container with fabric like so:
npm install promise fab npm install
Installing python packages
Python packages can be installed using poetry in the web container:
fab sh-root poetry install wagtail-guide
staging will automatically trigger a deployment to the production and staging sites, respectively.