Directus: The Powerful Open-Source Platform for Data Management

30. May 2023 — Shawn Maholick
Directus: The Powerful Open-Source Platform for Data Management

In today’s digital era, efficient data management is crucial for businesses. With the emergence of multiple data sources and formats, it becomes increasingly challenging to keep track of and effectively handle these data. This is where Directus comes into play – a powerful open-source platform for data management that assists businesses in efficiently organising, managing, and presenting their data.

What is Directus?

Directus is an advanced open-source data management platform designed to help businesses manage their data. With Directus, companies can connect and manage their databases, APIs, and file storage in one central location. Directus provides an intuitive user interface through which users can define data models, create database tables, import and export data, perform database queries, and much more.

Since the complete architectural redesign and reprogramming in Node.js, Directus 9 has undergone significant key changes compared to Directus 8. These changes have further enhanced the platform’s capabilities and user experience. Firstly, Directus 9 introduces a more flexible data modeling system, allowing users to create customized data structures and define complex relationships between tables. Additionally, the querying capabilities have been improved, enabling users to perform advanced database queries with ease.

The user interface has also been revamped, offering a more intuitive and visually appealing design. Furthermore, Directus 9 provides extensive options for data visualization, allowing users to create compelling dashboards and reports. Lastly, the scalability of the platform has been prioritized, ensuring seamless performance even with large and growing datasets. Overall, Directus 9 brings forth a range of enhancements and optimizations, making it an even more powerful and efficient data management solution.

The latest version of Directus, Directus 10, brings even more and additional features and improvements to make data management even more efficient and user-friendly. Whether you are a small startup or an established enterprise, Directus provides you with the tools you need to take control of your data.

Key Benefits of Directus

  1. Flexible Data Model: Directus allows you to create a flexible data model tailored precisely to your business requirements. You can create custom data structures, define relationships between tables, and build complex data models to optimize data organization within your organization.

  2. Powerful Data Queries: With Directus, you can perform complex database queries with ease. You can apply custom filters, sorting, and aggregations to retrieve precisely the data you need. This enables you to gain quick and accurate insights from your data.

  3. User-Friendly Interface: Directus offers an intuitive user interface that enables users to manage data quickly and easily. The interface is aesthetically designed and provides a seamless user experience, whether you are an experienced database administrator or a new user.

  4. Extensive Data Visualization: Directus allows you to visualize data in appealing dashboards and reports. With a variety of chart types and customizable visualization options, you can present data in a meaningful and easily understandable manner.

  5. Scalable Architecture: Directus 9 is designed to be scalable, adapting to the growth of your business. Whether you start with a small dataset or need to manage large volumes of data, Directus offers the flexibility and scalability you require.

Common Use Cases

Directus offers a wide range of use cases across various industries and sectors. Here are some common scenarios where Directus can be beneficial:

  1. Headless Content Management: Directus serves as a powerful headless content management system (CMS), enabling businesses to manage and deliver content across multiple platforms and channels. It provides a flexible content structure and intuitive interface for content creators to organize, update, and publish content seamlessly.

  2. Data-driven Applications: Directus is ideal for building data-driven applications, such as customer portals, internal reporting tools, and data analytics platforms. It offers robust data management capabilities, allowing developers to create custom applications that leverage structured data efficiently.

  3. API Backend: Directus serves as a reliable and scalable backend for building APIs. It provides secure data storage, flexible data modeling, and powerful API capabilities. This enables developers to develop mobile apps, single-page applications (SPAs), and other services that require efficient data management.

  4. Data Visualization and Reporting: Directus offers extensive data visualization features, including customizable dashboards and reporting functionalities. Businesses can leverage these tools to create visually appealing and informative data visualizations, track key metrics, and generate comprehensive reports.

  5. Enterprise Data Management: Directus caters to the needs of enterprise-level data management. It provides advanced user permissions, role-based access control (RBAC), and auditing capabilities, ensuring data integrity, security, and compliance. Directus enables organizations to effectively manage and govern their data across different teams and departments.

These are just a few examples of the many use cases for Directus. The platform’s flexibility, scalability, and extensive feature set make it adaptable to a wide range of data management and content delivery requirements, empowering businesses to leverage their data effectively and drive innovation.

Directus REST API

In addition to its powerful user interface, Directus also provides a robust and flexible RESTful API, allowing developers to interact with data programmatically. The Directus REST API opens up a world of possibilities for integrating Directus with external applications, customizing workflows, and building dynamic and interactive experiences.

The Directus REST API follows the principles of REST (Representational State Transfer) and adheres to industry standards, making it easy to work with and integrate into existing systems. With the API, you can perform various operations, including fetching data, creating records, updating data, and deleting records.

To interact with the Directus REST API, you make HTTP requests to specific endpoints that correspond to different resources and actions. For example, to retrieve data from a table called “products,” you would send a GET request to the /items/products endpoint. Similarly, you can use endpoints like /items, /files, and /users to work with other resources within Directus.

The API supports various request parameters, filters, and sorting options, allowing you to fine-tune your queries and retrieve specific data. You can also perform complex queries using filters, search parameters, and nested filtering options.

Directus provides detailed API documentation that outlines all available endpoints, request methods, parameters, and response formats. It’s a valuable resource for developers looking to integrate Directus with their applications.

By leveraging the Directus REST API, you can build custom integrations, develop mobile apps, create custom dashboards, and synchronize data across multiple systems. The API empowers developers to work with Directus in a way that best suits their needs, providing flexibility and extensibility to the platform.

Whether you’re building a custom frontend application, connecting Directus with third-party services, or automating data workflows, the Directus REST API offers a straightforward and efficient way to interact with your data programmatically.

