PassNAT LogoPassNAT

Directus 开源数据管理平台 Docker 快速部署,NAS 自建内容管理系统无公网穿透远程访问!

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

Directus 是一个实时 API 和应用仪表板,用于管理 SQL 数据库内容。它是一个功能强大的开源后端即服务(BaaS)平台,为开发者和非技术用户提供了一个统一的数据管理解决方案。

Directus 基于 Node.js 构建,支持 REST 和 GraphQL API,可以瞬间为任何 SQL 数据库提供一个高性能的 API 层。无论你是使用 PostgreSQL、MySQL、SQLite、OracleDB、CockroachDB、MariaDB 还是 MS-SQL,Directus 都能完美适配。

项目的核心特性包括:

即插即用的 API:无需迁移现有数据库,直接为你的 SQL 数据库生成 REST 和 GraphQL API

现代化的无代码仪表板:基于 Vue.js 构建的直观界面,即使非技术用户也能轻松管理数据

灵活的部署方式:支持本地部署、自托管或使用官方云服务

完全可扩展:模块化架构设计,易于定制和白标签化

强大的访问控制:细粒度的权限管理,确保数据安全

无论你是在构建 Headless CMS、内部工具、数据分析平台还是后端服务,Directus 都能为你提供一个强大而灵活的基础。

项目地址:点我跳转

部署安装

如需在外也打开项目需要配置内网穿透使用,点击前往 帕斯内网穿透,先注册好账号备用。具体的操作方法可以 点我查看内网穿透全平台上手攻略

使用 Docker Compose 快速部署

复制下列的配置文件,保存为 'docker-compose.yml':

1version: '3.8'
2
3services:
4 postgres:
5 image: postgres:15-alpine
6 environment:
7 POSTGRES_PASSWORD: directus_password
8 POSTGRES_DB: directus
9 volumes:
10 - postgres_data:/var/lib/postgresql/data
11 ports:
12 - "5432:5432"
13
14 directus:
15 image: directus/directus:latest
16 ports:
17 - "8055:8055"
18 environment:
19 KEY: your_secret_key_here
20 SECRET: your_secret_here
21 DB_CLIENT: postgres
22 DB_HOST: postgres
23 DB_PORT: 5432
24 DB_DATABASE: directus
25 DB_USER: postgres
26 DB_PASSWORD: directus_password
27 ADMIN_EMAIL: admin@example.com
28 ADMIN_PASSWORD: admin_password
29 PUBLIC_URL: http://localhost:8055
30 depends_on:
31 - postgres
32 volumes:
33 - ./uploads:/directus/uploads
34 - ./extensions:/directus/extensions
35
36volumes:
37 postgres_data:

打开飞牛 NAS 或其他的 NAS 设备,进入 Docker 管理界面。

第一步:创建数据库卷

在 NAS 上创建一个文件夹用于存储 PostgreSQL 数据,例如 '/mnt/data/directus/postgres'。

第二步:创建上传文件夹

创建用于存储上传文件的目录:'/mnt/data/directus/uploads' 和 '/mnt/data/directus/extensions'。

第三步:导入 Docker Compose 配置

将上面的配置文件复制到你的 NAS 中,然后在 Docker 管理界面中选择'从文件导入'或'从 URL 导入'。

第四步:配置环境变量

环境变量设置说明:

必须设置:

'KEY':应用加密密钥,用于加密敏感数据。建议使用随机生成的长字符串

'SECRET':应用密钥,用于签名 JWT 令牌。同样建议使用随机字符串

'ADMIN_EMAIL':管理员邮箱地址

'ADMIN_PASSWORD':管理员初始密码

'DB_PASSWORD':PostgreSQL 数据库密码

可选设置:

'PUBLIC_URL':应用的公开访问地址,用于生成正确的链接

'CORS_ENABLED':是否启用 CORS,默认为 true

'CORS_ORIGIN':允许的 CORS 源地址

其他变量保持默认即可,直接下一步启动容器。

第五步:端口配置

Directus 应用访问端口:'8055'(容器内部端口,如果 NAS 上 8055 被占用,可修改左侧的映射端口,例如改为 '8056:8055')

PostgreSQL 数据库端口:'5432'(如无特殊需求,建议保持不变)

如果提示端口被占用,只需修改冒号前面的端口号即可,容器内的端口保持不变。

第六步:启动容器

点击启动按钮,等待容器启动完成。首次启动会自动初始化数据库和创建管理员账户。

创建成功后可以访问 'http://你的NAS地址:8055' 来打开 Directus 管理界面。

使用你设置的管理员邮箱和密码登录,即可开始使用 Directus 管理你的数据库内容。

到这里就可以正常显示项目了。

使用 Docker 单命令部署(简化版)

如果你只想快速体验 Directus,可以使用以下单命令(需要提前安装 PostgreSQL):

1docker run -d \
2 -p 8055:8055 \
3 -e KEY=your_secret_key \
4 -e SECRET=your_secret \
5 -e DB_CLIENT=postgres \
6 -e DB_HOST=your_postgres_host \
7 -e DB_PORT=5432 \
8 -e DB_DATABASE=directus \
9 -e DB_USER=postgres \
10 -e DB_PASSWORD=your_db_password \
11 -e ADMIN_EMAIL=admin@example.com \
12 -e ADMIN_PASSWORD=admin_password \
13 -v /path/to/uploads:/directus/uploads \
14 directus/directus:latest

将其中的参数替换为你的实际配置即可。

总结

Directus 是一个功能完整、易于部署的数据管理平台。通过 Docker Compose,你可以在几分钟内搭建起一个完整的后端系统,无需复杂的配置。无论是用于内容管理、数据分析还是 API 服务,Directus 都能提供强大的支持。

本篇教程结束。