Overview

Japanese version of this article: (2026-06-10) みろりHP、システム面の自己紹介をする (v4.27.0)

This time, I will introduce the system side of this website. A friend I made recently got interested and asked, “What is it like to build and run a blog site fully from scratch?” So the purpose of this article is to answer that.

By “fully from scratch,” I mean that I do not use WordPress or a blog service. Instead, I build the system for displaying articles, the admin screen, and the database-related parts myself, and I also prepare and run the server and domain myself.

While I am at it, let’s also summarize some personal selling points. It feels like introducing a carefully grown bonsai to a guest.

Also, it seems my friend will read this on a smartphone, so let’s make the images vertical and easy to view on a phone.

Mirori-HP Architecture

Looking at the big picture...

  • I rent an Ubuntu server from the XServer service (about 600 yen/month)
  • I rent the mrrhp.com domain from the XServer service (about 200 yen/month)

Looking a little more closely inside the server...

  • I run Python 3.10 + a Python Django application + MySQL inside Docker containers
  • I publish it to the outside using Nginx
  • For security, I use IP restrictions and IP blocking after several failed login attempts

Looking at it together with the development environment...

  • Because it is a Docker development environment, I can develop on my own PC in almost the same state as production
  • Source code is managed on GitHub
  • CI/CD is fully set up
    • CI: automated tests run every time I change the source code
    • CD: automatic release to the server at any time I choose

What Makes Mirori-HP Good

  • It should load quickly because I use things like WebP. The PageSpeed Insights score is good.
  • The running cost is low. I think this hobby requires more knowledge the more you try to keep costs down, so I am happy that there is a positive feedback loop: trying to keep costs low = learning new methods.
  • Articles are managed in Markdown.
  • Since the environment is managed with Docker, it is easy to manage, and upgrading versions of Python, MySQL, and so on is also easy.
  • I use Python, my favorite language, so it is fun.

以下の記事からリンクされています