Skip to content

Latest commit

 

History

History
93 lines (71 loc) · 2.3 KB

installation.md

File metadata and controls

93 lines (71 loc) · 2.3 KB
id title
install
Installation

Let's get you started with a minimal setup.

Installing nestjs-admin

Add nestjs-admin to your dependencies:

yarn add nestjs-admin # With yarn
npm install nestjs-admin # With NPM

Updating Nest config

Then add the provided DefaultAdminModule to your app modules:

// src/app.module.ts
import { Module } from '@nestjs/common'
import { DefaultAdminModule } from 'nestjs-admin'

@Module({
  imports: [TypeOrmModule.forRoot(), /* ... */, DefaultAdminModule],
  /* ... */,
})
export class AppModule {
  /* ... */
}

Add the provided AdminUser to your orm config:

The DefaultAdminModule exposes an AdminUser entity, which has credentials that allow you to login to the admin interface.

There's no easy option to use your own user entity for now. If you have this requirement, open an issue so that we can help you.

// If you use an ormconfig.js
const AdminUser = require('nestjs-admin').AdminUserEntity
module.exports = {
  /* ... */,
  entities: [/* ... */, AdminUser],
  // Alternatively:
  // entities: [/* ... */, 'node_modules/nestjs-admin/**/*.entity.js'],
}
# If you use environment variables
TYPEORM_ENTITIES=your_existing_paths,node_modules/nestjs-admin/**/*.entity.js

Using the admin

Create a first AdminUser to log in with:

# Create the AdminUser schema in database
npx ts-node node_modules/.bin/typeorm migration:generate -n "create-admin-user"
npx ts-node node_modules/.bin/typeorm migration:run

# Now you can create an AdminUser through the CLI
npx nestjs-admin createAdminUser

You can create AdminUsers from the nestjs-admin createAdminUser CLI, or directly from the administration interface!

You can now login to access the admin interface at /admin/login!

Register entities in the admin site:

// user.module.ts
import { TypeOrmModule } from '@nestjs/typeorm'
import { Module } from '@nestjs/common'
import { DefaultAdminModule, DefaultAdminSite } from 'nestjs-admin'
import { User } from './user.entity'

@Module({
  imports: [TypeOrmModule.forFeature([User]), DefaultAdminModule],
  exports: [TypeOrmModule],
})
export class UserModule {
  constructor(private readonly adminSite: DefaultAdminSite) {
    // Register the User entity under the "User" section
    adminSite.register('User', User)
  }
}