Skip to content

Getting Started ​

Three steps. That's it. ​

  1. Run one command — start Buggregator with a single command. No installation, no registration, no configuration files.
  2. Add one env variable — change one line in your .env file. Your existing Sentry SDK, VarDumper, Monolog, or Ray — they all just work.
  3. Open your browser — navigate to http://127.0.0.1:8000 and start debugging. No login required.

Quick Start ​

Buggregator is a single ~30 MB binary with no dependencies. Download and run:

bash
# Linux (amd64)
curl -sL https://github.com/buggregator/server/releases/latest/download/buggregator-linux-amd64 -o buggregator \
  && chmod +x buggregator \
  && ./buggregator
Other platforms
bash
# Linux (arm64)
curl -sL https://github.com/buggregator/server/releases/latest/download/buggregator-linux-arm64 -o buggregator \
  && chmod +x buggregator

# macOS (Apple Silicon)
curl -sL https://github.com/buggregator/server/releases/latest/download/buggregator-darwin-arm64 -o buggregator \
  && chmod +x buggregator

# macOS (Intel)
curl -sL https://github.com/buggregator/server/releases/latest/download/buggregator-darwin-amd64 -o buggregator \
  && chmod +x buggregator

Open http://127.0.0.1:8000 in your browser. Done.

Docker ​

bash
docker run --pull always \
  -p 127.0.0.1:8000:8000 \
  -p 127.0.0.1:1025:1025 \
  -p 127.0.0.1:9912:9912 \
  -p 127.0.0.1:9913:9913 \
  ghcr.io/buggregator/server:latest

Docker Compose ​

Add Buggregator to your docker-compose.yml alongside your other services:

yaml
services:
  buggregator:
    image: ghcr.io/buggregator/server:latest
    ports:
      - 127.0.0.1:8000:8000
      - 127.0.0.1:1025:1025
      - 127.0.0.1:9912:9912
      - 127.0.0.1:9913:9913

No environment configuration needed. Works out of the box.

Just change the address ​

If Buggregator is part of an existing Docker Compose stack, other services can reach it by its service name. Change your app's .env to point at the container — that's the only change you need:

dotenv
# Sentry — only the host changed. Your Sentry SDK keeps working exactly the same.
SENTRY_LARAVEL_DSN=http://sentry@buggregator:8000/1

# Ray
RAY_HOST=ray@buggregator
RAY_PORT=8000

# VarDumper
VAR_DUMPER_FORMAT=server
VAR_DUMPER_SERVER=buggregator:9912

# Monolog
LOG_CHANNEL=socket
LOG_SOCKET_URL=buggregator:9913

# SMTP — email capture
MAIL_HOST=buggregator
MAIL_PORT=1025

Ports ​

Each port serves a specific module. You only need to expose the ports for the features you use:

PortProtocolModuleWhat it does
8000HTTPSentry, Ray, Inspector, HTTP Dumps, XHProf, SMSWeb UI + HTTP-based event ingestion. This is the only required port.
1025SMTPFake SMTP ServerCaptures outgoing emails. Point your app's SMTP config here.
9912TCPSymfony VarDumperReceives dump() / dd() output.
9913TCPMonologReceives log records via Monolog's SocketHandler.

If you only need specific features, omit the unused ports. For example, VarDumper only:

bash
docker run --pull always \
  -p 127.0.0.1:8000:8000 \
  -p 127.0.0.1:9912:9912 \
  ghcr.io/buggregator/server:latest

Kubernetes ​

The recommended way to deploy Buggregator on Kubernetes is using the Helm chart:

bash
helm install buggregator oci://ghcr.io/buggregator/helm-chart/buggregator

See the Helm chart documentation for SSO, Ingress, Prometheus, and more.

Or deploy manually as a Deployment + Service:

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: buggregator
spec:
  replicas: 1
  selector:
    matchLabels:
      app: buggregator
  template:
    metadata:
      labels:
        app: buggregator
    spec:
      containers:
        - name: buggregator
          image: ghcr.io/buggregator/server:latest
          ports:
            - containerPort: 8000
            - containerPort: 1025
            - containerPort: 9912
            - containerPort: 9913
---
apiVersion: v1
kind: Service
metadata:
  name: buggregator
spec:
  selector:
    app: buggregator
  ports:
    - name: http
      port: 8000
    - name: smtp
      port: 1025
    - name: var-dumper
      port: 9912
    - name: monolog
      port: 9913

Configuration ​

Buggregator can be configured via a YAML config file, environment variables, or CLI flags. The priority order is: CLI flags > Environment variables > Config file > Defaults.

See the server configuration guide for the full reference.

Quick example with environment variables ​

bash
docker run --pull always \
  -p 127.0.0.1:8000:8000 \
  -e DATABASE_DSN=data.db \
  -e METRICS_ENABLED=true \
  -v ./data:/data \
  ghcr.io/buggregator/server:latest

Image Tags ​

TagDescription
latestLatest stable release. Recommended.
devLatest development build. May be less stable.
X.Y (e.g., 2.0)A specific release version, pinned.

Security ​

By default, all ports are bound to 127.0.0.1 (localhost only). This prevents external access. Your debug data never leaves your machine.

Warning: If you remove the 127.0.0.1: prefix (e.g., -p 8000:8000), the port becomes accessible from outside your machine. Only do this if you understand the implications.

For team environments, consider enabling SSO authentication to restrict access to the UI.