This website
By Thijs Stessen
This website is built around Node.js and Express, with the possibility of using processes written in C#/.NET (Sudoku Solver) or python. The different components are packaged into a Docker image, allowing the website to run consistently regardless of the underlying environment. All of the following techniques were used:
- HTML, CSS & JavaScript
- Node.js & Express
- C#, .NET & Python
- Docker & Docker Compose
- Nginx
- Ubuntu Linux
- Let's Encrypt & Certbot
- DNS & IPv4/IPv6
Containerized Application
The website runs inside a Docker container and is managed with Docker Compose. The Express server listens on an internal port inside the container, while Docker exposes it only to the server itself. This keeps the application isolated from direct internet traffic.
Reverse Proxy
Incoming web traffic is handled by Nginx. Rather than exposing the Express application directly, Nginx acts as a reverse proxy and routes all requests to the correct internal component.
HTTPS
The website uses HTTPS, with TLS certificates managed autmoatically using Let's Encrypt and Certbot. This encrypts communication between visitors and the server while allowing the application itself to remain on a private local port.
Separation of Services
Thanks to the containerization and the usage of Nginx the is capable of hosting multiple independent services alongside the website. Each service can run in its own container or process and expose only the ports it requires. This allows me to also use this server for other personal projects.