Getting Started
Get up and running with nuxt-directus-sdk in minutes.
Installation
Install the module using your package manager:
npm install nuxt-directus-sdkyarn add nuxt-directus-sdkpnpm add nuxt-directus-sdkbun add nuxt-directus-sdkConfiguration
Add the module to your nuxt.config.ts:
export default defineNuxtConfig({
modules: ['nuxt-directus-sdk'],
directus: {
},
})Environment Variables
Create a .env file in your project root:
DIRECTUS_URL=https://your-directus-instance.com
DIRECTUS_ADMIN_TOKEN=your_admin_token_hereEnvironment Variables Explained
DIRECTUS_URL(required): Your Directus instance URLDIRECTUS_ADMIN_TOKEN(optional): Admin token for type generation and admin operations
Directus Configuration
For the module to work properly, you need to configure your Directus instance:
Basic Setup (Same Domain)
If your Nuxt app and Directus are on the same domain (e.g., localhost in development):
# Directus .env
AUTH_LOCAL_MODE=session
SESSION_COOKIE_SECURE=false # true in production
SESSION_COOKIE_SAME_SITE=Lax
CORS_ENABLED=true
CORS_ORIGIN=http://localhost:3000
CORS_CREDENTIALS=true
# For realtime features
WEBSOCKETS_ENABLED=true
WEBSOCKETS_REST_AUTH=strictCross-Domain Setup
If your frontend and backend are on different domains:
# Directus .env
AUTH_LOCAL_MODE=session
SESSION_COOKIE_DOMAIN=.yourdomain.com # Shared parent domain
SESSION_COOKIE_SECURE=true
SESSION_COOKIE_SAME_SITE=None
CORS_ENABLED=true
CORS_ORIGIN=https://app.yourdomain.com
CORS_CREDENTIALS=true
# For realtime features
WEBSOCKETS_ENABLED=true
WEBSOCKETS_REST_AUTH=strictVerify Installation
Create a simple page to test the integration:
<script setup>
const { user, loggedIn } = useDirectusAuth()
const directus = useDirectus()
const { data: items } = await useAsyncData('items', () =>
directus.request(readItems('your_collection'))
)
</script>
<template>
<div>
<h1>nuxt-directus-sdk Test</h1>
<div v-if="loggedIn">
<p>Logged in as: {{ user.email }}</p>
</div>
<div v-else>
<p>Not logged in</p>
</div>
<div v-if="items">
<p>Successfully connected to Directus!</p>
<p>Item count: {{ items.length }}</p>
</div>
</div>
</template>Development Proxy
In development mode, the module automatically creates a proxy at /directus that forwards requests to your Directus instance. This eliminates CORS issues.
You can configure the proxy:
export default defineNuxtConfig({
directus: {
// Proxy configuration (optional)
devProxy: {
enabled: true, // default: true in dev mode
path: '/directus', // default: '/directus'
},
},
})Type Generation
The module automatically generates TypeScript types from your Directus schema. Make sure you have DIRECTUS_ADMIN_TOKEN set in your .env file.
To disable type generation:
export default defineNuxtConfig({
directus: {
types: {
enabled: false,
},
},
})Next Steps
Now that you're set up, explore the features:
- Authentication - Session-based auth, SSO, user management
- Realtime - WebSocket connections and live updates
- File Management - Upload and transform files
- Visual Editor - Live preview and inline editing
- Server-Side Utils - Server routes and utilities
- Configuration Reference - All configuration options