2017/07/09

New technologies for my personal website

I wanted to update my personal web page which was running on self-hosted Wordpress.

The first problem was that I forgot the admin password.
The second problem was that a version of my Wordpress was really not actual. But I hate the update possibilities (FTP). I found http://wp-cli.org/ and it works like a charm. So my WP is now actual and hopefully secure.

Then I have realized that the styles for the page were edited by the hand (I hate you former myself!) and not by template overloading how it should be done. So the styles were gone after the template update. Of course, I have made a backup before updating, but that was the moment when I realized that this is not the best solution. I was mainly editing one page by copy pasting one HTML block.

I was using Github Pages happily for hosting my static HTML CV. But now I needed at least menu bar which is shared across all the pages. And there comes Jekyll to help. It is supported by the Github Pages directly, but if it weren't its job is to generate static HTML which perfectly suits my needs.

After creating a basic template, including the menu and copying some content (yes I know it may be exported from WP). I started thinking about the projects page and found out that collections may be used exactly for this purpose. I have now a project template which is filled by structured information stored in Markdown files (one for each project) - example. And on top of that, I may use SASS and test it in pre-packaged official Docker container.

After successfully deploying the website to Github Pages without any bigger problems I was quite happy with the progress. Now I wanted to use a custom domain. Github says no problem. After changing the DNS, I am public with my new web. But no HTTPS. Oh, of course, Github is not generating the certificates for custom domains. If you don't need that you may stop here, because Git deployment is great. But I wanted HTTPS, and there comes Firebase Hosting to help.

Firebase Hosting is issuing LetsEncrypt certificates for custom domains and it is also free (same as Github Pages). Setup is simple and deployment is just one command. After changing the DNS I am online and secure.

That was so quick that I found some spare time to generate PDF version of my CV before each deploy automatically. After figuring out that Pandoc will not help me because it omits the styles from HTML, I found wkhtmltopdf which is doing exactly what I wanted.

Now I have really painless web setup, which is free, secure, easily updatable and reliable.

You may find all the sources of my website here: https://github.com/tivvit/tivvit.github.io.