SQL Query Dashboard System

Data analysis tools

A SQL query and dashboard system that runs on your own computer: write queries in the browser, turn the results into charts and put the charts on a dashboard. A demo database is already connected, with a demo query and a bar chart. You bring it up with Docker Compose, and the keys and the administrator password are generated at random by a script. Derived from a frozen snapshot of an open-source project under the BSD-2-Clause licence; the delivery adds a Dockerfile that builds the image from source, an orchestration file, a script that generates the keys and passwords, and a quick-start guide in Traditional Chinese.

SubscriptionUS$49 per month
Last run2026-11-02
In practice
Readiness4 / 5
What you need
Few changes needed4 / 5

Who it is for

Individuals and small teams who want to query their own database with SQL, make charts and dashboards, and keep their data and accounts on their own machine.

How to start

$ sh scripts/quickstart/init-env.sh
$ docker compose up -d --build

Browse the files

Files in the product repository at the pinned commit. A few house files are left out of the zip.

File overview1,432 paths
▸bin3
docker-entrypoint
release
run
▸client773
.babelrc
.eslintignore
.eslintrc.js
.gitignore
app/
cypress/
prettier.config.js
tsconfig.json
visual-tests/
▸demo1
init/
▸migrations32
0001_warning.py
README
alembic.ini
env.py
script.py.mako
versions/
▸redash193
__init__.py
app.py
authentication/
cli/
destinations/
handlers/
metrics/
models/
monitor.py
permissions.py
…
▸scripts4
README.md
quickstart/
▸setup1
README.md
▸tests95
README.oidc.md
__init__.py
destinations/
factories.py
handlers/
metrics/
models/
oidc_provider.py
query_runner/
serializers/
…
▸viz-lib278
.babelrc
.gitignore
CHANGELOG.md
README.md
__tests__/
package.json
prettier.config.js
src/
tsconfig.json
webpack.config.js
▫ATTRIBUTION.md
▫CHANGELOG.md
▫CONTRIBUTING.md
▫Dockerfile
▫Dockerfile.quickstart
▫LICENSE
▫LICENSE-99LL.md
▫LICENSE.borders
▫Makefile
▫PRODUCT.md
▫QUICKSTART.md
▫README.md
▫SECURITY.md
▫SECURITY.upstream.md
▫codecov.yml
▫compose.yaml
▫cypress.config.js
▫delivery-manifest.txt
▫manage.py
▫netlify.toml
▫package.json
▫pnpm-lock.yaml
▫pnpm-workspace.yaml
▫pyproject.toml
▫pytest.ini
▫uv.lock
▫webpack.config.js
▫worker.conf
▫Config and hidden files 24

Latest passing run

Clone → Checkout → Toolchain → Build images → Admin login and demo query

Pre-purchase Disclosure

What you are buying

A self-hosted SQL query and dashboard system: write queries in the browser, turn the results into charts and put them on a dashboard, with a demo database already connected and a demo query attached. You bring it up with Docker Compose, and the first start creates the administrator automatically.

Derived from an open-source project under the BSD-2-Clause licence, and not the original project itself. Our work: a Dockerfile, an orchestration file, a step that creates the demo content, a key generation script and a quick-start guide in Traditional Chinese.

Delivery is a frozen snapshot: one zip, taken from the product repository at revision d585a54.

Known limitations

  • The service listens only on port 5001 of the local machine 127.0.0.1, over plain HTTP; TLS and opening it to others are yours to bring
  • The interface text is in English
  • No outgoing mail is configured, and you set it up yourself when needed
  • The proprietary drivers for SQL Server and Databricks are not installed, so the interface has no data source of those two kinds
  • Features that run code are not enabled, including custom JavaScript charts
  • The demo query appears only about half a minute after start-up
  • Connection details of data sources are encrypted with the key in .env, and cannot be read after that value is replaced
  • The data lives in Docker named volumes, and docker compose down -v deletes all data
  • The first start builds the image from source, fetching from registries, apt and package repositories during that time
  • Pinned to the delivered snapshot; it does not follow upstream.

The liability cap, the scope of what is promised and the statutory floor are governed by the Terms of Service.

Vetting record

