Ghost Installation on AlmaLinux 10 – MariaDB vs MySQL 8 Compatibility + Installing Ghost on Root Domain with DirectAdmin

Hello everyone,

I am preparing to migrate my personal site from WordPress to Ghost, and before I start the installation, I would like to clarify two important topics:

  1. MariaDB vs MySQL 8 compatibility

  2. How to properly run Ghost on the root domain while using DirectAdmin


My Server Environment

  • OS: AlmaLinux 10 (RHEL-based)

  • Control Panel: DirectAdmin

  • Web Server: Switching from LiteSpeed to Apache + PHP-FPM

  • Other components: Redis, Cloudflare, and a XenForo installation (running separately via PHP)

  • Use case: Small personal blog (~100 daily visits)

  • Default database installed: MariaDB (DirectAdmin default)

I am aware that Ghost’s documentation states that only MySQL 8 is officially supported, but I have also seen several community members running Ghost successfully on MariaDB 10.5+.


1) Questions About MariaDB vs MySQL 8

  1. As of 2025, is MySQL 8 still strictly required for Ghost, or is MariaDB (10.5+) acceptable for small, non-critical, low-traffic personal blogs?

  2. Are there known issues with MariaDB, such as:

    • migration problems during major upgrades (e.g. v5 → v6)

    • JSON field handling differences

    • strict mode / charset inconsistencies

  3. If I start with MariaDB for convenience, is it safe to migrate to MySQL 8 later, or does Ghost rely on MySQL-specific features that may cause issues?

MariaDB would be easier for me because it comes preinstalled with DirectAdmin, but I am willing to install MySQL 8 separately if strongly recommended.


2) Additional Question: Running Ghost on the Root Domain with DirectAdmin

I want to run Ghost on my main domain example.com (not a subdomain), and I want it to serve from the root path /.

Since DirectAdmin sets public_html as the default document root, and Ghost runs as a Node.js service in its own directory, I’d like to confirm the correct approach.

Is the following method the recommended setup?

  1. Install Ghost in a separate directory such as:
    /home/username/ghost/

  2. Run Ghost internally on its default port (e.g. localhost:2368)

  3. In DirectAdmin, add the following reverse proxy rules to the Custom HTTPD configuration of the domain:


ProxyPass "/" "http://127.0.0.1:2368/"
ProxyPassReverse "/" "http://127.0.0.1:2368/"

  1. Keep SSL management entirely on Apache using DirectAdmin’s built-in Let’s Encrypt integration

Additional clarity I need:

  • Should public_html remain empty when using Ghost as the root service?

  • Does .htaccess become irrelevant since Apache is only acting as a reverse proxy?

  • In DirectAdmin, which specific Custom HTTPD location is recommended for adding the ProxyPass configuration (top, bottom, or a dedicated override section)?


My Goal

I want to choose the most reliable setup for:

  • running Ghost on AlmaLinux through DirectAdmin

  • determining whether MariaDB is safe enough for a simple blog

  • or whether installing MySQL 8 separately is the strongly advised path

Any guidance or official clarification regarding both the database choice and DirectAdmin root-domain configuration would be greatly appreciated.

Thank you!

Either or, I strongly recommend MySQL overall as that’s the official supported SQL database.

1 Like

I would not run MariaDB without a really compelling reason. It might work. It might not work. It might seem like its working, and then you might run into some annoying bug that renders your site unusable, messes up your subscriptions, or otherwise is a problem. Ghost is not tested on MariaDB. Period. Full stop.

If installing MySQL manually seems like too much trouble, that might be an indication that you should not self-host.

It’s likely that someone here has done a migration or two with MariaDB, but that doesn’t tell you that all future migrations (or even all possible combinations of past versions) will work.

If you do hit problems, you’re going to have more trouble getting help with the problem. If the problem is reproducible on MySQL, it’ll get patched. If it isn’t? You’re quite possibly on your own.

TL;DR: It’s a good idea when possible to match the environment the dev team is working in.

#2) Generically, yes you want Ghost listening on localhost:2368, and a proxy sitting out in front and handling the ssl. I haven’t used DirectAdmin, so no specific advice there.

3 Likes