Running the GTN website locally

  • How to setup the infrastructure to build training webpages?

  • Installing packages needed for rendering the webpage

  • Running the GTN material website locally

  • Tracking changes to the content live in the webbrowser

Time estimation: 15 minutes
Supporting Materials:
Last modification: Oct 18, 2022
License: Tutorial Content is licensed under Creative Commons Attribution 4.0 International License The GTN Framework is licensed under MIT


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. Introduction
  2. Installation of the requirements
  3. Checking the website generation
  4. Stopping the server
  5. Conclusion

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.

We also need to make sure that a couple of other utilities and build requirements are present: git, curl & make. The easiest way to install these is with your package manager of choice - i.e. yum, apt, brew etc.

Hands-on: Install the requirements
  1. Open a Terminal
  2. Use your package manager to install git, curl and make

    • For Debian/Ubuntu: sudo apt update && sudo apt install git curl make
    • For Fedora/CentOs/RedHat: sudo yum install git curl make
  3. (If not done yet) Clone the training material GitHub repository: git clone
  4. Navigate to the training-material/ folder with cd
  5. 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. (You may need to exit the terminal and re-open for conda to be recognised. Navigate back to the same place.)
    3. Create the galaxy_training_material conda environment: make create-env
  6. Install Jekyll and related modules into the conda environment: make install

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: Checking the website generation locally
  1. Run a local Jekyll server with make serve-quick
  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-quick, 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).

  1. Use make serve instead of make serve-quick to get all plugins, but also configure the post, host and pass additional flags. This however can be quite slow.

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

    $ git clone --depth 1 --branch main
  3. 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

Stopping the server

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

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


Key points
  • Checking the generated website can be done locally

Frequently Asked Questions

Have questions about this tutorial? Check out the tutorial FAQ page or the FAQ page for the Contributing to the Galaxy Training Material topic to see if your question is listed there. If not, please ask your question on the GTN Gitter Channel or the Galaxy Help Forum


Did you use this material as an instructor? Feel free to give us feedback on how it went.
Did you use this material as a learner or student? Click the form below to leave feedback.

Click here to load Google feedback frame

Citing this Tutorial

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

author = "Bérénice Batut and Björn Grüning and Saskia Hiltemann",
title = "Running the GTN website locally (Galaxy Training Materials)",
year = "",
month = "",
day = ""
url = "\url{}",
note = "[Online; accessed TODAY]"
	doi = {10.1371/journal.pcbi.1010752},
	url = {},
	year = 2023,
	month = {jan},
	publisher = {Public Library of Science ({PLoS})},
	volume = {19},
	number = {1},
	pages = {e1010752},
	author = {Saskia Hiltemann and Helena Rasche and Simon Gladman and Hans-Rudolf Hotz and Delphine Larivi{\`{e}}re and Daniel Blankenberg and Pratik D. Jagtap and Thomas Wollmann and Anthony Bretaudeau and Nadia Gou{\'{e}} and Timothy J. Griffin and Coline Royaux and Yvan Le Bras and Subina Mehta and Anna Syme and Frederik Coppens and Bert Droesbeke and Nicola Soranzo and Wendi Bacon and Fotis Psomopoulos and Crist{\'{o}}bal Gallardo-Alba and John Davis and Melanie Christine Föll and Matthias Fahrner and Maria A. Doyle and Beatriz Serrano-Solano and Anne Claire Fouilloux and Peter van Heusden and Wolfgang Maier and Dave Clements and Florian Heyl and Björn Grüning and B{\'{e}}r{\'{e}}nice Batut and},
	editor = {Francis Ouellette},
	title = {Galaxy Training: A powerful framework for teaching!},
	journal = {PLoS Comput Biol} Computational Biology}


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. Creating a new tutorial
  2. Contributing with GitHub via command-line
  3. Overview of the Galaxy Training Material
  4. Creating Slides
  5. Creating content in Markdown
  6. Adding Quizzes to your Tutorial
  7. Principles of learning and how they apply to training and teaching
  8. Design and plan session, course, materials
  9. Including a new topic
  10. Contributing with GitHub via its interface
  11. Teaching Python
  12. Creating Interactive Galaxy Tours
  13. Updating diffs in admin training
  14. GTN Metadata
  15. Tools, Data, and Workflows for tutorials
  16. Running the GTN website online using GitPod
  17. Running the GTN website locally
  18. Adding auto-generated video to your slides
  19. Generating PDF artefacts of the website