Giter VIP home page Giter VIP logo

bull-board-docker's Introduction

Docker image for bull-board. Allow you to monitor your bull queue without any coding!

Supports both bull and bullmq.

Quick start with Docker

docker run -p 3000:3000 venatum/bull-board:latest

will run bull-board interface on localhost:3000 and connect to your redis instance on localhost:6379 without password.

To configure redis see "Environment variables" section.

Quick start with docker-compose

services:
    bullboard:
        container_name: bullboard
        image: venatum/bull-board
        restart: unless-stopped
        ports:
            - "3000:3000"

will run bull-board interface on localhost:3000 and connect to your redis instance on localhost:6379 without password.

see "Example with docker-compose" section, for example, with env parameters

Sentinel

It is now possible to use the BullBoard image with Redis Sentinel mode. Please note that on the interface, the Redis server info button will not work. Feel free to contribute to the development directly at felixmosh/bull-board

Environment variables

Redis

  • REDIS_HOST - host to connect to redis (localhost by default)
  • REDIS_PORT - redis port (6379 by default)
  • REDIS_DB - redis db to use ('0' by default)
  • REDIS_USE_TLS - enable TLS true or false (false by default)
  • REDIS_USER - user to connect to redis (no user by default)
  • REDIS_PASSWORD - password to connect to redis (no password by default)
  • SENTINEL_NAME - name of sentinel instance (required with sentinel)
  • SENTINEL_HOSTS - a string containing a list of replica servers (e.g. '1.redis:26379,2.redis:26379,3.redis:26379'), overrides REDIS_HOST + REDIS_PORT configuration (you can use , or ;)
  • MAX_RETRIES_PER_REQUEST - makes sure commands won't wait forever when the connection is down (disabled null by default)

Interface

  • PROXY_PATH - proxyPath for bull board, e.g. https://<server_name>/my-base-path/queues [docs] ('' by default)
  • USER_LOGIN - login to restrict access to bull-board interface (disabled by default)
  • USER_PASSWORD - password to restrict access to bull-board interface (disabled by default)

Queue setup

  • BULL_PREFIX - prefix to your bull queue name (bull by default)
  • BULL_VERSION - version of bull lib to use 'BULLMQ' or 'BULL' (BULLMQ by default)
  • BACKOFF_STARTING_DELAY - The delay, in milliseconds, before starts the research for the first time (500 by default)
  • BACKOFF_MAX_DELAY - The maximum delay, in milliseconds, between two consecutive attempts (Infinity by default)
  • BACKOFF_TIME_MULTIPLE - The BACKOFF_STARTING_DELAY is multiplied by the BACKOFF_TIME_MULTIPLE to increase the delay between reattempts (2 by default)
  • BACKOFF_NB_ATTEMPTS - The maximum number of times to attempt the research (10 by default)

Restrict access with login and password

To restrict access to bull-board use USER_LOGIN and USER_PASSWORD env vars. Only when both USER_LOGIN and USER_PASSWORD specified, access will be restricted with login/password

Healthcheck

A Healthcheck based on NestJS is available to monitor the status of the container and the Redis service. /healthcheck

{
	"status": "ok",
	"info": {
		"redis": {
			"status": "up",
			"description": "Based on the Redis PING/PONG system"
		}
	}
}
Field Description Type
status Indicates the overall health status. If any health indicator fails, the status will be 'error'. 'ok' or 'error'
info Object containing information of each health indicator which is of status 'up', or in other words "healthy". object
error String containing information of each health indicator which is of status 'down', or in other words "unhealthy". string
details Object containing all information of each health indicator object

Example with docker-compose

services:
    redis:
        container_name: redis
        image: redis:alpine
        restart: unless-stopped
        ports:
            - "6379:6379"
        volumes:
            - redis_db_data:/data

    bullboard:
        container_name: bullboard
        image: venatum/bull-board:latest
        restart: unless-stopped
        environment:
            REDIS_HOST: redis
            REDIS_PORT: 6379
            REDIS_PASSWORD: example-password
            REDIS_USE_TLS: 'false'
            BULL_PREFIX: bull
        ports:
            - "3000:3000"
        depends_on:
            - redis

