How you can meet the Directus Requirements?
Directus 9 was launched in January 2022 and we're all very excited by this new version. It's a massive leap forward but also comes with many breaking changes to the requirements, noteably the drop of RHEL/Centos 7 support. For those of us who want to upgrade may need to move to a new server. In this article I'll review the requirements on Directus and how you can meet them. This page contains affiliate links which pay a commission.
Supported Operating System (OS)
You can run Directus 9 on the following systems.
Hub + Dockerfile
I recommend going with a VPS (Vitual Private Server) or VM (Virtual Machine) when hosting Directus. Most website hosts and cloud providers will support one of these systems. If you have the knowledge to maintain a server, you can choose an unmanaged VPS that will save you a lot of money. Otherwise, go for the managed VPS with peace of mind. I've collected a list of hosting companies that can host Directus and a SQL database. I recommend Centos 8 or Debian 10 as the operating system.
- Liguid Web VPS Hosting
- Namecheap VPS Hosting
- InMotion VPS Hosting (Unmanaged)
- A2 Hosting VPS
- BlueHost VPS
- GoDaddy VPS (This link will get you 30% off. To VPS options, click on the website menu, then click All Hosting. Scroll to the options and under VPS click Learn more)
- InterServer VPS
- Hostinger VPS
- eUKhost VPS
Why not Shared Hosting?
Shared hosting providers tend to offer a limited account so you will need to hope they have the required software already installed. Also, you are sharing the server resources with other hosts so there are restrictions on CPU and RAM usage. The API and Asset manager in Directus will most likely over use them and your account will be suspended.
What about Dedicated Hosting?
Dedicated Hosting will allow you full control over the hardware of your server and get you the best performance since you're not sharing the server. Your dedicated server can then host multiple VPS' of your own without paying for each one. You may choose the rent out space on your server to others or become a hosted solution for clients. For the purposes of hosting Directus, a dedicated server is not needed.
Can Directus be installed with a Web Panel?
Web Panels such as cPanel, Plesk, CloudPanel, aaPanel all support Directus but you will still need to install Directus via the command line. You'll find the panel's role is to help configure Nginx for you.
What about older systems like Centos 7?
Directus 9 contains many different packages, some of which rely on system components that need to meet the required version. Older systems tend to fall behind on updating their components or physically can't becuase it's limited by the core operating systems. During beta testing, I was able to get an early version of Directus running on Centos 7 with a few manual updates to core components however, it was a massive overhead whenever a new version of Directus was released. Eventually, further updates had broken the Centos core and I had to look at moving to Centos 8.
Supported SQL Servers
A SQL database is required for storing all your data and settings. Directus can use either local or remote connections to these SQL servers. Most options are available on Linux, Windows and MacOS.
5.7.8+ / 8+
Make sure to research all of them to find the best fit. I've been using MySQL since the early days of Directus 7 and never had any issues.
Using a Cloud Infrastructure?
If you're using a cloud infrastructure like AWS (Amazon Web Services) or Microsoft Azure, the following databases are also supported.
Note, there is some risk when using a cloud managed database that the service is updated without warning and may break Directus. If this happens, you rely on Directus releasing an update to fix it. I like to think the team is pro-active in fixing these bugs before the database upgrade but I may be wrong.
If you want total peace on mind, Directus does offer hosted options.
The following software is needed to run Directus.
Node.js and npm
For linux and unix systems, you can use the built-in package manager to install nodejs such as yum or apt-get.
Nginx is a multi-platform webserver that is very easy to configure. In my experience it out performs Apache and IIS using far less resources. Nginx can be installed using your linux package manager such as yum or apt-get. For Windows you can download the latest stable version from their website and set it up as a service using NSSM.
I've written an article on how to set up Nginx for Directus here:
Why not use IIS on Windows?
If you have the expertise to configure IIS as a proxy to Directus, by all means. In my experience Nginx is much simpler and quicker to configure. If you need to use IIS, there is a good guide here:
Systemd comes pre-installed on most linux and unix systems. It's a service manager that automatically starts applications on boot and again if they fail. The configuration files are in /etc/systemd/system/. You'll need to create a Directus configuration file in that folder.
NSSM (A non-sucking service manager) is a widely used method to add software to the windows services manager. Simply download the software and follow the tutorial from their website. NSSM needs to use the node.exe from NodeJS and the directory set to your Directus project folder. Then the command npm directus start. Most other settings are optional.
Are you ready?
So you have a server or pc ready to go with a supported OS, SQL server and Node.js installed. Now it's time to install Directus. Rather than duplicate the work, I've included the link to the Directus Documentation:
Be sure to read my article on the 4 essential steps after installing Directus.
Can't meet the Requirements?
If you can't meet the requirements or prefer a managed solution where someone else handles all the server maintenance, check out the Directus hosting plans:
So you now know the Directus system requirements and have some useful options to explore. My personal experience has been successful in linux and is a cost effective way to run Directus. Be sure to check out my other articles which will help get you started.