panoboard
v1.13.3
Published
YAML-driven analytics dashboard CLI
Readme
panoboard
YAML-driven analytics dashboard for SQL backends. Define dashboards in YAML, write queries in SQL.
Quick Start
npx panoboard init # create panoboard.yaml in current directory
npx panoboard dev # start with hot reloadCommands
panoboard dev Start in development mode (YAML hot reload)
panoboard serve Start in production mode
panoboard validate Validate all YAML config files (CI-safe, exit 1 on errors)
panoboard init Create a starter panoboard.yamlAll commands accept --config <path> to point at a panoboard.yaml in a non-standard location. dev and serve also accept --port <n>.
Configuration
panoboard.yaml is the single config file. Place it in your project root:
# panoboard.yaml
server:
port: 3000
# datasources and dashboards default to ./datasources and ./dashboardsFull example:
datasources: ./config/sources
dashboards: ./config/dashboards
server:
port: 3000
auth:
mode: oauth
providers:
google:
client_id: ${GOOGLE_CLIENT_ID}
client_secret: ${GOOGLE_CLIENT_SECRET}
cache:
enabled: true
provider: redis
url: ${REDIS_URL}Environment variables (${VAR}) are interpolated throughout. A .env file in the same directory as panoboard.yaml is loaded automatically.
Datasources
datasources.yaml (or a directory of YAML files):
datasources:
- name: analytics
type: postgres
host: ${DB_HOST}
database: ${DB_NAME}
auth:
type: password
user: ${DB_USER}
password: ${DB_PASSWORD}Supported backends: PostgreSQL, BigQuery, Redshift, Snowflake, URL.
Dashboards
One YAML file per dashboard in ./dashboards/:
slug: overview
title: Overview
datasource: analytics
panels:
- title: Total Users
type: metric
query: SELECT count(*) AS value FROM usersDocumentation
Full documentation at panoboard.dev.
License
Business Source License 1.1 — converts to Apache 2.0 after the change date.
