Directus是一款开源的无头内容管理系统,基于Node.js和Vue.js开发,以BSL协议开源。Directus诞生于2014年,以数据库优先的设计理念著称,它可以直接连接到现有的SQL数据库,自动生成REST和GraphQL API,提供直观的管理界面。Directus适合开发者构建自定义内容管理系统、内部工具、数据管理平台、多端内容分发应用。
核心优势:数据库优先(直接连接现有SQL数据库)、自动生成REST和GraphQL API、直观的无代码管理界面、灵活的权限管理(RBAC)、支持多种数据库(PostgreSQL/MySQL/SQLite/Oracle/MariaDB)、Docker一键部署、完全自托管、数据完全可控。Directus是数据库驱动型无头CMS的代表。
环境要求
- 操作系统:Linux(Ubuntu/Debian/CentOS)、Windows、macOS
- Node.js版本:Node.js 18.x 或 20.x(Directus 10推荐Node 18/20 LTS)
- 数据库:PostgreSQL 13+ / MySQL 5.7.8+ / MariaDB 10.2.7+ / SQLite 3 / Oracle 19c+ / MS SQL Server
- 内存:最低1GB,推荐2GB以上
- 磁盘:至少1GB可用空间
- Web服务器:Nginx(用于反向代理,可选)
- Docker:可选,推荐使用Docker部署
安装教程
方式一:Docker部署(推荐)
步骤1:安装Docker和Docker Compose
curl -fsSL https://get.docker.com | bash
systemctl enable docker
systemctl start docker
docker --version
docker compose version
步骤2:创建docker-compose.yml
mkdir -p /opt/directus
cd /opt/directus
cat > docker-compose.yml << 'EOF'
version: "3.8"
services:
database:
image: postgres:15
volumes:
- ./database:/var/lib/postgresql/data
environment:
POSTGRES_USER: directus
POSTGRES_PASSWORD: your_strong_password
POSTGRES_DB: directus
restart: unless-stopped
directus:
image: directus/directus:10.x
ports:
- "8055:8055"
volumes:
- ./uploads:/directus/uploads
- ./extensions:/directus/extensions
depends_on:
- database
environment:
KEY: "replace-with-random-string"
SECRET: "replace-with-random-string"
ADMIN_EMAIL: "admin@example.com"
ADMIN_PASSWORD: "your_admin_password"
DB_CLIENT: "pg"
DB_HOST: "database"
DB_PORT: "5432"
DB_DATABASE: "directus"
DB_USER: "directus"
DB_PASSWORD: "your_strong_password"
WEBSOCKETS_ENABLED: "true"
restart: unless-stopped
EOF
步骤3:启动Directus
docker compose up -d
docker compose ps
访问 http://your-server-ip:8055 即可进入Directus管理界面。
方式二:手动安装(Node.js)
步骤1:安装Node.js
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
node --version
npm --version
步骤2:创建项目
cd /opt
npm create directus@latest directus-app
cd directus-app
# 按照提示选择数据库类型、填写数据库连接信息
# 创建管理员账号
步骤3:启动服务
npx directus start
Directus默认运行在8055端口。
步骤4:Nginx反向代理配置
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8055;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
步骤5:登录管理后台
访问 http://yourdomain.com,使用安装时设置的管理员邮箱和密码登录。Directus后台功能包括:数据模型管理、内容管理、用户管理、角色权限、文件管理、Webhooks、自动化流程、API文档等。
Windows环境安装
- 从Node.js官网(https://nodejs.org)下载LTS版本安装
- 安装Docker Desktop for Windows(推荐,https://www.docker.com/products/docker-desktop)
- 使用Docker Desktop运行Directus镜像,或使用命令行执行
npm create directus@latest directus-app - 按照提示配置数据库和管理员账号
- 执行
npx directus start启动服务 - 浏览器访问http://localhost:8055登录后台
宝塔面板安装(推荐)
- 安装宝塔面板,登录后在软件商店安装"Docker管理器"
- 通过Docker管理器安装PostgreSQL和Directus镜像
- 或在终端创建docker-compose.yml,执行
docker compose up -d - 在宝塔面板添加站点,配置Nginx反向代理到8055端口
- 配置SSL证书(宝塔一键部署Let's Encrypt)
- 浏览器访问域名登录Directus管理后台
服务器配置建议
- 内存:建议2GB以上,Directus + 数据库运行需要约1GB内存
- Node.js:使用LTS版本(18.x/20.x)
- 数据库:生产环境推荐PostgreSQL 15,配置innodb_buffer_pool_size=256M
- Nginx:启用gzip压缩,配置静态资源缓存
- 使用PM2或Docker管理进程,确保服务稳定运行
- 配置文件存储(本地或S3兼容存储)
- 定期备份数据库和uploads目录
- 生产环境设置KEY和SECRET为随机字符串
- 配置CORS允许的域名
常见问题
Q:Docker启动后无法访问?
A:检查容器是否正常运行:docker compose ps,查看日志:docker compose logs directus。确认8055端口已开放,Nginx配置正确。
Q:如何连接现有数据库?
A:在环境变量中配置数据库连接信息(DB_CLIENT、DB_HOST、DB_PORT、DB_DATABASE、DB_USER、DB_PASSWORD),Directus会自动检测现有表结构并生成API。
Q:如何创建数据模型?
A:在Directus后台 → 设置 → 数据模型中,点击"创建集合",定义字段(文本、数字、图片、关系等),保存后自动生成API接口。
Q:忘记管理员密码?
A:Docker环境执行:docker compose exec directus npx directus users passwd --email admin@example.com --password 新密码。手动安装执行:npx directus users passwd --email admin@example.com --password 新密码。
官方网址
Directus官网地址:https://directus.io