Remember to refer to the Directus API documentation for in-depth information, examples, and best practices on working with the REST API and leveraging its full potential in your projects.

Getting Started

To get started with Directus, you have at least two options: the free offered Cloud Plan or using Docker Compose. Let’s take a look at both options.

Directus Cloud
Directus offers a Free Cloud plan that allows you to quickly set up and start using the platform without the need for self-hosting. To begin, you can visit the Directus website at directus.io and sign up for a free account. Once registered, you will receive a unique URL that will serve as your Directus instance. This URL will be in the format your-username.directus.site. You can access your Directus instance by navigating to that URL in your web browser.

The Free Cloud plan provides you with a fully managed Directus instance, including regular backups and security updates, making it a convenient option for getting started with the platform.

Docker Compose
If you prefer self-hosting and have experience with Docker, you can deploy Directus using Docker Compose. Docker Compose is a tool that allows you to define and manage multi-container Docker applications. By using the provided docker-compose.yaml file, you can easily set up Directus and its dependencies.

To get started with Docker Compose, you will need to have Docker and Docker Compose installed on your system. Once you have them set up, you can download the docker-compose.yaml file from the Directus GitHub repository or generate one using the Directus CLI.

Here an example, based on:

  • Directus 10.2.1 (main application)

  • Redis 7 (caching)

  • MySQL 8.0.33 (database)

  • Linux (Debian) / MacOS based host

# docker-compose.yaml

version: "3"

services:
    database:
        container_name: ${PFX}-database
        image: mysql:8.0.33
        volumes:
            - ./mysql:/var/lib/mysql
        command:
            [
                "--character-set-server=utf8mb4",
                "--collation-server=utf8mb4_unicode_ci",
                "--default-authentication-plugin=mysql_native_password",
            ]
        env_file:
            - .env 
        networks:
          int:

    # Cache
    cache:
        container_name: ${PFX}-cache
        image: redis:7.0-alpine
        networks:
          int:

    # Directus
    directus:
        container_name: ${PFX}-directus
        image: directus/directus:10.2.1
        restart: unless-stopped
        ports:
            - 8055:8055
        volumes:
            - ./uploads:/directus/uploads
        depends_on:
            - cache
            - database
        env_file:
            - .env
        networks:
          int:
networks:
  int:

In addition, please create a .env file, to pass environment variables for your Directus and MySQL instances and make sure, that both files are within the same directory.

# .env

# Docker Compose

# Prefix of your Docker Compose instances
PFX=directus_dev

# Directus

# Directus Security (see: https://docs.directus.io/self-hosted/config-options.html#security)
KEY=<yourkey>
SECRET=<yoursecret>

# Your FQDN
PUBLIC_URL=""

# Database Configuration

DB_CLIENT=mysql
DB_HOST=database
DB_PORT=3306
DB_DATABASE=<yourdatabase>
DB_USER=<youruser>
DB_PASSWORD=<yourpassword>

# Redis Cache Configuration

CACHE_ENABLED=true
CACHE_STORE=redis
CACHE_REDIS=redis://cache:6379

# Directus Default User and Password (for initial login)

ADMIN_EMAIL=<your@email.com>
ADMIN_PASSWORD=<yourpassword>

# MySQL Database Configuration

MYSQL_ROOT_PASSWORD=<yourrootpassword>
MYSQL_USER=${DB_USER}
MYSQL_PASSWORD=${DB_PASSWORD}
MYSQL_DATABASE=${DB_DATABASE}

# MySQL Database Authentication (optional)
MYSQL_AUTHENTICATION_PLUGIN="mysql_native_password"

To start the container, based on above configuration, navigate to your folder and start your instance with:

docker-compose up -d

Docker Compose will pull the necessary Docker images and start the Directus containers based on the configuration in the docker-compose.yaml file. Once the containers are up and running, you can access Directus by visiting localhost:8055 or the specific IP address and port of your Docker host in your web browser.

Using Docker Compose gives you more control and flexibility over your Directus deployment, allowing you to customize the environment to your specific requirements.

Remember to refer to the Directus documentation for more detailed instructions on setting up and configuring Directus using the Free Cloud plan or Docker Compose.

Summary

Directus is a powerful open-source platform for data management that helps businesses efficiently organize, manage, and present their data. With flexible data models, powerful querying capabilities, a user-friendly interface, extensive data visualization, and a scalable architecture, Directus provides all the tools businesses need to harness the full potential of their data. Whether you are a small or large enterprise, Directus is the ideal solution to optimize your data management and derive valuable insights from your data.

We hope this blog post has provided you with insights into the features and benefits of Directus. If you’d like to learn more about Directus or try out the platform yourself, visit the official Directus website and download the latest version. Start managing your data more efficiently and unlocking valuable insights from it today.


Ressources

Hints & Troubleshooting

Unable to upload files within Directus

The volumes created by docker-compose are owned by the current user. You need to change the ownerchip of these folders within the Directus container to node. You can use following command to achieve this.

docker-compose exec -u root <yourpfx>-directus chown -R node:node /directus/database /directus/extensions /directus/uploads

Updating Directus

If you want to update (or downgrade) Directus, you can follow these steps.

  1. Use docker-compose down to stop the instance

  2. Change the version of Directus in your docker-compose.yaml

  3. Start your instance again with docker-compose up -d

The migrations for up- and downgrading will run automatically.

Shawn Maholick

Shawn Maholick

Seasoned Tech Expert and Software Developer Sharing Insights on Organizational Scalability and Sustainable Practices for the Modern Tech Landscape.