Starting a Self-hosted Blog
Testing
Iβm a professional iOS developer - most of the web development world is unknown to me. I have done some small projects at work with SAPUI5, but I have to admin I was never really good at it. But, I think any good developer should know a little bit of everything, and that includes diving into some web development. A lot of developers also have blogs and personal sites hosted on places like Medium or GitHub pages. So, I wanted to get my feet wet - but rather than hosting on GitHub pages or writing posts on Medium, I wanted to self-host all the way.
I knew I wanted to start off with a static site using Jekyll. Jekyll caters super well to blogs, with tons of readily available themes and markdown-powered posting. Itβs a good way for me to start my web learning journey π.
I also knew that I wanted to self-host. Something like GitHub pages is enticing, and super quick to set up. But by self-hosting, I can learn some more about setting up a web server, a good CI/CD pipeline, linting, and server hardening.
Overview
I spent some time planning what I wanted my web stack to look like, but as this project goes on odds are some of this will change π As I figure out & create my site, I will write some blogs detailing the entire setup β
Key Components
- Jekyll: Static website generator to be used for the content of the site.
- Docker: Will run Jekyll & a web server in a container for easy local environment and production deployment.
- Server: Probably a DigitalOcean droplet or cheap dedicated server.
- CI/CD: GitHub actions to build, lint, and deploy the site automatically.
- CDN: Cloudflare to provide a speedy site.
Step by Step Blog Series
Sneaky edit months laterβ¦
- I explain how to run a local development environment: Running Jekyll with Docker
- I describe my development GitHub & mobile development workflow: My Jekyll Workflow
- Showing how to set up spellcheck and linting actions: Setting up Jekyll Spellcheck & Linting using GitHub Actions
- Setting up automated build & deploy of a Jekyll site: Setting up Automatic Build & Deploy of a Jekyll Blog