Blob Blame History Raw
# CentOS Website

## Overview

The [centos.org](https://www.centos.org) website is a static one, built by [Jekyll](https://jekyllrb.com/), from sources located in [git](https://git.centos.org/centos/centos.org), and then pushed out to some nodes (dns round-robin)

The workflow goes like this:

 * Git commits land on [git](https://git.centos.org/centos/centos.org)
   * either through direct push(es) (someone having RWC rights on that git repo)
   * either through PR against it, then merged
 * The node in ansible defined in `httpd-www-staging-nodes` (having the `role-httpd-www-staging.yml` playbook applied, itself importing the [httpd](https://github.com/centos/ansible-role-httpd) role and then `vhost-www-staging.yml` task from that role) will check if there are new commits in upstream git repo and if that's the case, call jekyll build command (through podman container) to build the website
 * After succesful build, that node, through specific unprivileged user key, pushes the rendered website to all nodes in the `httpd-www-nodes` 

!!! note
    Apart from the git part for website itself, some parts are rendered from other sources. For example https://www.centos.org/download/mirrors/ is rendered through same Jekyll process but with needed assets files *not* being in git, but rather dynamically fetched from https://mirror-status.centos.org (to build a current map of up2date and validated mirrors)

Also worth knowing that there are some nodes shared with the Artwork SIG in the `dev` environment (see ansible dev inventory) where they can test some layout/theme changes (like for example https://www.dev.centos.org) and then come with a PR against some roles before being rolled out everywhere