mirror of
https://github.com/Shadowfita/docmost.git
synced 2025-11-14 08:41:04 +10:00
Add health check and dev script
This commit is contained in:
@ -11,6 +11,7 @@ import { MailModule } from './integrations/mail/mail.module';
|
|||||||
import { QueueModule } from './integrations/queue/queue.module';
|
import { QueueModule } from './integrations/queue/queue.module';
|
||||||
import { StaticModule } from './integrations/static/static.module';
|
import { StaticModule } from './integrations/static/static.module';
|
||||||
import { EventEmitterModule } from '@nestjs/event-emitter';
|
import { EventEmitterModule } from '@nestjs/event-emitter';
|
||||||
|
import { HealthModule } from './integrations/health/health.module';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
@ -21,6 +22,7 @@ import { EventEmitterModule } from '@nestjs/event-emitter';
|
|||||||
WsModule,
|
WsModule,
|
||||||
QueueModule,
|
QueueModule,
|
||||||
StaticModule,
|
StaticModule,
|
||||||
|
HealthModule,
|
||||||
StorageModule.forRootAsync({
|
StorageModule.forRootAsync({
|
||||||
imports: [EnvironmentModule],
|
imports: [EnvironmentModule],
|
||||||
}),
|
}),
|
||||||
|
|||||||
26
apps/server/src/integrations/health/health.controller.ts
Normal file
26
apps/server/src/integrations/health/health.controller.ts
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import { KyselyDB } from '@docmost/db/types/kysely.types';
|
||||||
|
import {
|
||||||
|
Controller,
|
||||||
|
Get,
|
||||||
|
HttpCode,
|
||||||
|
HttpStatus,
|
||||||
|
InternalServerErrorException,
|
||||||
|
Post,
|
||||||
|
} from '@nestjs/common';
|
||||||
|
import { sql } from 'kysely';
|
||||||
|
import { InjectKysely } from 'nestjs-kysely';
|
||||||
|
|
||||||
|
@Controller()
|
||||||
|
export class HealthController {
|
||||||
|
constructor(@InjectKysely() private readonly db: KyselyDB) {}
|
||||||
|
|
||||||
|
@Get('health')
|
||||||
|
@HttpCode(HttpStatus.OK)
|
||||||
|
async health() {
|
||||||
|
try {
|
||||||
|
await sql`SELECT 1=1`.execute(this.db);
|
||||||
|
} catch (error) {
|
||||||
|
throw new InternalServerErrorException('Health check failed');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
8
apps/server/src/integrations/health/health.module.ts
Normal file
8
apps/server/src/integrations/health/health.module.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import { Global, Module } from '@nestjs/common';
|
||||||
|
import { HealthController } from './health.controller';
|
||||||
|
|
||||||
|
@Global()
|
||||||
|
@Module({
|
||||||
|
controllers: [HealthController],
|
||||||
|
})
|
||||||
|
export class HealthModule {}
|
||||||
@ -12,7 +12,8 @@
|
|||||||
"client:dev": "nx run client:dev",
|
"client:dev": "nx run client:dev",
|
||||||
"server:dev": "nx run server:start:dev",
|
"server:dev": "nx run server:start:dev",
|
||||||
"server:start": "nx run server:start:prod",
|
"server:start": "nx run server:start:prod",
|
||||||
"email:dev": "nx run @docmost/transactional:dev"
|
"email:dev": "nx run @docmost/transactional:dev",
|
||||||
|
"dev": "pnpm concurrently -n \"frontend,backend\" -c \"cyan,green\" \"pnpm run client:dev\" \"pnpm run server:dev\""
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docmost/editor-ext": "workspace:*",
|
"@docmost/editor-ext": "workspace:*",
|
||||||
@ -66,6 +67,7 @@
|
|||||||
"@nx/js": "19.3.2",
|
"@nx/js": "19.3.2",
|
||||||
"@types/uuid": "^10.0.0",
|
"@types/uuid": "^10.0.0",
|
||||||
"nx": "19.3.2",
|
"nx": "19.3.2",
|
||||||
|
"concurrently": "^8.2.2",
|
||||||
"tsx": "^4.15.7"
|
"tsx": "^4.15.7"
|
||||||
},
|
},
|
||||||
"workspaces": {
|
"workspaces": {
|
||||||
|
|||||||
Reference in New Issue
Block a user