Skip to content

EdwardBetts/website

 
 

Repository files navigation

This repository holds the source code and content of the FOSDEM website (as of https://fosdem.org/).

Our website uses the nanoc static site generator, and we did implement a lot of custom code to support our workflow as painlessly as possible. Maybe some bits of those will be an inspiration or of help.

Getting started

Prerequisites

  • Ruby 2.4 or newer
  • ImageMagick >= 6.0 < 7.0
  • pngcrush
  • Either:
    1. An export of the FOSDEM pentabarf system; or
    2. Credentials to connect to the FOSDEM pentabarf database

Debian 9 with rbenv

Assuming you are running Debian or a derivative thereof, your system will need to have the following packages installed:

  • autoconf
  • bison
  • build-essential
  • git
  • libffi-dev
  • libgdbm-dev
  • libmagickcore-dev
  • libmagickwand-dev
  • libncurses5-dev
  • libpq-dev
  • libreadline6-dev
  • libssl1.0-dev
  • libyaml-dev
  • pngcrush
  • zlib1g-dev

Following the steps below should result in a working environment:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

source ~/.bashrc

rbenv install 2.7.0
rbenv rehash
rbenv local 2.7.0

gem install bundler -v 1.17.3 # we’ll upgrade to Bundler 2.x soon

git clone git@git.fosdem.org:website.git

cd website/

git remote add github git@github.com:FOSDEM/website.git

bundle install

source ~/.bashrc

Of course, if you're not using bash, replace .bashrc with the appropriate initialisation file for your shell.

Building the site

A site build consists of two steps:

  1. Export the data from the FOSDEM Pentabarf database
  2. Generate the static site using the exported data

Exporting from FOSDEM Pentabarf

To generate the schedule data from Pentabarf, you will first need to obtain a Kerberos ticket for a principal with access to the Pentabarf database. Next, you will be able to run the update command.

kinit yourprincipal@FOSDEM.ORG
nanoc update -y

If you do not have access to the Pentabarf database, you can copy the export/ folder in the sample/ directory to the root and go from there.

Generating the site

This section assumes you have an exported data from pentabarf already. If you haven't please see the section above first.

nanoc

The site will be generated in /output. To view the website, you can use the view command and optionally specify a port to listen on:

nanoc view -p 1234

Don't forget to add the year when you check out the site, eg http://localhost:1234/2022 .

Running with Docker

Rather than installing all dependencies on you machine, it is also possible to use a docker container with all specific versions.

docker build -t fosdem/website .

# Export from Pentabarf
docker run --rm -it -v $(pwd):/usr/src/app fosdem/website kinit <username>@FOSDEM.ORG && nanoc update -y
# Generate the site
docker run --rm -v $(pwd):/usr/src/app fosdem/website nanoc

# Preview the site (at http://localhost:3000/2018)
docker run --rm -v $(pwd):/usr/src/app -p 3000:3000 fosdem/website nanoc view

About

FOSDEM website

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PostScript 43.6%
  • HTML 27.6%
  • Ruby 24.7%
  • CSS 3.2%
  • Shell 0.7%
  • Makefile 0.1%
  • Dockerfile 0.1%