Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

The FRRouting site is powered by Hugo, a static-site generator.

    Markdown files forming the basis information on the site
    HTML framing for markdown content above
    Images, CSS, PDFs etc.
    Output folder for rendered HTML files

Hugo and git are the only dependencies (aside from the web-server) and can be installed via:

apt-get install hugo git

If Hugo is not available in the system package manager it may be easily installed as a Go binary according to Hugo's install instructions.

Documenting a New Release

All releases are documented in content/release/. To add a new release, simply copy an old release file and edit its contents to reflect the new release version, date and changelog.

New Site Installation

The site is entirely static and consequently only needs to be generated when changes are made to the source directory. These steps will clone the templating code and generate HTML pages in www/ for webserver hosting:

cd /var/www
sudo git clone
cd frr-www
# Simple testing w/o nginx
hugo --bind server
# Build webpages in www/

Ensure the correct permissions on the new directories:

sudo addgroup frr-web
sudo addgroup ${USER} frr-web
sudo chgrp -R frr-web /var/www/frr-www
sudo chmod g+s /var/www/frr-www
sudo chmod g+s /var/www/frr-www/www/community
sudo chmod g+s /var/www/frr-www/www/user-guide

Finally, install the encrypted SSL certs. NOTE: Installation of SSL certs requires GPG password.

cd /var/www/frr-www
sudo cp nginx/frr.conf /etc/nginx/sites-available/frr.conf
sudo ln -s /etc/nginx/sites-available/frr.conf /etc/nginx/sites-enabled/frr.conf
sudo mkdir /etc/nginx/ssl
sudo cp nginx/frrouting.ssl.tar.gpg /etc/nginx/ssl
cd /etc/nginx/ssl
sudo gpg frrouting.ssl.tar.gpg
sudo tar xf frrouting.ssl.tar
sudo chmod u=rw *

Restart the web server and (assuming you have some files in www/ everything should come up as expected!

sudo service nginx restart

It may also be possible to automate this workflow using Git hooks.