Plugin that allows you to add AdminJS to Fastify applications.


npm install @adminjs/fastify


const AdminJSFastify = require('@adminjs/fastify')

It exposes 2 methods that create an Express Router, which can be attached to a given url in the API. Each method takes a pre-configured instance of AdminJS.

  • AdminJSExpress.buildRouter(admin, [predefinedRouter])
  • AdminJSExpress.buildAuthenticatedRouter(admin, auth, [predefinedRouter], sessionOptions)

If you want to use a router you have already created - not a problem. Just pass it as a predefinedRouter parameter.

You may want to use this option when you want to include some custom auth middleware for you AdminJS routes.

Example without an authentication

const AdminJS = require('adminjs')
const AdminJSFastify = require('@adminjs/fastify')

const fastify = require('fastify')()

const AdminJS = new AdminJS({
  databases: [],
  rootPath: '/admin',

app.listen(8080, () => console.log('AdminJS is under localhost:8080/admin'))

Using build in authentication

To protect the routes with a session authentication, you can use predefined module:@adminjs/fastify.buildAuthenticatedRouter method.

Note! To use authentication in production environment, there is a need to configure fastify-session for production build. It can be achieved by passing options to sessionOptions parameter.

Adding custom authentication

Where req.session.admin is AdminJS#CurrentAdmin, meaning that it should have at least an email property.