Skip to content

Deployment

Docker

The simplest way to deploy smqbroker:

docker run -d \
  --name smqbroker \
  -e SLACK_BOT_TOKEN=xoxb-... \
  -e SLACK_APP_TOKEN=xapp-... \
  -v $(pwd)/smqbroker.yaml:/app/smqbroker.yaml \
  -v $(pwd)/data:/app/data \
  -p 9090:9090 \
  ghcr.io/goodtune/slackmq:latest

Tip

Mount a volume for the SQLite database path to persist state across container restarts.

Docker Compose

services:
  smqbroker:
    image: ghcr.io/goodtune/slackmq:latest
    environment:
      SLACK_BOT_TOKEN: ${SLACK_BOT_TOKEN}
      SLACK_APP_TOKEN: ${SLACK_APP_TOKEN}
    ports:
      - "9090:9090"
    volumes:
      - ./smqbroker.yaml:/app/smqbroker.yaml
      - smqbroker-data:/app/data

volumes:
  smqbroker-data:

Binary

Download from GitHub Releases and run directly:

export SLACK_BOT_TOKEN=xoxb-...
export SLACK_APP_TOKEN=xapp-...
./smqbroker --config smqbroker.yaml

Consider using a process manager (systemd, supervisord) for production deployments.

Monitoring

When metrics are enabled, Prometheus metrics are exposed at /metrics on the configured port (default 9090).

The broker also exposes:

  • Web dashboard — browser UI at the metrics port
  • REST API — topology and control endpoints
  • SSE feed — real-time event stream at /events