Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
_ansible
_docker
_includes
_layouts
_plugins
_posts
_sass
api
assets
sharing
.dns.json
.dns.sh
.gitignore
.gitmodules
.optimize-images.sh
.socialproof.php
404.md
410.md
CONTRIBUTING.md
Dockerfile
Gemfile
Gemfile.lock New article: https://pasztor.at/blog/lxc-vs-docker Mar 8, 2018
README.md
_config.yml
_disavow.txt
blog.md
contact.md
cv.md
discord.php
facebook.php
feed.xml
google5fde0449dd0dc503.html
gpg.txt
imprint.md
index.md
patreon.php
privacy.md
projects.md
recommendations.php
robots.txt
sitemap.xml
speaking.md
terms.md
twitter.php
videos.md
workshops.md New article: https://pasztor.at/blog/lxc-vs-docker Mar 8, 2018
youtube.php

README.md

Abstract

This is the Jekyll and architecture source code of the pasztor.at website.

Support me

If you want to support me in crazy endeavours like this, you can do so on

Patreon

(Click the image to go to my Patreon page.)

License

Text and images are protected by copyright, everything else is free for learning / copypasting.

Contents

Notable parts of this repository:

  • _ansible: contains the Ansible source code to deploy the CDN behind the website
  • _docker: contains the Docker containers running on the aforementioned CDN
  • _includes, _layouts, _plugins, _sass: Jekyll theme stuff
  • _posts: Blog posts and events for Jekyll
  • assets: Contains graphics and other assets for the site.
  • .build.sh: The Jekyll build script
  • .cssh.sh: Cluster SSH to all CDN nodes
  • .deploy.sh: rsync script to deploy the generated content
  • .dns.json: The Route53 DNS settings
  • .dns.sh: The script to deploy Route53 DNS settings
  • .optimize.sh: Script to optimize PNG images using optipng

About the CDN

The CDN is a collection of machines that receive requests based on latency via Amazon Route53. The theory behind it is described in this blog post. The CDN is deployed using Ansible.

Each node is running three servers: traefik to handle SSL and forward requests, nginx to serve the actual content and PHP-FPM to handle PHP requests. These nodes are run in separate Docker contaienrs using docker-compose.

Content is deployed using rsync after it is generated by Jekyll.