Everything below was checked against the pinned commit cdc39a2. Every verdict carries its full reasoning, an evidence link and the checker; failures are published, not hidden — do not take our word for it, verify it yourself.

5 PASS0 WARN0 FAIL

Source ReviewPASS

Execution surface of the delivery reviewed item by item. Our own additions were read: compose.yaml (the web port is bound to 127.0.0.1 only; it refuses to start when any key or password is missing; the database and queue ports are not exposed; the version check is off; inline scripts in user input and custom JavaScript charts are not enabled; the data uses named volumes), scripts/quickstart/first-run.sh (creates the tables and creates the administrator by command, without duplicating on a rerun), scripts/quickstart/seed-demo.py (creates the demo data source, query and bar chart through the web service’s own REST API; the administrator API key is read straight from the database and not printed), scripts/quickstart/init-env.sh (openssl generates random values, .env is mode 600, an existing .env is not overwritten) and one change in redash/models/users.py (avatars use the built-in default image, so no email hash is sent to an outside site). The upstream Python and front-end sources were not read file by file; the basis is the BSD-2-Clause licence and container isolation.

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-038-sql-query-dashboard/blob/d585a546dc29b8bb0df2aa9045ec20c168d59c1e/compose.yamlChecked in 2026Checked by claude-code build-product session
Script SafetyPASS

The scripts on the buyer’s delivery path were each inspected: init-env.sh, first-run.sh and seed-demo.py are ours (reviewed); the build goes through Dockerfile.quickstart (read: system packages from apt, uv and pnpm installing from lock files, base images fixed by digest, with no download piped straight into a shell). At start-up upstream’s docker-entrypoint manages the server, scheduler and workers.

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-038-sql-query-dashboard/blob/d585a546dc29b8bb0df2aa9045ec20c168d59c1e/scripts/quickstart/first-run.shChecked in 2026Checked by claude-code build-product session
RecencyPASS

This product is a frozen snapshot and does not follow upstream: the upstream source is pinned to the main-line revision taken on the day the product repository was created (see the evidence link), and the product repository is that snapshot plus our own commits.

Evidence ↗Checked in 2026Checked by claude-code build-product session
LicensePASS

SPDX:LicenseRef-99LL-Product

Upstream LICENSE was checked (the evidence link points at the file itself at the pinned version and matches the copy inside the product repository): the standard BSD-2-Clause text, copyright holder Arik Fraimovich. It allows commercial use, modification, derivative works, redistribution and sale; the duties are to keep the copyright notice, conditions and disclaimer when distributing source, and to reproduce them in the documentation when distributing in binary form (LICENSE and ATTRIBUTION.md ship in the zip); upstream has no NOTICE file. Upstream also carries LICENSE.borders, which records the source and terms of use of one set of Bahrain map data (free for personal and commercial use with attribution) and is kept with the snapshot. The decision does not rest on GitHub’s licence field. For the product as a whole the 99LL product licence template is attached: upstream’s LICENSE is kept as it is and LICENSE-99LL.md is added as the sale and liability terms for the part we built, with spdx recorded as LicenseRef-99LL-Product.

Evidence ↗Checked in 2026Checked by claude-code build-product session
Dependency LicensesPASS

This records the declared side, not a scan result: the Python dependencies are declared in pyproject.toml and locked by uv.lock, the front end is declared in package.json and locked by pnpm-lock.yaml, and the packages themselves are fetched from their own repositories when the buyer builds; the base images and system packages come from a registry and apt. These dependency trees were not scanned package by package for licences. Upstream has no submodule; for the LICENSE.borders it also carries, see the licence entry (and ATTRIBUTION.md and that file).

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-038-sql-query-dashboard/blob/d585a546dc29b8bb0df2aa9045ec20c168d59c1e/ATTRIBUTION.mdChecked in 2026Checked by claude-code build-product session
HEALTH VERIFIED

Last verified passing: 2026-11-02

Subscribe for everything
US$49/ monthwas US$99

A subscription unlocks the whole catalogue; you do not buy this one separately.See what is included

Sign in with Google first; if you are signed out you will be sent to the sign-in page. Your subscription is billed to that same email address.

Already subscribed? This downloads straight away. Otherwise you are sent to the pricing page, or to sign in first.