One binary. Exceptions, dumps, emails, profiling, logs — all in one real-time UI. Works with the SDKs you already have. No cloud account. No code changes. No runtime dependencies.
Buggregator v2.0 is a complete rewrite in Go — a single self-contained binary with an embedded SQLite database, web UI, and WebSocket server. No PHP runtime, no RoadRunner, no Centrifugo, no external database.
| Server | v2.0.0 |
| Frontend | v1.30.0 |
Looking for the PHP version? See the 1.x branch.
Watch our introduction video on YouTube
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:latestOpen http://127.0.0.1:8000 and start debugging. That's it.
# Download the latest release
curl -sL https://github.com/buggregator/server/releases/latest/download/buggregator-linux-amd64 -o buggregator
chmod +x buggregator
./buggregatorNo Docker? No binary? Use Buggregator Trap — a lightweight PHP CLI alternative.
Watch our intro video about profiler on YouTube.
| Module | Type | Transport | Description |
|---|---|---|---|
| Sentry | sentry | HTTP | Error tracking (gzip, envelope format) |
| Ray | ray | HTTP | Debug tool for PHP |
| VarDumper | var-dump | TCP :9912 | Symfony VarDumper (embedded PHP parser) |
| Inspector | inspector | HTTP | APM monitoring |
| Monolog | monolog | TCP :9913 | Logging (newline-delimited JSON) |
| SMTP | smtp | TCP :1025 | Email capture (RFC822, multipart, attachments) |
| SMS | sms | HTTP /sms | SMS gateway capture (41 providers) |
| HTTP Dump | http-dump | HTTP | Catch-all HTTP request capture |
| Profiler | profiler | HTTP | XHProf profiling (call graph, flame chart, top functions) |
| Webhooks | webhooks | — | HTTP POST notifications when events are received |
The server works with zero configuration. Optionally, create a buggregator.yaml:
server:
addr: ":8000"database:
driver: sqlitedsn: ":memory:"# or "data.db" for persistence# Prometheus metrics (optional)metrics:
enabled: trueaddr: ":9090"# separate server, or empty to use main HTTPtcp:
smtp:
addr: ":1025"monolog:
addr: ":9913"var-dumper:
addr: ":9912"# Authentication (disabled by default)# Supports: auth0, google, github, keycloak, gitlab, oidc (generic)auth:
enabled: trueprovider: auth0provider_url: https://your-tenant.us.auth0.comclient_id: your-client-idclient_secret: your-client-secretcallback_url: http://localhost:8000/auth/sso/callbackscopes: openid,email,profilejwt_secret: your-secret-for-signing-tokens# MCP — AI assistant integration (disabled by default)mcp:
enabled: truetransport: socket # "socket" or "http"socket_path: /tmp/buggregator-mcp.sock# Enable/disable modules (all enabled by default)modules:
sentry: trueray: truevar-dump: trueinspector: truemonolog: truesmtp: truesms: truehttp-dump: trueprofiler: true# Webhooks — HTTP POST notifications on eventswebhooks:
- event: "*"url: https://slack.example.com/webhookheaders:
Authorization: "Bearer token"verify_ssl: falseretry: true
- event: sentryurl: https://pagerduty.example.com/alert# Pre-defined projectsprojects:
- key: my-appname: My Application- CLI flags (
--http-addr :9000) - Environment variables (
HTTP_ADDR=:9000) - Config file (
buggregator.yaml) - Defaults
| Variable | Default | Description |
|---|---|---|
HTTP_ADDR | :8000 | HTTP listen address |
DATABASE_DSN | :memory: | SQLite DSN |
SMTP_ADDR | :1025 | SMTP listen address |
MONOLOG_ADDR | :9913 | Monolog TCP address |
VAR_DUMPER_ADDR | :9912 | VarDumper TCP address |
CLIENT_SUPPORTED_EVENTS | all | Comma-separated list of enabled modules |
METRICS_ENABLED | false | Enable Prometheus metrics |
METRICS_ADDR | — | Separate metrics server address |
AUTH_ENABLED | false | Enable OAuth2/OIDC authentication |
AUTH_PROVIDER | oidc | Provider: auth0, google, github, keycloak, gitlab, oidc |
AUTH_PROVIDER_URL | — | OIDC issuer URL |
AUTH_CLIENT_ID | — | OAuth2 client ID |
AUTH_CLIENT_SECRET | — | OAuth2 client secret |
AUTH_CALLBACK_URL | — | OAuth2 callback URL |
AUTH_SCOPES | openid,email,profile | Comma-separated OAuth2 scopes |
AUTH_JWT_SECRET | — | Secret for signing internal JWT tokens |
MCP_ENABLED | false | Enable MCP server |
MCP_TRANSPORT | socket | socket (local) or http (remote) |
MCP_SOCKET_PATH | /tmp/buggregator-mcp.sock | Unix socket path |
MCP_ADDR | :8001 | HTTP listen address for MCP |
MCP_AUTH_TOKEN | — | Bearer token for HTTP MCP transport |
# .envSENTRY_LARAVEL_DSN=http://sentry@localhost:8000/defaultRAY_HOST=ray@localhostRAY_PORT=8000VAR_DUMPER_SERVER=localhost:9912LOG_SOCKET_URL=localhost:9913MAIL_HOST=localhostMAIL_PORT=1025INSPECTOR_URL=http://inspector@localhost:8000INSPECTOR_API_KEY=testPROFILER_ENDPOINT=http://profiler@localhost:8000HTTP_DUMP_ENDPOINT=http://http-dump@localhost:8000SMS_ENDPOINT=http://localhost:8000/smsBuggregator includes a built-in MCP server that lets AI assistants (Claude Code, Cursor, etc.) query and analyze debugging data directly.
AI Assistant --stdio--> buggregator mcp --unix socket--> buggregator (main process)
Claude Code (~/.claude.json or project settings):
{
"mcpServers": {
"buggregator": {
"command": "./buggregator",
"args": ["mcp"]
}
}
}Cursor (.cursor/mcp.json):
{
"mcpServers": {
"buggregator": {
"command": "./buggregator",
"args": ["mcp"]
}
}
}| Tool | Description | Key Parameters |
|---|---|---|
events_list | List captured events | type, project, limit (default 20, max 100) |
event_get | Get full event payload | uuid |
event_delete | Delete an event | uuid |
profiler_summary | Profile overview: totals, slowest function, memory hotspot | uuid |
profiler_top | Top functions sorted by metric | uuid, metric, limit |
profiler_call_graph | Filtered call graph with significant paths | uuid, metric, percentage, threshold |
sentry_event | Structured error: exception chain, stack traces, tags | uuid |
vardump_get | Variable value with HTML stripped | uuid |
- Go 1.22+
- PHP 8.1+ with Composer (for VarDumper module)
- Make
make build # Full build: downloads frontend, builds PHP parser, compiles binary
make run # Build and run
make build-cross GOOS=darwin GOARCH=arm64 # Cross-compileSee the documentation for detailed installation and usage instructions.
We enthusiastically invite you to contribute to Buggregator Server! Whether you've uncovered a bug, have innovative feature suggestions, or wish to contribute in any other capacity, we warmly welcome your participation. Simply open an issue or submit a pull request on our GitHub repository to get started.
Read more about how to contribute here.
Buggregator is open-sourced software licensed under the MIT License.







