Directus

Directus

Official

Docker app from Glassed Silver's Repository

Overview

An Instant App & API for your SQL Database. Directus wraps your new or existing SQL database with a realtime GraphQL+REST API for developers, and an intuitive admin app for non-technical users.

Directus

The Collaborative Backend for Builders & AI

Connect any SQL database and get instant REST and GraphQL APIs, a visual management Studio, and a native MCP server for AI agents.

45M+ downloads · 500K+ projects deployed

[!NOTE] Free for most organizations. Under $5M annual revenue and 50 employees? Directus is completely free. Apply for an Open Innovation Grant license and get a key in minutes. Learn more about our license.


🐇 Introduction

Directus wraps any SQL database with a REST and GraphQL API layer and a visual Studio. Engineers control schema and access. Non-technical teammates and AI agents work directly with live data. No tickets, no boilerplate.

  • REST & GraphQL APIs: Automatically generated from your database schema. No configuration required.
  • Visual Studio: A full management interface for non-technical teammates.
  • AI Assistant: Embedded in the Studio. Creates, translates, and takes direct action on your content.
  • Native MCP Server: Connect Claude, Cursor, ChatGPT, or any MCP-compatible tool directly to your data.
  • Policy-based Access Control: Granular permissions down to the field level, for humans and AI agents alike.
  • Bring your own database: Postgres, MySQL, MariaDB, MS SQL, SQLite, OracleDB, CockroachDB, and more.
  • Fully extensible: Custom endpoints, hooks, interfaces, and modules.
  • Self-host or cloud: Run locally, on your own infrastructure, or on Directus Cloud.

Learn more about Directus · Documentation


🤖 AI & MCP

Directus includes a built-in AI Assistant and a native MCP server. AI works with your live data, not a copy of it.

  • AI Assistant: Creates content, runs translations, and triggers workflows directly from the Studio.
  • Native MCP Server: Any MCP-compatible agent or tool can connect to Directus. Same access policies that apply to your team apply to AI.
  • Governed by default: AI agents operate under the same role-based permissions as human users. No special cases, no workarounds.

Read the AI & MCP docs


🚀 Directus Cloud

Directus Cloud provisions a fully managed project in under 90 seconds.

  • Centrally managed: Self-service dashboard to create and monitor all your projects in one place
  • All-in-one solution: Database, storage, and auto-scaling included with a global CDN
  • Simple setup: Select a region and get a running instance immediately

Create a Directus Cloud Project


⚡ One-Click Deployment Options

Deploy on Railway

One click. Fully provisioned with PostgreSQL, Redis, and S3-compatible storage, connected via Railway's private network.

Deploy on Railway


🙋 Community Help

The Directus Documentation is a great place to start, or explore these other channels:


❤️ Contributing

Read our Contributing Guide before submitting pull requests.

Report security vulnerabilities per our Security Policy.

Built by our core team and contributors. Thank you.


📄 License

Directus is licensed under the Monospace Sustainable Core License (MSCL) 1.0, a source-available license derived from the Fair Core License.

Free for most builders. Organizations under $5M in annual revenue and 50 employees can use Directus for free under the Open Innovation Grant.

Free Core Tier. A free tier is available to everyone to explore and build on Directus without a commercial license.

Commercial License. Organizations above those thresholds using advanced or enterprise features require a commercial license. See pricing for details.

Download Statistics

48,969,037
Total Downloads
511,383
This Month
710,534
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Details

Repository
directus/directus:latest
Last Updated2026-08-25
First Seen2021-09-02

Runtime arguments

Web UI
http://[IP]:[PORT:8055]/admin/login
Network
bridge
Shell
sh
Privileged
false
Extra Params
--restart unless-stopped

Template configuration

WebUIPorttcp

Container Port: 8055

Target
8055
Default
8055
Value
8055
Admin EmailVariable

The Direcuts Admin User Account. Feel free to change this to your email address.

Target
ADMIN_EMAIL
Default
admin@example.com
Admin PasswordVariable

The Direcuts Admin User Account. Feel free to pass your desired password here, otherwise a default password will be generated on first launch. (check logs!)

Target
ADMIN_PASSWORD
App Data/UploadsPathrw

Container Path: /directus/uploads/ This is where your files get stored you upload to and manage within Directus

Target
/directus/uploads/
Default
/mnt/user/appdata/directus/uploads/
Value
/mnt/user/appdata/directus/uploads/
App Data/ExtensionsPathrw

Container Path: /directus/extensions/

Target
/directus/extensions/
Default
/mnt/user/appdata/directus/extensions/
Value
/mnt/user/appdata/directus/extensions/
App Data/Database (SQLite)Pathrw

Only needed for SQLite environments

Target
/directus/database/
Default
/mnt/user/appdata/directus/database/
Value
/mnt/user/appdata/directus/database/
DatabaseVariable

What database client to use. One of pg or postgres, mysql, oracledb, mssql, or sqlite3.

Target
DB_CLIENT
Database HostVariable

Database host. Required when using pg, mysql, oracledb, or mssql.

Target
DB_HOST
Database PortVariable

Database port. Required when using pg, mysql, oracledb, or mssql.

Target
DB_PORT
Database NameVariable

Database name. Required when using pg, mysql, oracledb, or mssql.

Target
DB_DATABASE
Database UserVariable

Database user. Required when using pg, mysql, oracledb, or mssql.

Target
DB_USER
Database PasswordVariable

Database user's password. Required when using pg, mysql, oracledb, or mssql.

Target
DB_PASSWORD
KEYVariable

Unique identifier for the project.

SECRETVariable

Secret string for the project.

Database FilenameVariable

Where to read/write the SQLite database. Required when using sqlite3.

Target
DB_FILENAME
Postgres Connection StringVariable

When using pg, you can submit a connection string instead of individual properties. Using this will ignore any of the other connection settings.

Target
DB_CONNECTION_STRING
PUIDVariable

Container Variable: PUID

Default
99
Value
99
PGIDVariable

Container Variable: PGID

Default
100
Value
100
UMASKVariable

Container Variable: UMASK

Default
002
Value
002
TZVariable

Set your Time Zone here (e.g. Europe/Berlin)