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:
-
MariaDB vs MySQL 8 compatibility
-
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
-
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?
-
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
-
-
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?
-
Install Ghost in a separate directory such as:
/home/username/ghost/ -
Run Ghost internally on its default port (e.g.
localhost:2368) -
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/"
- Keep SSL management entirely on Apache using DirectAdmin’s built-in Let’s Encrypt integration
Additional clarity I need:
-
Should
public_htmlremain empty when using Ghost as the root service? -
Does
.htaccessbecome 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!