Background
I’ve been using the handle cybersamurai
for as long as I’ve had this domain, and that’s more than just a few years. For most of that time, I’ve left my homepage as nothing but a basic “check back later!” message.
cybersamur.ai homepage for several years
I’ve hated looking at it the whole time, but I found the process of building my website in pure HTML just a bit too much of an undertaking. That was until someone recommended I start a blog.
I’ve always thought blogs a bit corny; there’s not much credibility associated with self-publishing something that hasn’t been peer-reviewed. I had no interest in being just another guy putting out nonsense on the internet. I mostly just wanted to showcase my personal projects with my website and build some kind of fancy portfolio. But after that fateful conversation, it hit me: what’s a better way to show the world what I’m working on than a blog?
In the networking world, blogs are often highly-valued resources for setting up new services and configuring systems effectively. In security competitions, testers often use platforms like Medium or even their own personal blogs to publish their challenge writeups. It occurred to me that blogs are more than just someone trying to masquerade as credible; they’re showcasing their work and (hopefully) even telling you how to reproduce it. Perhaps their work isn’t peer-reviewed, but if the reader can easily get the same results, doesn’t that make the author credible enough?
Jekyll Blogs
I had previously heard the name Jekyll thrown around many times but had absolutely no clue what it really did until very recently. Given my newfound need for a blog, I decided I would experiment with it and in doing so discovered it would make my life so much simpler.
I found a cool theme and decided I was willing to fork over some cash just to hit the ground running. It took me a little to get the hang of it, but I managed to set up a nice GitHub CI/CD workflow that would build and deploy my changes reliably:
name: Jekyll site CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Pull to Web Host and Build
uses: appleboy/ssh-action@master
with:
host: $
username: $
key: $
port: $
script: |
cd $
git pull
mkdir -p _site
docker run \
-v $/jekyll:/srv/jekyll \
-v $/_site:/srv/jekyll/_site \
jekyll/builder:latest /bin/bash -c "chmod -R 777 /srv/jekyll && jekyll build --future"
Granted, it’s not perfect, but it significantly reduces the amount of time I used to spend pulling my changes down and fighting with Git’s many nuances. CI/CD to a production server certainly isn’t best practice but in these beginning stages I’m not overly concerned about my site’s stability.
Goals
I’m still figuring all this out, but at the very least I know that I’ve got a lot of works to showcase, and someday it’ll all see the light of day. Perhaps I’ll start putting out my own HackTheBox or CTF writeups, or maybe put out some detailed documentation on my new homelab project. Things may change quite a lot down the road, but that’s okay - I’m always trying to improve upon myself and go beyond anything I’ve ever done before.