Self-Hosted BI Dashboard

Data analysis tools

A business intelligence website that runs on your own computer: sign in, connect your own database, build charts by drag and drop and arrange them into dashboards, with a web SQL editor too, plus sample data and sample dashboards. You bring it up on a single machine with Docker Compose, and the admin password is generated at random by a script. Derived from a frozen snapshot of an open-source business intelligence platform under Apache-2.0; the delivery adds a single-machine orchestration file, a script that generates the passwords and keys, English and Traditional Chinese interface settings, 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 needed3 / 5

Who it is for

Teams who have databases and want to watch their data through charts and dashboards, and people who want to evaluate this kind of tool on their own computer first.

How to start

$ 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 overview2,000+ paths
▸ASF1
doap_Superset.rdf
▸CHANGELOG32
1.4.1.md
1.4.2.md
1.5.0.md
1.5.1.md
1.5.2.md
1.5.3.md
2.0.0.md
2.0.1.md
2.1.0.md
2.1.1.md
…
▸RELEASING117
Dockerfile.from_local_tarball
Dockerfile.from_svn_tarball
Dockerfile.make_docs
Dockerfile.make_tarball
README.md
changelog.py
email_templates/
from_tarball_entrypoint.sh
generate_email.py
make_tarball.sh
…
▸RESOURCES2
INTHEWILD.yaml
STANDARD_ROLES.md
▸docker24
.env
.env-local.example
README.md
apt-install.sh
docker-bootstrap.sh
docker-entrypoint-initdb.d/
docker-frontend.sh
docker-healthcheck.sh
docker-init.sh
docker-pytest-entrypoint.sh
…
▸docs218
.claude/
.gitignore
.nvmrc
.oxfmtrc.json
DOCS_CLAUDE.md
README.md
admin_docs/
admin_docs_versioned_docs/
admin_docs_versioned_sidebars/
admin_docs_versions.json
…
▸helm49
superset/
▸quickstart1
pythonpath/
▸requirements7
README.md
base.in
base.txt
development.in
development.txt
translations.in
translations.txt
▸scripts45
__init__.py
benchmark_migration.py
cancel_github_workflows.py
change_detector.py
check-custom-rules.sh
check-env.py
check-type.js
check_license.sh
ci_check_npm_lock_version.sh
databases/
…
▸superset735
__init__.py
advanced_data_type/
annotation_layers/
app.py
available_domains/
cachekeys/
charts/
cli/
columns/
commands/
…
▸superset-core12
.gitignore
CHANGELOG.md
LICENSE.txt
README.md
pyproject.toml
src/
tests/
▸superset-embedded-sdk23
.gitignore
.npmrc
.nvmrc
CONTRIBUTING.md
README.md
babel.config.js
package-lock.json
package.json
release-if-necessary.js
src/
…
▸superset-extensions-cli23
CHANGELOG.md
LICENSE.txt
README.md
pyproject.toml
src/
tests/
▸superset-frontend424
.gitignore
.npmrc
.nvmrc
.oxfmtrc.json
.storybook/
.stylelintignore
CHANGELOG.md
babel.config.js
changelog.config.js
custom-lint-rules/
…
▸superset-websocket25
.dockerignore
.gitignore
.npmrc
.nvmrc
.oxfmtrc.json
Dockerfile
README.md
config.example.json
config.test.json
oxlint.json
…
▸tests90
__init__.py
common/
conftest.py
consts/
example_data/
fixtures/
integration_tests/
mypy_fixtures/
testcontainers/
unit_tests/
▫AGENTS.md
▫ATTRIBUTION.md
▫CHANGELOG.md
▫CLAUDE.md
▫CODE_OF_CONDUCT.md
▫CONTRIBUTING.md
▫Dockerfile
▫GEMINI.md
▫GPT.md
▫INSTALL.md
▫LICENSE-99LL.md
▫LICENSE.txt
▫MANIFEST.in
▫Makefile
▫NOTICE
▫PRODUCT.md
▫QUICKSTART.md
▫README.md
▫SECURITY.md
▫SECURITY.upstream.md
▫UPDATING.md
▫compose.yaml
▫delivery-manifest.txt
▫docker-compose-image-tag.yml
▫docker-compose-light.yml
▫docker-compose-non-dev.yml
▫docker-compose.yml
▫dockerize.Dockerfile
▫lintconf.yaml
▫pyproject.toml
▫pytest.ini
▫setup.py
▫superset_text.yml
▫Config and hidden files 139

