Running the Galaxy Training material website locally


question Questions
  • How to setup the infrastructure to build training webpages?

objectives Objectives
  • Installing packages needed for rendering the webpage

  • Running the GTN material website locally

  • Tracking changes to the content live in the webbrowser

time Time estimation: 15 minutes

Supporting Materials

last_modification Last modification: Mar 5, 2020


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.


In this tutorial, you will learn how to run a local instance of the GTN website:

  1. Installation of the requirements
  2. Checking the website generation
  3. Stopping the server

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.

hands_on Hands-on: Install the requirements

  1. Open a Terminal
  2. (If not done yet) Clone the training material GitHub repository: git clone
  3. Navigate to the training-material/ folder with cd
  4. Set 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.

    1. Install conda (if not already installed): make install-conda
    2. Create the galaxy_training_material conda environment: make create-env
  5. Install Jekyll and related modules into the conda environment: make install

details Troubleshooting libxml2 errors

If you encounter an error about libxml2 on Linux, please try to install libxml2-dev (executing sudo apt install libxml2-dev) if on Debian/Ubuntu or libxml2-devel (executing sudo yum install libxml2-devel) if on Fedora/RedHat/CentOS, and re-run make install .

Checking the website generation

Once Jekyll and its modules are installed in our conda environment, we can check the generation of the website locally:

hands_on Hands-on: Checking the website generation locally

  1. Run a local Jekyll server with make serve
  2. Visualize at http://localhost:4000/training-material/
  3. Edit one of the tutorials:
    • For example, open topics/introduction/tutorials/galaxy-intro-peaks2genes/ in 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

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).

tip Tips

  1. 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 root path above to wherever you cloned the training material folder)

  2. Need to speed up the cloning step? You coud fetch only the latest commit of the master branch:

    git clone --depth 1 --branch master

Stopping the server

Once you are done, you can stop the server and cleaning your repository.

hands_on Hands-on: Stoping the server

  1. Stop the server with CTRL-C
  2. Clean the repository: make clean


keypoints Key points

  • Checking the generated website can be done locally


Did you use this material as an instructor? Feel free to give us feedback on how it went.

Click here to load Google feedback frame

Citing this Tutorial

  1. Bérénice Batut, Björn Grüning, Saskia Hiltemann, 2020 Running the Galaxy Training material website locally (Galaxy Training Materials). /training-material/topics/contributing/tutorials/running-jekyll/tutorial.html Online; accessed TODAY
  2. Batut et al., 2018 Community-Driven Data Analysis Training for Biology Cell Systems 10.1016/j.cels.2018.05.012

details BibTeX

    author = "Bérénice Batut and Björn Grüning and Saskia Hiltemann",
    title = "Running the Galaxy Training material website locally (Galaxy Training Materials)",
    year = "2020",
    month = "03",
    day = "05"
    url = "\url{/training-material/topics/contributing/tutorials/running-jekyll/tutorial.html}",
    note = "[Online; accessed TODAY]"
        doi = {10.1016/j.cels.2018.05.012},
        url = {},
        year = 2018,
        month = {jun},
        publisher = {Elsevier {BV}},
        volume = {6},
        number = {6},
        pages = {752--758.e1},
        author = {B{\'{e}}r{\'{e}}nice Batut and Saskia Hiltemann and Andrea Bagnacani and Dannon Baker and Vivek Bhardwaj and Clemens Blank and Anthony Bretaudeau and Loraine Brillet-Gu{\'{e}}guen and Martin {\v{C}}ech and John Chilton and Dave Clements and Olivia Doppelt-Azeroual and Anika Erxleben and Mallory Ann Freeberg and Simon Gladman and Youri Hoogstrate and Hans-Rudolf Hotz and Torsten Houwaart and Pratik Jagtap and Delphine Larivi{\`{e}}re and Gildas Le Corguill{\'{e}} and Thomas Manke and Fabien Mareuil and Fidel Ram{\'{\i}}rez and Devon Ryan and Florian Christoph Sigloch and Nicola Soranzo and Joachim Wolff and Pavankumar Videm and Markus Wolfien and Aisanjiang Wubuli and Dilmurat Yusuf and James Taylor and Rolf Backofen and Anton Nekrutenko and Björn Grüning},
        title = {Community-Driven Data Analysis Training for Biology},
        journal = {Cell Systems}

congratulations Congratulations on successfully completing this tutorial!

Developing GTN training material

This tutorial is part of a series to develop GTN training material, feel free to also look at:
  1. Overview of the Galaxy Training Material
  2. Contributing with GitHub via command-line
  3. Contributing with GitHub via its interface
  4. Creating a new tutorial
  5. Creating a new tutorial - Creating Interactive Galaxy Tours
  6. Creating a new tutorial - Defining the technical infrastructure
  7. Creating a new tutorial - Slides
  8. Creating a new tutorial - Writing content in Markdown
  9. Generating PDF artefacts of the website
  10. Including a new topic
  11. Running the Galaxy Training material website locally