Skip to content

Quick Start - Installing the Workbench with Binary Files

The AI DBA Workbench collects metrics from PostgreSQL servers, evaluates alert rules, and displays results in a web interface. This guide covers setting up the complete pgEdge AI DBA Workbench using pre-built binaries available from the pgEdge GitHub repository.

Before you deploy the Workbench, confirm the following prerequisites are in place on a supported operating system and platform:

  • PostgreSQL 14 or later is installed for the Workbench datastore.
  • The database credentials for the datastore database are available.
  • Network access exists between each monitored PostgreSQL server and the system hosting the Workbench.

Installing the Binaries

Download the latest release from the GitHub releases page. The release archive includes the collector, server, and alerter binaries and pre-built web client files:

  • ai-dba-collector-linux-arm64.tar.gz
  • ai-dba-server-linux-arm64.tar.gz
  • ai-dba-alerter-linux-arm64.tar.gz
  • ai-dba-client.tar.gz

After downloading the files, move into your Downloads folder, and extract the archives and copy the files into a deployment directory. In the following example, the tar and cp commands install the binary and client files to the /opt/ai-workbench directory:

tar xzf ai-dba-collector-linux-arm64.tar.gz
tar xzf ai-dba-server-linux-arm64.tar.gz
tar xzf ai-dba-alerter-linux-arm64.tar.gz
sudo mkdir -p /opt/ai-workbench
sudo cp ai-dba-collector /opt/ai-workbench/
sudo cp ai-dba-server /opt/ai-workbench/
sudo cp ai-dba-alerter /opt/ai-workbench/
sudo chmod +x /opt/ai-workbench/ai-dba-*
sudo mkdir -p /opt/ai-workbench/client
sudo tar xzf ai-dba-client.tar.gz -C /opt/ai-workbench/client

Note

See the installation paths table for a comparison of installation paths used in different deployment methods.

Creating the Datastore Database

Use a PostgreSQL client to create a database for the datastore; the collector, server, and alerter share this database. Use the psql client to connect to the PostgreSQL server:

sudo -u postgres psql

Alter the postgres role to make it a login role with a password:

ALTER ROLE postgres LOGIN PASSWORD '1safepassword';

Then, create the datastore database. In the following example, the CREATE DATABASE, CREATE USER, and GRANT statements create the ai_workbench database and the ai_workbench user:

CREATE DATABASE ai_workbench;
CREATE USER ai_workbench WITH PASSWORD '1safepassword';
GRANT ALL PRIVILEGES ON DATABASE ai_workbench TO ai_workbench;

The collector creates the required schema tables automatically on the first startup.

Hint

You can use \q to exit the psql client session and return to the terminal window.

Creating a Server Secret and a Password File

The Workbench components use the server secret file and password file when they connect and authenticate with other components and the datastore database. The Workbench stores both files in the /etc/pgedge directory; the complete paths are:

  • The shared secret resides at /etc/pgedge/server.secret.

  • The datastore password resides at /etc/pgedge/password.txt.

In the following example, the mkdir command creates the /etc/pgedge directory; the directory may already exist for configuration files, so mkdir -p is safe:

sudo mkdir -p /etc/pgedge

Then, use the openssl command to write a secret to the server.secret file in the /etc/pgedge directory:

sudo openssl rand -base64 32 \
    | sudo tee /etc/pgedge/server.secret \
    > /dev/null
sudo chmod 600 /etc/pgedge/server.secret

Then, use the echo and chmod commands to create the password.txt file in the /etc/pgedge directory and set the file permissions:

sudo sh -c 'echo "1safepassword" > /etc/pgedge/password.txt'
sudo chmod 600 /etc/pgedge/password.txt

Hint

When you configure your installation, ensure that the locations of the server.secret and password.txt files match the absolute file paths in each YAML configuration files.

Creating the admin User and SQLite Database

The Workbench uses a SQLite database to store authentication and management details. Create the database and add an admin user account (this account will be used when connecting to the Workbench client) before editing the configuration files.

In the following example, the mkdir, chown, and ai-dba-server commands create the directory and add a user; the -data-dir flag places the auth.db authentication database in /var/lib/ai-workbench/data:

sudo mkdir -p /var/lib/ai-workbench/data
sudo chown -R $USER:$USER /var/lib/ai-workbench/data
/opt/ai-workbench/ai-dba-server \
    -add-user -username admin \
    -data-dir /var/lib/ai-workbench/data

The command prompts for a password and optional user details; this password will be used when connecting to the Workbench client, and must include at least one capital letter, one digit, and one special character:

/opt/ai-workbench/ai-dba-server -add-user -username admin -data-dir /var/lib/ai-workbench/data
Auth store: /var/lib/ai-workbench/data/auth.db
Enter password:
Confirm password:
Enter full name (optional): admin
Enter email address (optional): [email protected]
Enter notes for this user (optional):

======================================================================
User created successfully!
======================================================================

Username:  admin
Full Name: admin
Email:    [email protected]
Status:   Enabled
======================================================================

