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.comdomain 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.