Api (NestJS) - Swagger
##Installation
git clone https://github.com/LuftBioMonitor/nestjs-api-landingpage-main.git
cd nestjs-backend
yarn
##Configure env
app.module.ts
import { ConfigModule, ConfigService } from '@nestjs/config'
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UserModule } from './user/user.module';
import {DATABASE_HOST, DATABASE_NAME, DATABASE_PASSWORD, DATABASE_PORT, DATABASE_USERNAME} from "./config";
import { AuthModule } from './auth/auth.module';
import {AccessControlModule} from "nest-access-control";
import {roles} from "./app.roles";
@Module({
imports: [
TypeOrmModule.forRootAsync({
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
type: 'postgres', //change to your database ex: mysql
host: config.get<string>(DATABASE_HOST),
port: parseInt(config.get<string>(DATABASE_PORT), 10),
username: config.get<string>(DATABASE_USERNAME),
password: config.get<string>(DATABASE_PASSWORD),
database: config.get<string>(DATABASE_NAME),
entities: [__dirname + './**/**/*entity{.ts,.js}'],
autoLoadEntities: true,
synchronize: false,
logging: false,
logger: 'file',
})
}),
AccessControlModule.forRoles(roles),
ConfigModule.forRoot({
isGlobal: true,
envFilePath: '.env'
}),
UserModule,
AuthModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
$ cp .env.sample .env
$ vim .env
DATABASE_HOST = SqlHost
DATABASE_PORT = SqlPort
DATABASE_USERNAME = SqlUserName
DATABASE_PASSWORD = SqlPasssword
DATABASE_NAME = SqlDataBase
JWT_SECRET = mystringsecret
DEFAULT_USER_EMAIL = USER_ADMIN
DEFAULT_USER_PASSWORD = PASSSWORD_ADMIN
#Testing docker
docker build -t nestjs-backend .
docker run --rm -it --env-file=.env -p 80:3000 nestjs-backend