Welcome!
This is a (mostly static) website intended to collect my thoughts and much of my life into one place. This page will serve as a quick introduction to the website and details on how I put it together - partially for other people but mostly for me in case I want to do it again!
Please note that the content on this site is licensed under CC BY-SA-NC 4.0.
Me
My name is Sanchit Sharma, sometimes also referred to as:
- San
- Sam
- TTIO or TTIOttio (each letter pronounced separately)
- PuppyKit (hence the url)
I'm a software developer, devops person and all-round nerdy person. Head on over to my personal page for more info.
Below is my latest blog post. You can read older entries by clicking here.
Site Creation
This is a brief overview of how I developed this site, as well as how it is currently running.
The Site
This website is running on a virtual host provided by Hetzner Cloud. I've written the user-facing part of the site entirely from scratch, using vanilla javascript and HTML. This was originally a learning exercise, but I decided to keep it up as it's nice to have a central location to host things like this.
So how does it work? The code is hosted on github so feel free to browse at your leisure. The code is licensed under the Apache-2.0 license, so copy, reuse, mess around with whatever you feel like. If you have suggestions, feel free to open pull requests or issues.
The Server
This website used to be hosted on a local HPE ProLiant MicroServer Gen8. However, over time I decided to move to a virtual host. This massively improves uptime, and means that I don't need to put in the effort of maintaining my own local host.
The downside of this option, of course, is the lower specs for the price. My virtual host has only 2 vCPUs and 4 GB RAM, along with two hard drives (40GB nVME and 100GB NAS). But considering the fact that it doesn't rely on my own internet connection, is situated in a datacentre with a very fast internet connection, and has automated backups... I think the tradeoff is worth it for my own purposes.
Software
Although previously I was running my code in Openshift, I have instead decided to lean more heavily on the lower level tools for this iteration. Currently all of the content on this site is hosted via Docker containers, and these are routed by nginx.
The container running this main site is based on Tiangolo's docker image, combining meinheld, gunicorn and flask into a single docker container. I make a few small changes which you can see in my own Dockerfile. I warn you though, it's not that interesting!
As for the site code, you can see it on Github. Flask allows me to massively reduce the amount of repeated code relative to old iterations, a task I was previously doing with the help of a small piece of javascript. unfortunately, that meant that the site was unusable with javascript disabled, which is not ideal. Most of the routes in my flask application are simple renders (along with steps to ensure that the route is valid), but a handful use actual scripting. Take a look at the routes under /personal/rpgs/ if you want to check them out.
Gandi
My registrar is Gandi, although it annoys me that they spelled Gandhi wrong :p
They've been pretty easy to work with and have a good corporate philosophy in my opinion. I use their mail server as I'm not interested in setting up a mail server from scratch just yet.
To Do
There's still a few things that I want to do on here, which I haven't gotten around to.
- The contact form still doesn't do anything.
- The artificial window project page got released too early, it's not complete yet.
- RPGs should eventually have a full-text search. But effort.