Quickly control your Docker containers from a simple web UI
Docker Switchboard is a lightweight web application for managing your Docker containers. It provides a clean, user-friendly interface to start, stop, and monitor containers running on your host, making it ideal for local development, home labs, or small server setups.
Note: Docker Switchboard is not intended to replace advanced container management solutions like Portainer or Rancher. Instead, it offers a fast, no-fuss way to control your containers without the command line.
- View all running and stopped containers
- Start and stop containers with a single click
- Auto-refresh container status
- Regex-based filtering to show only relevant containers
- Simple YAML configuration
- Very lightweight (less than 7MB image size, ~50kB page size)
You can run Docker Switchboard as a Docker container:
docker run -d \
-p 8080:8080 \
-v /path/to/config/app.yaml:/config/app.yaml \
-v /var/run/docker.sock:/var/run/docker.sock \
cfstcyr/docker-switchboardOr use Docker Compose:
services:
switchboard:
image: cfstcyr/docker-switchboard
ports:
- "8080:8080"
volumes:
- /path/to/config/app.yaml:/config/app.yaml # Optional
- /var/run/docker.sock:/var/run/docker.sock| Variable | Description | Default |
|---|---|---|
PORT |
The port on which the app will run | 8080 |
CONFIG_PATH |
Path to the configuration file | /config/app.yaml |
The configuration file is a YAML file with the following fields:
| Field | Description | Default |
|---|---|---|
refresh_interval |
Interval (in seconds) to refresh the container list | 5 |
container_match |
Regex pattern to match container names (only matching are shown) | .* |
Example app.yaml:
refresh_interval: 5
container_match: ".*"- Open your browser and go to
http://localhost:8080(or the port you configured). - Use the web UI to view, start, or stop containers.
To run the project locally (requires Go and Node.js):
-
Clone the repository:
git clone https://github.com/cfstcyr/docker-switchboard.git cd docker-switchboard -
Start the backend API:
cd apps/api go run main.goOn MacOS, you will need to pass DOCKER_HOST:
DOCKER_HOST=unix:///$HOME/.docker/run/docker.sock go run main.go -
Start the frontend client:
cd apps/client pnpm install pnpm dev
Contributions are welcome! Please open issues or submit pull requests for bug fixes, features, or documentation improvements.
For questions or support, open an issue on GitHub.