A modern, beautiful Docker Dashboard for managing containers, images, and volumes with a premium glassmorphism UI.
- 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
- Browse all Docker images
- Run containers from images with custom arguments
- Delete unused images
- View image tags, size, and creation date
- List all Docker volumes
- Create new volumes
- Delete volumes with confirmation
- View mountpoint and driver info
- Node.js 18+
- Docker running on your machine
- pnpm (recommended) or npm
# Clone the repository
git clone https://github.com/yourusername/dockpit.git
cd dockpit
# Install dependencies
pnpm install
# Start development server
pnpm run devOpen http://localhost:5173 in your browser.
# Build the client
cd client && pnpm run build && cd ..
# Start the server
node bin/cli.js- Fastify - Fast and low overhead web framework
- Dockerode - Docker Remote API bindings
- Socket.io - Real-time bidirectional communication
- React 18 - UI library
- Vite - Next generation frontend tooling
- Tailwind CSS - Utility-first CSS framework
- Lucide React - Beautiful icons
- XTerm.js - Terminal emulator
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
- 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
GET /api/containers- List all containersPOST /api/containers/:id/start- Start containerPOST /api/containers/:id/stop- Stop containerPOST /api/containers/:id/restart- Restart containerPOST /api/containers/:id/pause- Pause containerPOST /api/containers/:id/unpause- Unpause containerDELETE /api/containers/:id- Remove container
GET /api/images- List all imagesPOST /api/images/:id/run- Run container from imageDELETE /api/images/:id- Remove image
GET /api/volumes- List all volumesPOST /api/volumes- Create volumeDELETE /api/volumes/:name- Remove volume
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 |
MIT License - feel free to use this project for personal or commercial purposes.