volumes:
    redis_db_data:
        external: false

bull-board-docker's People

Contributors

renovate-bot avatar venatum avatar deadly0 avatar diluka avatar soulchild avatar githubjakob avatar lordofriver avatar dependabot[bot] avatar

Stargazers

Anthony Lau avatar Gustavo avatar  avatar Nikola Madic avatar

bull-board-docker's Issues

Environmental variables are being ignored

Despite having environmental variables being set, on they are not honored.
Running a container from docker-compose, later:

docker exec -it container_id sh

and later:

~$ set

Gives, for example:

REDIS_DB='0'
REDIS_HOST='redis'

which is right, this is how I set it up, but

docker-compose logs

produces:

bullboard  | Error: connect ECONNREFUSED 127.0.0.1:6379
bullboard  |     at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) {
bullboard  |   errno: -111,
bullboard  |   code: 'ECONNREFUSED',
bullboard  |   syscall: 'connect',
bullboard  |   address: '127.0.0.1',
bullboard  |   port: 6379
bullboard  | }

feature request: support for redis sentinel

Thank you for providing this docker image. We like bull-board and the docker image is very convenient for us.

We run redis with sentinel. Currently we get away with pointing bull board to connect to one of the redis instances but this is brittle and unintuitive.

As bull-board uses ioredis under the hood, which supports sentinel, is it at all thinkable to extend the config of bull-board-docker to also support configuring sentinel instead of a single host?

What are your thoughts? Would you be open for a pull request?

Register multiple queues to BullBoard

Hi, I am very interested to use a BullBoard and Redis as dockerized containers, thank yout to sharing the docker file.
Sorry for the dumb question: how to register multiple bullMQ queues to Bullboard docker ?
Thank you in advance

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

Renovate tried to run on this repository, but found these problems.

  • WARN: Found renovate config warnings

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(dev-deps): update dependency @semantic-release/github to v10.3.4
  • chore(dev-deps): update dependency husky to v9.1.6
  • ci(actions): update renovatebot/github-action action to v40.2.8
  • chore(deps): update dependency express to v4.21.0
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

docker-compose
docker-compose.yml
dockerfile
Dockerfile
  • node 18-alpine
github-actions
.github/workflows/docker-publish.yml
  • actions/checkout v4
  • docker/setup-qemu-action v3
  • docker/setup-buildx-action v3
  • docker/login-action v3
  • docker/metadata-action v5
  • docker/build-push-action v6
.github/workflows/release.yml
  • actions/checkout v4
  • actions/setup-node v4
.github/workflows/renovate.yml
  • actions/checkout v4.1.7
  • renovatebot/github-action v40.2.7@630a255a1f2f56c8d8ce160bed3e3ca577ca53e2
npm
package.json
  • @bull-board/api ^5.21.5
  • @bull-board/express ^5.21.5
  • body-parser ^1.20.3
  • bull ^4.16.3
  • bullmq ^5.12.15
  • connect-ensure-login ^0.1.1
  • dotenv ^16.4.5
  • esm ^3.2.25
  • exponential-backoff ^3.1.1
  • express ^4.20.0
  • express-session ^1.18.0
  • ioredis ^5.4.1
  • morgan ^1.10.0
  • passport ^0.7.0
  • passport-local ^1.0.0
  • @commitlint/cli ^19.5.0
  • @commitlint/config-conventional ^19.5.0
  • @commitlint/prompt ^19.5.0
  • @semantic-release/changelog ^6.0.3
  • @semantic-release/commit-analyzer ^13.0.0
  • @semantic-release/git ^10.0.1
  • @semantic-release/github ^10.3.3
  • @semantic-release/release-notes-generator ^14.0.1
  • commitizen ^4.3.0
  • conventional-changelog-conventionalcommits ^8.0.0
  • husky ^9.1.5
  • nodemon ^3.1.4
  • semantic-release ^24.1.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.