Latest passing run

Clone → Checkout → Toolchain → Build images → Dashboard login and api

Pre-purchase Disclosure

What you are buying

A self-hosted business intelligence dashboard: sign in, connect your own database, build charts by drag and drop and arrange them into dashboards, with a web SQL editor too. After running the password generation script you bring it up with Docker Compose, and sample data and sample dashboards are included.

Derived from an open-source business intelligence platform under the Apache-2.0 licence, and not the original project itself. Our work: a single-machine orchestration file, a script that generates the passwords and keys, English and Traditional Chinese interface settings, and a quick-start guide in Traditional Chinese.

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

Known limitations

  • The service serves plain HTTP on port 8088 of the local machine, with no HTTPS, no reverse proxy and no backup
  • The quick-start guide says plainly that this configuration is only suitable for use on your own computer and is not a production deployment
  • The initialisation log prints the admin password, and docker compose logs superset-init shows it
  • The first start runs a one-time initialisation and loads the sample data, which takes time and a fair amount of CPU
  • Features that need mail settings, such as Alerts & Reports and thumbnails, are not promised
  • How complete the Traditional Chinese translation is depends on upstream, and missing strings show in English
  • Connecting Snowflake, BigQuery and other databases means adding the drivers yourself and rebuilding the image
  • The data lives in Docker named volumes, and docker compose down -v clears the accounts, connections, charts and dashboards along with them
  • The first start builds the images from source (about 4.6 GB), fetching from registries, apt, pip and npm during that time
  • The database and cache images are pinned only to a major version, not to an image digest
  • 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 6114b81. 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 line by line: compose.yaml (the published port is bound to 127.0.0.1 on 8088 only; the database and cache publish no port; it refuses to start when any of the four passwords and keys is missing; development mode, debug flags and upstream usage statistics are off), scripts/quickstart/init-env.sh (openssl generates random values, .env is mode 600, existing values are not replaced) and the language settings in quickstart/pythonpath. The initialisation log prints the admin password. The upstream Python and front-end sources were not read file by file; the basis is the Apache-2.0 licence, container isolation and the quick-start guide saying plainly that it is only suitable for use on your own computer.

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-028-self-hosted-bi-dashboard/blob/202e4448146e42c0bb1de7d6a893a6c396c3882c/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 is ours (read line by line); the build goes through the superset stage of upstream’s Dockerfile (the apt, pip and npm install steps were read, with no download piped straight into a shell); at start-up the containers run upstream’s own initialisation and start scripts, and the application containers run as the non-root account built into the image.

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-028-self-hosted-bi-dashboard/blob/202e4448146e42c0bb1de7d6a893a6c396c3882c/scripts/quickstart/init-env.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.txt was checked word for word (the evidence link points at the file itself at the pinned version and matches the copy inside the product repository): the full text of Apache License Version 2.0; upstream’s NOTICE file is kept as it is. It allows commercial use, modification, derivative works and redistribution; the duties are to keep the licence text, the copyright notice and NOTICE (LICENSE.txt, NOTICE and ATTRIBUTION.md ship in the zip). 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 licence file 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 the lock files of the requirements directory, the front end is locked by package-lock.json, and the packages themselves are fetched from their own repositories when the buyer builds; the database and cache images are pulled from a registry. These dependency trees were not scanned package by package for licences. Three third-party GitHub Actions scripts sit in the tree under version control (sources in ATTRIBUTION.md); each one’s licence file is kept in its own directory, and their licence terms were not checked one by one.

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-028-self-hosted-bi-dashboard/blob/202e4448146e42c0bb1de7d6a893a6c396c3882c/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.