Skip to content

About

A simple database management dashboard.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Database Management

A self-hosted web dashboard for deploying and managing database containers via Docker. Built with Next.js 16, Tailwind CSS, and Dockerode.

Deploy Postgres, MySQL, MariaDB, MongoDB, or Redis instances with a single click — each with persistent storage, auto-assigned ports, and credential management.

Features

  • One-click deployment — spin up database containers from the UI
  • Multi-engine support — Postgres, MySQL, MariaDB, MongoDB, Redis
  • Persistent storage — data volumes are bound to db-data/<name>/ on the host
  • Auto-assigned ports — Docker picks an available host port automatically
  • Credential display — view/hide usernames and passwords per instance
  • Delete with cleanup — force-remove containers from the dashboard

Prerequisites

  • Node.js 20+
  • pnpm
  • Docker (daemon must be running)
  • The user running the app needs access to /var/run/docker.sock

Getting Started

1. Install dependencies

pnpm install

2. Pre-fetch database images (optional)

Pull all supported images ahead of time so deployments are instant:

pnpm prefetch
# or
./scripts/update_images.sh

3. Run the development server

pnpm dev

Open http://localhost:3000 to access the dashboard.

Usage

  1. Fill in the Deploy Database form (engine type, container name, DB name, credentials, version).
  2. Click Deploy Database — a new Docker container starts with persistent storage under db-data/.
  3. The card on the right shows connection details: host, port, username, password, and DB name.
  4. Click the trash icon to stop and remove a container.

Project Structure

app/
  page.tsx             # Dashboard UI (deploy form + database cards)
  actions/
    deployDb.ts        # Server action: create & start a container
    listDbs.ts         # Server action: list managed containers
    deleteDb.ts        # Server action: force-remove a container
db-data/               # Persistent volume mounts (git-ignored)
scripts/
  update_images.sh     # Pull latest images for all supported engines

Supported Databases

Engine Default Port Image
Postgres 5432 postgres
MySQL 3306 mysql
MariaDB 3306 mariadb
MongoDB 27017 mongo
Redis 6379 redis

Tech Stack

  • Next.js 16 — App Router with React Server Actions
  • React 19 — client-side dashboard UI
  • Tailwind CSS 4 — styling
  • Dockerode — Docker Engine API client for Node.js

About

A simple database management dashboard.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages