48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
# Docker Backend Display
|
|
|
|
This project provides a web interface to display information about running Docker services, particularly useful for local development environments. It consists of a Node.js backend that interacts with the Docker socket and a React frontend for visualization.
|
|
|
|
## Features
|
|
|
|
- Discovers running Docker containers with exposed ports.
|
|
- Prioritizes Traefik-exposed services, showing their public URLs.
|
|
- For non-Traefik services, identifies and makes clickable local IP addresses accessible from the client's subnet.
|
|
- Real-time updates for container start/stop events.
|
|
- Modern and responsive user interface with frosted glass effects for service cards.
|
|
|
|
## Prerequisites
|
|
|
|
To run this application, you need to have the following installed:
|
|
|
|
- **Docker**: For running containers and interacting with the Docker daemon.
|
|
- **Docker Compose**: For orchestrating the backend and frontend services.
|
|
- **Node.js & npm**: (Optional, for local development outside Docker)
|
|
|
|
## Running the Application Locally with Docker Compose
|
|
|
|
1. **Clone the repository**:
|
|
```bash
|
|
git clone <your-repository-url>
|
|
cd docker-backend-display
|
|
```
|
|
|
|
2. **Start the services**:
|
|
```bash
|
|
docker compose up --build
|
|
```
|
|
This command will:
|
|
- Build the Docker images for both the backend and frontend services.
|
|
- Start the backend service, which connects to your Docker daemon.
|
|
- Start the frontend service.
|
|
|
|
3. **Access the application**:
|
|
- **Frontend**: Open your web browser and navigate to `http://localhost:3000`.
|
|
- **Backend API**: The backend API is available at `http://localhost:3001/api/services`.
|
|
|
|
## Accessing Services
|
|
|
|
- The frontend will display cards for each discovered Docker service.
|
|
- If a service is exposed via Traefik, clicking its card will take you to the Traefik-assigned URL.
|
|
- If a service is not Traefik-exposed but has an IP accessible from your local network, clicking its card will take you to that local IP and port.
|
|
- Otherwise, the card will list all accessible container IPs and ports as individual clickable links.
|