| layout | title | questions | objectives | time_estimation | key_points | contributors | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
tutorial_hands_on |
Running the Galaxy Training material website locally |
|
|
15m |
|
|
Introduction
{:.no_toc}
If you want to run the entire GTN material website locally or test your new training material you can do this!
Currently, the website is generated from the metadata and the tutorials using Jekyll, a simple static site builder. We can use Jekyll to run a server to check if the tutorial is correctly added and rendered.
Agenda
In this tutorial, you will learn how to run a local instance of the GTN website:
- TOC {:toc}
{: .agenda}
Installation of the requirements
The first step is to install the needed tools inside a conda environment. A conda environment is a directory that contains a specific collection of packages. For example here to run the website, we need ruby, pandas, requests, etc. By creating a conda environment and installing the needed tools there, we do not affect your main installation.
This step has to be done once.
{% icon hands_on %} Hands-on: Install the requirements
Open a Terminal
(If not done yet) Clone the training material GitHub repository:
git clone https://github.com/galaxyproject/training-material.gitNavigate to the
training-material/folder withcdSet up the conda environment
It will install some needed tools (ruby, nodejs, etc) in a protected environment, without interfering with the existing tools or versions.
- Install conda (if not already installed):
make install-conda- Create the
galaxy_training_materialconda environment:make create-envInstall Jekyll and related modules into the conda environment:
make install{: .hands_on}
{% icon details %} Troubleshooting
libxml2errorsIf you encounter an error about libxml2 on Linux, please try to install
libxml2-dev(executingsudo apt install libxml2-dev) if on Debian/Ubuntu orlibxml2-devel(executingsudo yum install libxml2-devel) if on Fedora/RedHat/CentOS, and re-runmake install. {: .details}
Checking the website generation
Once Jekyll and its modules are installed in our conda environment, we can check the generation of the website locally:
{% icon hands_on %} Hands-on: Checking the website generation locally
- Run a local Jekyll server with
make serve- Visualize at http://localhost:4000/training-material/
- Edit one of the tutorials:
- For example, open
topics/introduction/tutorials/galaxy-intro-peaks2genes/tutorial.mdin a text editor of your choice.- Make some changes to the Introduction paragraph, and save the file.
- Refresh the tutorial page in your browser until you can see the changes you made.
- this may take a little bit of time; in the terminal you can monitor when the regeneration is complete
{: .hands_on}
With make serve, a local Jekyll server will run in background. It will check the changes and regenerate the website accordingly. You may need to reload the page to see the changes (and sometimes to wait 1-2 minutes).
{% icon tip %} Tips
Running on a VM or remote machine? If you are not running this on your local machine, but e.g. on a VM, you may need to configure a webserver to serve the website.
Below is an example NGINX configuration (e.g. in
/etc/nginx/sites-enabled/default)location /training-material/ { root /home/ubuntu/training-material/_site/; }(Change the
rootpath above to wherever you cloned the training material folder)Need to speed up the cloning step? You coud fetch only the latest commit of the master branch:
git clone https://github.com/galaxyproject/training-material.git --depth 1 --branch master
{: .tip}
Stopping the server
Once you are done, you can stop the server and cleaning your repository.
{% icon hands_on %} Hands-on: Stoping the server
- Stop the server with CTRL-C
- Clean the repository:
make clean
{: .hands_on}
Conclusion
{:.no_toc}