Fastify
@adminjs/fastify
To setup AdminJS panel with Fastify you need to have fastify installed and required peer dependencies:
$ yarn add fastify tslibAfterwards, follow one of the examples below.
Simple
import AdminJSFastify from '@adminjs/fastify'
import AdminJS from 'adminjs'
import Fastify from 'fastify'
const PORT = 3000
const start = async () => {
const app = Fastify()
const admin = new AdminJS({
databases: [],
rootPath: '/admin'
})
await AdminJSFastify.buildRouter(
admin,
app,
)
app.listen({ port: PORT }, (err, addr) => {
if (err) {
console.error(err)
} else {
console.log(`AdminJS started on http://localhost:${PORT}${admin.options.rootPath}`)
}
})
}
start()Authentication
To add authentication, you must use AdminJSFastify.buildAuthenticatedRouter instead of AdminJSFastify.buildRouter. Additionally, we must set up a session store to keep our session information. In the example below we will store our session in a Postgres table, we will also use connect-pg-simple to allow our session store to connect to the database.
Install additional dependencies:
As you may have noticed, the authenticate function compares credentials you submit in the form with a hardcoded DEFAULT_ADMIN object. In your case, you might want to modify authenticate function's logic to compare form credentials against real database objects.
Install additional dependencies:
As you may have noticed, the authenticate function compares credentials you submit in the form with a hardcoded DEFAULT_ADMIN object. In your case, you might want to modify authenticate function's logic to compare form credentials against real database objects.
Last updated
