A simple web-based Docker container management interface with a modern design. This application provides a fast and intuitive way to start and stop Docker containers on the go through a beautiful web interface.
π― Live Demo
This application is designed for internal use only and should be deployed behind a VPN or in a secure network environment.
- No authentication or authorization mechanisms
- Direct access to Docker daemon
- File upload capabilities without advanced validation
- Suitable for development/staging environments only
- Real-time Container Management: Start and stop Docker containers
- Multi-Server Management: Manage Docker containers across multiple servers from a single interface
- Server Selector: Quickly switch between local and remote servers
- Add/Edit/Delete Servers: Configure remote servers with custom name, address, and port
- Server-Aware Display: Container cards show which server they belong to
- Custom Container Icons: Upload custom icons for better visual identification
- Container Renaming: Assign custom names to containers
- Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Node.js >= 16.0.0
- Docker daemon running
- Docker socket accessible (
/var/run/docker.sock
)
- Clone the repository
git clone https://github.com/totovr46/fastdock.git
cd fastdock
- Install dependencies
npm install
- Start the application
npm start
- Access the interface
Open your browser and navigate to
http://serverIP:3080
GET /api/containers
- List all containers on the selected serverPOST /api/containers/:id/start
- Start a containerPOST /api/containers/:id/stop
- Stop a containerGET /api/containers/name/:name
- Find container by name
POST /api/containers/settings/:id
- Update container settings (name, icon)GET /api/containers/settings
- Get all container settings
GET /api/servers
- List configured remote serversPOST /api/servers
- Add a new serverPUT /api/servers/:id
- Edit an existing serverDELETE /api/servers/:id
- Remove a server
fastdock/
βββ server.js # Main server file
βββ package.json # Dependencies and scripts
βββ public/
β βββ index.html # Main web interface
β βββ assets/ # Uploaded container icons
β βββ containerSettings.json # Container customization data
β βββ servers.json # Stored remote server configurations
βββ README.md
PORT
- Server port (default: 3080), you can change it in the server.js file as you prefer
The application requires access to the Docker socket. Ensure Docker is running and the socket is accessible:
Linux/macOS:
ls -la /var/run/docker.sock
Windows (WSL):
# Ensure Docker Desktop is running
docker ps
- Select Server: Use the dropdown menu to choose a local or remote server
- View Containers: See all containers for the selected server
- Start/Stop: Use the buttons to manage containers as usual
- Edit Container: Click the pencil icon to change name or icon
- Click the edit icon (pencil) on any container card
- Upload a custom icon (image files only)
- Set a custom name for easier identification
- Click "Save" to apply changes
- Click the server selector dropdown
- Select "Add Server" to configure a new remote Docker server 878F
- Use the edit or delete options to manage existing servers
- Server data is persisted and automatically loaded on startup
- π’ Green: Container is running
- π΄ Red: Container is stopped
- Deploy behind VPN: Ensure the application is only accessible through a secure VPN connection
- Internal Network: Use only in trusted internal networks
- Only image files are accepted for container icons
- Files are stored in the
public/assets/
directory
- The application requires Docker socket access
- All VPN users will have full container management capabilities
- Consider Docker socket security best practices
- No User Authentication: All users have the same access level
- No Audit Logging: Container operations are not logged
- Local Storage: Settings are stored in local JSON files
- Single Instance: Not designed for multi-instance deployment
As of v1.1.0, FastDock supports managing containers across multiple Docker hosts. Key points:
- Add servers with custom name, address, and port
- Switch between servers using the dropdown selector
- View and manage containers per-server
- Each container shows the server it belongs to
- Full backwards compatibility with single-server setups
- Server list and settings are persisted locally
- 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