Jenkins Local
Self-contained Jenkins plugin that stores CI data directly in your own PostgreSQL database and displays it within the Jenkins UI.
The Jenkins Local plugin is a fully self-contained solution. It stores all CI data in your own PostgreSQL database and surfaces analytics directly inside the Jenkins UI — no external services, no internet required.

How it works
Data never leaves your infrastructure. The plugin writes directly to Postgres and reads from it to render the BuildButler dashboard panels inside Jenkins.
Prerequisites
- Jenkins 2.387.3 or later
- A PostgreSQL 14+ database accessible from Jenkins
- Java 11+
Installation
- Download the
buildbutler-local.hpiplugin from the Downloads page. - In Jenkins, go to Manage Jenkins → Plugins → Advanced.
- Under Deploy Plugin, upload the
.hpifile and click Deploy. - Restart Jenkins when prompted.
Configuration
After installation, go to Manage Jenkins → BuildButler Local to configure the plugin.
Build Data Collection
Control which jobs are monitored and how build logs are collected.

Database Connection
Enter your PostgreSQL connection details. Click Test Connection to verify, then Initialize Schema to create the required tables on first setup.

Log Storage (S3-Compatible)
Optionally configure an S3-compatible object store (AWS S3, MinIO, etc.) to store raw build console logs.

Slack Notifications
Configure a default Slack webhook and per-event overrides. Toggle which build events trigger notifications and how many console log lines to include.

Email Notifications (SMTP)
Configure your SMTP server to send email alerts on build events.

Queue Alerts
Define rules that fire when the build queue exceeds a threshold for a sustained duration. Rules are expressed as a JSON array and support total-queue and per-label modes.

Flaky Test Detection
Configure how BuildButler identifies flaky tests — set the number of status transitions, the evaluation window, and the reliability threshold below which a test is flagged.

JIRA Integration
Connect BuildButler to your Jira instance to link build failures to tickets directly from the dashboard.

AI Provider
Configure an AI provider (Anthropic, OpenAI, or Google) to enable the Ask AI feature for natural language queries about your build data.

Data ingested
The plugin hooks into the Jenkins build lifecycle and collects:
| Data | When |
|---|---|
| Build result, status, duration | On build completion |
| Pipeline stage execution times | On pipeline completion |
| Test results (JUnit/TestNG/etc.) | On build completion |
| Agent status and availability | Periodically (every 60s) |
| Build console logs | On build completion |
Multiple Jenkins controllers
If you run multiple Jenkins controllers, each can be configured to write to the same PostgreSQL database. Install the plugin on each controller and configure it with a unique Server Label — each controller gets its own label so data can be filtered by source in the dashboard.
Network requirements
The plugin is fully self-contained — it writes build data directly to your own PostgreSQL database and handles everything locally. There is no dependency on api.buildbutler.dev or any BuildButler-hosted infrastructure.
Outbound connections are only made to the following destinations, depending on which features are enabled:
| Destination | Purpose |
|---|---|
us.i.posthog.com | Anonymous usage analytics |
hooks.slack.com | Slack webhook notifications |
api.openai.com | AI natural language queries |
api.anthropic.com | AI natural language queries |
generativelanguage.googleapis.com | AI natural language queries |
quickchart.io | Chart image generation for email templates |
| User-configured Jira URL | Jira integration |
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
Connection refused | Wrong host/port | Verify Postgres is reachable from Jenkins |
Authentication failed | Wrong credentials | Check username and password |
Schema not created | Insufficient DB permissions | Grant CREATE privileges to the DB user |
| No data appearing | Plugin not enabled on job | Enable BuildButler in the job configuration |