A modern, web-based Docker management interface built with Vue.js and Node.js that provides a Docker Desktop-like experience for managing containers, images, volumes, and networks.
Manage your Docker containers, images, volumes, and networks with an intuitive web interface that rivals Docker Desktop
π Quick Start β’ π Documentation β’ π οΈ Features β’ π€ Contributing
- π± Responsive Design: Works on desktop, tablet, and mobile
- π― Intuitive UI: Clean, user-friendly interface
- π Bootstrap 5: Modern styling and components
- π Smart Port Detection: Automatic protocol suggestions
- π Detailed Views: Comprehensive resource information
- π Fast Performance: Optimized for speed and efficiency
- Containers: Start, stop, restart, remove, and view logs
- Images: View, remove, and inspect Docker images
- Volumes: Manage Docker volumes with usage information
- Networks: Configure and manage Docker networks
- Real-time Updates: WebSocket integration for live status updates
- Resource Statistics: Dashboard with system overview
docker-web-desktop/
βββ π₯οΈ backend/ # Node.js Express API Server
β βββ src/
β β βββ routes/ # RESTful API endpoints
β β β βββ containers.js # Container management
β β β βββ images.js # Image operations
β β β βββ volumes.js # Volume management
β β β βββ networks.js # Network configuration
β β βββ services/
β β β βββ docker.js # Docker API integration
β β βββ server.js # Main application server
β βββ package.json
β
βββ π¨ frontend/ # Vue.js Single Page Application
β βββ src/
β β βββ components/ # Reusable Vue components
β β β βββ Sidebar.vue # Navigation sidebar
β β β βββ ContainerCard.vue
β β β βββ ...
β β βββ views/ # Page components
β β β βββ DashboardView.vue
β β β βββ ContainersView.vue
β β β βββ ResourcesView.vue
β β β βββ InstallationView.vue
β β β βββ AboutView.vue
β β βββ stores/ # Pinia state management
β β βββ services/ # API communication layer
β β βββ router/ # Vue Router configuration
β β βββ main.js
β βββ package.json
β
βββ π README.md
βββ π instructions.txt
βββ π§ Configuration files
Before you begin, ensure you have the following installed:
| Requirement | Version | Download |
|---|---|---|
| π’ Node.js | 18+ | nodejs.org |
| π³ Docker Desktop | Latest | docker.com |
| π¦ npm | 8+ | Included with Node.js |
| π§ Git | Latest | git-scm.com |
-
Clone the repository
git clone https://github.com/devremoto/docker-web-desktop.git cd docker-web-desktop -
Install dependencies
# Backend dependencies cd backend && npm install # Frontend dependencies cd ../frontend && npm install
-
Start the application
# Terminal 1: Start backend (from project root) cd backend && npm run dev # Terminal 2: Start frontend (from project root) cd frontend && npm run dev
-
Access the application
- π Frontend: http://localhost:5173
- π§ Backend API: http://localhost:3000
- β€οΈ Health Check: http://localhost:3000/api/health
π‘ Tip: Use the provided batch scripts on Windows:
start-backend.batandstart-frontend.bat
ποΈ Container Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/containers |
List all containers |
GET |
/api/containers/:id |
Get container details |
POST |
/api/containers/:id/start |
Start container |
POST |
/api/containers/:id/stop |
Stop container |
DELETE |
/api/containers/:id |
Remove container |
GET |
/api/containers/:id/logs |
Get container logs |
πΌοΈ Image Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/images |
List all images |
GET |
/api/images/:id |
Get image details |
DELETE |
/api/images/:id |
Remove image |
πΎ Volume Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/volumes |
List all volumes |
DELETE |
/api/volumes/:name |
Remove volume |
π Network Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/networks |
List all networks |
DELETE |
/api/networks/:id |
Remove network |
Node.js - JavaScript runtime
Express.js - Web framework
Dockerode - Docker API client
Socket.IO - Real-time communication
Vue.js 3 - Progressive framework
Bootstrap 5 - CSS framework
Pinia - State management
Vite - Build tool
Create a .env file in the backend directory:
# Server Configuration
PORT=3000
NODE_ENV=development
# Docker Configuration (automatically detected)
# DOCKER_SOCKET_PATH=/var/run/docker.sock # Linux/Mac
# Windows uses: \\.\pipe\docker_engine
# CORS Settings
FRONTEND_URL=http://localhost:5173| Service | Default Port | Environment Variable |
|---|---|---|
| Backend API | 3000 | PORT |
| Frontend Dev | 5173 | Configured in vite.config.js |
| WebSocket | 3000 | Same as backend |
npm start # Start production server
npm run dev # Start development with nodemon
npm test # Run tests
npm run lint # Run ESLintnpm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLintπ§ Common Issues
# Check Docker status
docker version
docker ps
# On Linux/Mac - Fix permissions
sudo chmod 666 /var/run/docker.sock
sudo usermod -aG docker $USER
# Restart Docker Desktop# Find process using port
netstat -ano | findstr :3000 # Windows
lsof -i :3000 # Mac/Linux
# Kill process
taskkill /PID <PID> /F # Windows
kill -9 <PID> # Mac/Linux# Check version
node --version
# Clear npm cache
npm cache clean --force
# Reinstall dependencies
rm -rf node_modules package-lock.json
npm install-
Build the frontend
cd frontend npm run build -
Configure backend for production
cd backend npm install --production -
Start production server
npm start
# Example Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- π Follow existing code style
- β Add tests for new features
- π Update documentation
- π§ͺ Test thoroughly before submitting
This project is licensed under the MIT License - see the LICENSE file for details.
Adilson de Almeida Pedro
- π Website: adilson.almeidapedro.com.br
- π GitHub: @devremoto
- π¦ Twitter: @zumcoder
- πΌ LinkedIn: Adilson Pedro
- π¬ WhatsApp: +351 924 498 223 | +55 11 9353-6732
If you find this project helpful, consider supporting its development:
- β Star this repository
- π Report bugs and suggest features
- π€ Contribute to the codebase
- β Buy me a coffee via Ko-fi
- π³ Docker team for the amazing containerization platform
- π¨ Vue.js team for the excellent frontend framework
- π― Bootstrap team for the beautiful UI components
- π Open Source Community for the incredible tools and libraries
Built with β€οΈ by Adilson Pedro
Star β this repository if you find it useful!