Skip to content

Latest commit

Β 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐳 Dockpit

A modern, beautiful Docker Dashboard for managing containers, images, and volumes with a premium glassmorphism UI.


✨ Features

πŸ“¦ Containers

  • View all containers with real-time status
  • Start, stop, restart, pause, unpause containers
  • Real-time CPU & memory usage stats
  • Live log streaming with terminal view
  • Interactive shell (exec) access
  • Rename and delete containers
  • Search and filter by status

πŸ–ΌοΈ Images

  • Browse all Docker images
  • Run containers from images with custom arguments
  • Delete unused images
  • View image tags, size, and creation date

πŸ’Ύ Volumes

  • List all Docker volumes
  • Create new volumes
  • Delete volumes with confirmation
  • View mountpoint and driver info

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • Docker running on your machine
  • pnpm (recommended) or npm

Installation

# Clone the repository
git clone https://github.com/yourusername/dockpit.git
cd dockpit

# Install dependencies
pnpm install

# Start development server
pnpm run dev

Open http://localhost:5173 in your browser.

Production Build

# Build the client
cd client && pnpm run build && cd ..

# Start the server
node bin/cli.js

πŸ› οΈ Tech Stack

Backend

  • Fastify - Fast and low overhead web framework
  • Dockerode - Docker Remote API bindings
  • Socket.io - Real-time bidirectional communication

Frontend

  • React 18 - UI library
  • Vite - Next generation frontend tooling
  • Tailwind CSS - Utility-first CSS framework
  • Lucide React - Beautiful icons
  • XTerm.js - Terminal emulator

πŸ“ Project Structure

dockpit/
β”œβ”€β”€ bin/
β”‚   └── cli.js           # CLI entry point
β”œβ”€β”€ server/
β”‚   β”œβ”€β”€ index.js         # Fastify server
β”‚   β”œβ”€β”€ docker-service.js # Docker API wrapper
β”‚   β”œβ”€β”€ socket-handler.js # Socket.io handlers
β”‚   └── routes/
β”‚       β”œβ”€β”€ containers.js
β”‚       β”œβ”€β”€ images.js
β”‚       └── volumes.js
β”œβ”€β”€ client/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   └── services/
β”‚   └── index.html
└── package.json

🎨 UI Features

  • Glassmorphism Design - Modern frosted glass effects
  • Dark Theme - Easy on the eyes
  • Animated Gradients - Subtle hover animations
  • Real-time Updates - Socket.io powered live data
  • Responsive Layout - Works on all screen sizes

πŸ“ API Endpoints

Containers

  • GET /api/containers - List all containers
  • POST /api/containers/:id/start - Start container
  • POST /api/containers/:id/stop - Stop container
  • POST /api/containers/:id/restart - Restart container
  • POST /api/containers/:id/pause - Pause container
  • POST /api/containers/:id/unpause - Unpause container
  • DELETE /api/containers/:id - Remove container

Images

  • GET /api/images - List all images
  • POST /api/images/:id/run - Run container from image
  • DELETE /api/images/:id - Remove image

Volumes

  • GET /api/volumes - List all volumes
  • POST /api/volumes - Create volume
  • DELETE /api/volumes/:name - Remove volume

πŸ”§ Configuration

The server can be configured via CLI arguments:

node bin/cli.js --port 3000 --no-open
Option Description Default
--port Server port 3000
--no-open Don't open browser false

πŸ“„ License

MIT License - feel free to use this project for personal or commercial purposes.

About

πŸ‹πŸ“‹A modern, beautiful Docker dashboard for managing containers, images, and volumes with a premium glassmorphism UI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

Contributors

Languages