FinepherFinepher
AR
Programming 2 min read

How to Setup Bull Board in NestJS (Simple Guide)

Asha Vardhan

Asha Vardhan

April 9, 2026

In this guide, I will show you how to setup Bull Board in a NestJS project.
Bull Board is a UI dashboard to monitor your BullMQ queues (jobs, status, retries, etc).

See the working example: https://github.com/habilm/bullmq-nestjs


What is Bull Board?

Bull Board gives you a web UI where you can:

  • See all jobs in queue

  • Check failed jobs

  • Retry or delete jobs

  • Monitor queue activity

    Job Scheduling in Node.js with BullMQ | Better Stack Community

Step 1: Install Packages

Run this command:

npm install @bull-board/api @bull-board/express

Step 2: Create Bull Board Setup

Create a new file like bull-board.ts:

import { ExpressAdapter } from '@bull-board/express';
import { createBullBoard } from '@bull-board/api';
import { Queue } from 'bullmq';
import { BullMQAdapter } from '@bull-board/api/bullMQAdapter';

export function setupBullBoard(app: any, emailQueue: Queue) {
  const serverAdapter = new ExpressAdapter();
  serverAdapter.setBasePath('/admin/queues');

  createBullBoard({
    queues: [new BullMQAdapter(emailQueue)],
    serverAdapter,
  });

  app.use('/admin/queues', serverAdapter.getRouter());
}

Step 3: Update main.ts

Now connect Bull Board to your NestJS app.

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { setupBullBoard } from './bull-board';
import { emailQueue } from './queue';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  setupBullBoard(app, emailQueue);

  await app.listen(3000);
}
bootstrap();

Step 4: Run Your App

Start your NestJS app:

npm run start

Step 5: Open Bull Board

Open your browser:

http://localhost:3000/admin/queues

You will see:

  • Job list

  • Completed jobs

  • Failed jobs

  • Queue details


Tips

  • You can add multiple queues:

queues: [
  new BullMQAdapter(emailQueue),
  new BullMQAdapter(paymentQueue),
]
  • Protect the route (/admin/queues) using auth (important for production)

  • Use separate Redis for production workloads


Example using Express middleware:

import * as basicAuth from 'express-basic-auth';

app.use(
  '/admin/queues',
  basicAuth({
    users: { admin: 'password' },
    challenge: true,
  }),
);

Conclusion

Now you have Bull Board setup in your NestJS app 🎉You can monitor your queues easily and manage jobs without checking logs.

Related Blogs

Related Blogs

We Created NestJs DuckDB: A Simple DuckDB Integration for NestJS
Programming
July 23, 2026

We Created NestJs DuckDB: A Simple DuckDB Integration for NestJS

As developers, we often use databases like PostgreSQL, MySQL, or MongoDB when building backend applications with NestJS. But not every data problem needs a traditional database setup.

BullMQ and Bull-Board with Nestjs - Take full Control of Queue process
Cloud Computing
February 11, 2025

BullMQ and Bull-Board with Nestjs - Take full Control of Queue process

Have you ever struggled to run and maintain a large number of scripts? BullMQ is here to make your life easier!

How to Install BullMQ in NestJS (Simple Guide)
Programming
April 8, 2026

How to Install BullMQ in NestJS (Simple Guide)