Overview

This time, we are announcing the upgrade of MidoriHP from v3 to v4.

It's all internal updates, so it doesn't concern our dear MidoriHP readers at all.

 

Let's Review the Update History of v3

 

Here Are the Changes in v4

  • Changed the development environment from Vagrant to Docker
    • Convenient and trendy!
  • Changed Python from v3.6 to v3.10
    • Convenient and trendy!
  • Changed library management from plain pip to Pipenv
    • Convenient and trendy!
  • Changed the server application from Apache to Nginx
    • Convenient... not sure, but trendy!
  • Changed the DB from MySQL v5 to MySQL v8
    • Convenient... not sure, but trendy!
  • Changed the server from CentOS to Ubuntu
    • CentOS recently ended its support. This was the biggest motivation for the move.

In short, it has become very trendy.

  • Also, changed the server rental from Sakura Internet to Xserver
    • I really liked Sakura Internet. The site was easy to navigate, the response to inquiries was good, and the impression was very positive.
    • However... Xserver is cheaper... Keeping running costs down is one of the fun parts (the more you save, the higher the skill required). Thank you for everything up until now.

 

Thoughts on the Move

The last move (v3) was in May 2019, so it took exactly 5 years to reach this upgrade. In 2024, it's common to entrust photo posting, daily records, and various other services to external providers. However, being able to maintain a small, self-operated presence on the web is one of the good things about the internet. It’s enjoyable to carefully maintain something that remains a part of your life for a long time. Isn't that what bonsai is about too?

 

Technical Reflections

  • Aaaah!! Docker is so convenient!! Even on a brand-new computer, you can set up the development environment with just one line!
  • Since the production server is built with a similar structure, "if it works on your local machine, it will work in production"!! This is the appeal of Docker.
  • This time I upgraded to Python 3.10, but thanks to Docker, future Python upgrades will be easy too!!
  • Pipenv is essential, so of course, I introduced it (suddenly serious).
  • I adopted Nginx because I heard it’s trendy (not very confident).
  • MySQL v8 is a reasonable upgrade. DB updates are one of the challenging things, but thanks to Docker, the update was relatively easy.
  • All the modules that support MidoriHP, like Django and other dependencies, have been updated to the latest versions. Most required no modifications. Thanks to third-party modules for maintaining backward compatibility.
  • MidoriHP’s front end is generated using Django’s template function. For the new version, I considered introducing a JavaScript framework like Nuxt.js or Next.js. However, after trying a bit, I decided to put it off this time. It's not recommended to start many things at once. Delays lead to overall dissatisfaction.