Server and component architecture
See this post for details on my server infrastructure.
The website is split into different microservices which are managed in a docker-compose stack.
The backend-logic ist implemented in Node.js. It does various things:
- Delivering dynamic and static content
- Render Markdown and React to html
- Compile sass to css
- Sitemap generation
Instead of using Google-Fonts directly, I wrote a microservice that downloads, caches and delivers Google-Fonts. That means, that Google does not gain any information about the users of this website.
This part of my website is written in Kotlin/Spring Boot.
This is a very small microservice that uses the GitHub API to periodically update some information on this website (followers…). It is written in Node.js.
The site uses sass and React for templating. The server-side rendered content is cached in a Redis database.
I also use client-side React in some parts.
The services are regulary checked using an Icinga2/Graphite stack, hosted on another server.