Then, grant superuser status to the admin account. In the following example, the -set-superuser flag promotes the admin user to superuser:

/opt/ai-workbench/ai-dba-server \
    -set-superuser -username admin \
    -data-dir /var/lib/ai-workbench/data

The command confirms the change; for example:

User 'admin' is now a superuser

Note

Without superuser privileges, you are allowed to connect to the Workbench, but you will not be able to add servers for monitoring.

Configuring and Starting the Collector

Sample configuration files are available for download from the GitHub repository. The following command downloads the sample Collector configuration file:

curl -L -o ~/Downloads/ai-dba-collector.yaml https://raw.githubusercontent.com/pgEdge/ai-dba-workbench/main/examples/ai-dba-collector.yaml

Then, copy the sample Collector configuration file from Downloads to /etc/pgedge:

sudo cp ~/Downloads/ai-dba-collector.yaml /etc/pgedge/ai-dba-collector.yaml

Use your choice of editor to modify the /etc/pgedge/ai-dba-collector.yaml file to describe the deployment. The following changes are the minimum settings required for our installation walkthrough:

datastore:
  host: localhost
  database: ai_workbench
  username: postgres
  password_file: /etc/pgedge/password.txt
  port: 5432
  sslmode: disable

The SECURITY SETTINGS section stores the location of the secret file:

secret_file: /etc/pgedge/server.secret

After updating the configuration file, start the collector. In the following example, the ai-dba-collector command starts the collector with the configuration file:

/opt/ai-workbench/ai-dba-collector -config /etc/pgedge/ai-dba-collector.yaml &

The collector displays startup messages to confirm successful initialization; for example:

/opt/ai-workbench/ai-dba-collector -config /etc/pgedge/ai-dba-collector.yaml
2026/05/19 13:22:00 pgEdge AI DBA Workbench Collector v1.0.0-beta1 starting...
2026/05/19 13:22:00 Configuration loaded from: /etc/pgedge/ai-dba-collector.yaml
2026/05/19 13:22:00 Datastore connection established
2026/05/19 13:22:00 Probe scheduler started
2026/05/19 13:22:00 Collector is running. Press Ctrl+C to stop.

The collector runs as a background service; press Enter to view your prompt.

Configuring and Starting the Server

Sample configuration files are available for download from the GitHub repository. The following command downloads the file to your Downloads directory:

curl -L -o ~/Downloads/ai-dba-server.yaml \
    https://raw.githubusercontent.com/pgEdge/ai-dba-workbench/main/examples/ai-dba-server.yaml

After downloading the sample file, copy the file from Downloads to /etc/pgedge:

sudo cp ~/Downloads/ai-dba-server.yaml /etc/pgedge/ai-dba-server.yaml

Use your choice of editor to modify the /etc/pgedge/ai-dba-server.yaml file to describe the deployment. The following changes are the minimum settings required for our installation walkthrough:

datastore:
  host: localhost
  database: ai_workbench
  username: postgres
  # Use either password or password_file (see the note below).
  password: ""
  # password_file: /etc/pgedge/password.txt
  port: 5432
  sslmode: disable

Note

You can use either the password property or the password_file property to specify the password.

By default, the server blocks connections to internal and private IP addresses. To monitor a PostgreSQL instance on the same host or local network, set the allow_internal_networks property to true in the server configuration file:

connection_security:
  # Allow connections to RFC 1918 private addresses (10.x.x.x,
  # 172.16.x.x, 192.168.x.x), localhost, link-local, and other
  # internal network ranges.
  # Default: false
  allow_internal_networks: true

The PATHS and DATA DIRECTORIES section contains two properties that must be updated. First, update the secret_file property to include the full path to the server.secret file:

# Path to server secret file (for encryption)
# Default: /etc/pgedge/ai-dba-server.secret or ./ai-dba-server.secret
secret_file: "/etc/pgedge/server.secret"

Then, update the data_dir property to specify the full path to the SQLite database created earlier:

# Data directory for conversation history and other persistent data
data_dir: "/var/lib/ai-workbench/data"

Then, save the file and start the server; for example:

/opt/ai-workbench/ai-dba-server -config /etc/pgedge/ai-dba-server.yaml &

The server displays status messages during startup; for example:

Auth store: /var/lib/ai-workbench/data/auth.db (1 user(s), 0 token(s))
RBAC: 21 MCP privileges registered
Rate limiting enabled: 10 attempts per 15 minutes per IP
Account lockout enabled: 10 failed attempts before lockout
Server secret: loaded from /etc/pgedge/server.secret
Datastore: connected to postgres@localhost:5432/ai_workbench
Database configured: postgres@localhost:5432/ai_workbench (per-session connections)
Conversation store: PostgreSQL datastore
LLM HTTP client: timeout=2m0s
AI Overview: DISABLED (requires datastore and LLM configuration)
Starting MCP server in HTTP mode on :8080
LLM Proxy: ENABLED (provider: anthropic, model: claude-sonnet-4-5)
Knowledgebase: DISABLED
MCP tool REST bridge: ENABLED
Conversation history: ENABLED
Connection management: ENABLED
Cluster management: ENABLED
Alert management: ENABLED
Blackout management: ENABLED
Probe configuration: ENABLED
Alert rule configuration: ENABLED
Alert override configuration: ENABLED
Probe override configuration: ENABLED
Notification channel management: ENABLED
Channel override configuration: ENABLED
Server info: ENABLED
Timeline events: ENABLED
Performance summary: ENABLED
Metrics query: ENABLED
Latest snapshot: ENABLED
Memory management: ENABLED
RBAC management: ENABLED

