DBDash is a lightweight web UI for browsing and editing SQL databases from one place.
I built it for the "I have Postgres over here, MySQL over there, and SQL Server in another box" workflow where jumping between tools gets old fast.
- PostgreSQL, MySQL/MariaDB, and SQL Server support
- Single login-protected dashboard
- Table list + schema introspection
- Grid-based row browsing/editing
- Live database reload from
.env(POST /api/databases/reload)
- Frontend: React + Vite + AG Grid
- Backend: Express
- Drivers:
pg,mysql2,mssql
cd dbdash
cp .env.example .env
# set PASSWORD + JWT_SECRET and DB_* entries
pnpm install
pnpm dev:backend
pnpm dev:frontendOpen:
- Frontend:
http://localhost:8888 - Backend:
http://localhost:8889
docker compose build --no-cache
docker compose up -d
docker compose logs -fOpen http://localhost:${FRONTEND_PORT:-8888}.
PASSWORD: Dashboard login passwordJWT_SECRET: Secret used to sign auth tokens
FRONTEND_PORT(default8888)PORTbackend API port (default8889)
Use one block per database:
DB_1_TYPE=postgres
DB_1_ID=main_pg
DB_1_NAME=Main Postgres
DB_1_HOST=localhost
DB_1_PORT=5432
DB_1_USER=postgres
DB_1_PASSWORD=...
DB_1_DATABASE=appSupported TYPE values:
postgres,postgresqlmysql,mariadbmssql,sqlserver
POST /api/auth/loginGET /api/auth/verify
GET /api/databasesPOST /api/databases/reloadGET /api/databases/:dbId/tablesGET /api/databases/:dbId/tables/:tableName/schemaGET /api/databases/:dbId/tables/:tableName/dataPUT /api/databases/:dbId/tables/:tableName/rowPOST /api/databases/:dbId/tables/:tableName/rowDELETE /api/databases/:dbId/tables/:tableName/row
Auth header: Authorization: Bearer <token>
- SQL object identifiers are validated before query assembly.
- Row values are parameterized per driver.
- Login attempts are rate-limited.
- Keep
.envprivate. - Put HTTPS/reverse proxy in front if internet-facing.
- Very large tables still need pagination/virtualization improvements.
- No migration/schema-edit tooling (this focuses on data browsing/editing).
frontend/src/components/DatabaseBrowser.jsxbackend/src/dbManager.jsbackend/src/routes/databases.js
GPL-2.0-only