The server runs as a background process; press Enter to view your prompt.

Configuring and Starting the Alerter

Sample configuration files are available for download from the GitHub repository. The following command downloads the sample file to your Downloads directory:

curl -L -o ~/Downloads/ai-dba-alerter.yaml \
    https://raw.githubusercontent.com/pgEdge/ai-dba-workbench/main/examples/ai-dba-alerter.yaml

Then, copy the Alerter configuration file from the Downloads folder to /etc/pgedge:

sudo cp ~/Downloads/ai-dba-alerter.yaml /etc/pgedge/ai-dba-alerter.yaml

Use your choice of editor to modify the /etc/pgedge/ai-dba-alerter.yaml file to describe the deployment. The following changes are the minimum settings required for our installation walkthrough:

datastore:
  host: localhost
  database: ai_workbench
  username: postgres
  password_file: /etc/pgedge/password.txt
  port: 5432
  sslmode: disable

The SECURITY SETTINGS section stores the location of the secret file:

secret_file: /etc/pgedge/server.secret

After updating the configuration file, start the alerter; for example:

In the following example, the ai-dba-alerter command starts the alerter with the configuration file:

/opt/ai-workbench/ai-dba-alerter -config /etc/pgedge/ai-dba-alerter.yaml &

The alerter displays status messages during startup; for example:

pgEdge AI DBA Workbench Alerter v1.0.0-beta1 starting...
Configuration loaded from /etc/pgedge/ai-dba-alerter.yaml
Datastore: connected to postgres@localhost:5432/ai_workbench
[alerter] Initialized embedding provider: nomic-embed-text
[alerter] Initialized reasoning provider: qwen2.5:7b-instruct
Starting alerter engine...
[alerter] Engine starting...
[alerter] All workers started
[alerter] Retention manager started
[alerter] Blackout scheduler started
[alerter] Re-evaluation worker started (interval: 5m0s)
[alerter] Anomaly detector started (interval: 1m0s)
[alerter] Alert cleaner started
[alerter] Threshold evaluator started (interval: 1m0s)
[alerter] Baseline calculator started (interval: 1h0m0s)
[alerter] Connection error evaluator started (interval: 30s)
[alerter] Calculating baselines for 0 connections, 28 rules (lookback: 7 days)
[alerter] Baseline calculation complete

The alerter runs as a background process; press Enter to view your prompt.

Running the Workbench

The server does not include a static file service; install and configure nginx to serve the client files and proxy API requests to the server before running the Workbench. Use your choice of package manager to install nginx.

TLS is required

Any network-accessible deployment must terminate TLS in the reverse proxy that fronts the server. The reverse proxy is responsible for TLS termination, HTTP-to-HTTPS redirection, and HSTS. See the TLS and reverse proxy requirements for the full operator checklist.

In the following example, the apt install command installs nginx:

sudo apt install nginx

Then, create and open the nginx configuration file; this example uses the vi command to open the nginx configuration file:

sudo vi /etc/nginx/sites-available/ai-dba-workbench

Update the nginx configuration file to set the proxy rules and file root for your installation:

server {
    listen 80;
    server_name your_server_hostname_or_ip;

    root /opt/ai-workbench/client;
    index index.html;

    location /api/ {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /mcp/ {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
        proxy_cache off;
        proxy_read_timeout 300s;
    }

    location = /health {
        proxy_pass http://localhost:8080;
    }

    location / {
        try_files $uri $uri/ /index.html;
    }
}

Then, use the ln, nginx, and systemctl commands to enable the configuration and restart nginx:

sudo ln -s /etc/nginx/sites-available/ai-dba-workbench \
    /etc/nginx/sites-enabled/ai-dba-workbench
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl restart nginx

Open a browser and navigate to http://<server-ip>; provide authentication details when the Workbench opens.

Log in to the AI DBA Workbench

After logging in, select the + next to the DATABASE SERVERS heading in the left navigation panel. The Workbench adds a new server definition entry.

Adding a server definition

For detailed information about using the Workbench, see the User Guide.

Customizing your Configuration

Consult the following guides for additional configuration information:

  • The systemd configuration guide provides details about setting up systemd service management for users who did not use pgEdge packages when installing.

  • The collector guide covers tuned connection pools and SSL.

  • The server guide covers TLS, authentication, and LLM integration.

  • The alerter guide covers anomaly detection and notification channels.

  • The web client guide covers proxy settings and build options.