A lightweight, elegant web interface for Docker container management
LightDockerWebUI is a clean, fast, and simple web-based Docker management tool designed for home servers, development environments, and small deployments. No complex setup โ just run and manage your containers from any browser.
|
|
|
|
|
|
Dashboard โ View and manage all containers
Get up and running in 30 seconds:
docker run -d --restart unless-stopped \
-p 8008:8008 --name=DockerManager \
-v $(pwd)/instance:/app/instance \
ftsiadimos/lightdockerwebui:latestThen open http://localhost:8008 in your browser. That's it! ๐
๐ณ Docker (Recommended)
# Pull and run
docker pull ftsiadimos/lightdockerwebui:latest
docker run -d --restart unless-stopped \
-p 8008:8008 \
--name=DockerManager \
-v $(pwd)/instance:/app/instance \
ftsiadimos/lightdockerwebui:latest๐ Docker Compose
# docker-compose.yml
version: '3.8'
services:
DockerManager:
image: ftsiadimos/lightdockerwebui:latest
container_name: DockerManager
ports:
- "8008:8008"
volumes:
- ./instance:/app/instance
restart: unless-stoppeddocker-compose up -d๐ From Source (Development)
# Clone repository
git clone https://github.com/ftsiadimos/lightdockerwebui.git
cd lightdockerwebui
# Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run application
flask run --host=0.0.0.0 --port=8008LightDockerWebUI supports multiple Docker servers. Configure them through the web UI:
- Click Config in the navigation bar
- Add servers with a display name and connection details:
- Local: Leave host empty to use
/var/run/docker.sock - Remote: Enter IP/hostname and port (default: 2375 or 2376)
- Local: Leave host empty to use
- Select the active server from the dropdown
- A full interactive server terminal is available via the Terminal menu (under Configuration)
- Container terminals are full PTY shells (using
xterm.js) available from the Containers page; the legacy limited command terminal has been removed
| Variable | Default | Description |
|---|---|---|
| `FLASK_DEBUG` | `0` | Enable debug mode (development only) |
| `SECRET_KEY` | (random) | Flask secret key for sessions |
| `SQLALCHEMY_DATABASE_URI` | `sqlite:///serverinfo.db` | Database connection string |
To manage containers on a remote host, enable TCP on the Docker daemon:
# Create systemd override
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/override.conf << EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
EOF
# Reload and restart
sudo systemctl daemon-reload
sudo systemctl restart docker
โ ๏ธ Security Warning: Use TLS (port 2376) for production. Unencrypted connections should only be used on trusted networks.
lightdockerwebui/
โโโ app/
โ โโโ __init__.py # Flask application factory
โ โโโ main.py # Routes, WebSocket handlers
โ โโโ models.py # SQLAlchemy models (DockerServer)
โ โโโ forms.py # WTForms (AddServer, SelectServer)
โ โโโ static/ # CSS, JavaScript, images
โ โโโ templates/ # Jinja2 HTML templates
โโโ config.py # Flask configuration classes
โโโ start.py # Application entry point
โโโ requirements.txt # Python dependencies
โโโ Dockerfile # Container build file
โโโ docker-compose.yml # Compose configuration
# Clone and setup
git clone https://github.com/ftsiadimos/lightdockerwebui.git
cd lightdockerwebui
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
# Run with hot reload
export FLASK_DEBUG=1
flask run --host=0.0.0.0 --port=8008For production use we recommend running Gunicorn with the threaded worker class and a higher timeout to avoid workers being killed during occasional slow operations. Example command:
# Example Gunicorn command (used in Dockerfile / docker-compose)
/usr/local/bin/gunicorn -b :8008 -k gthread --workers 3 --threads 4 --timeout 120 start:appAlso ensure the Docker Python SDK is available in the environment where the app runs (needed to talk to Docker):
pip install docker- Backend: Flask 3.x, Flask-SQLAlchemy, Flask-Sock
- Frontend: Bootstrap 5.3, DataTables, jQuery
- Database: SQLite (persistent server configuration)
- Container: Docker SDK for Python
Contributions are welcome! Here's how:
- Fork the repository
- Create a feature branch: `git checkout -b feature/awesome-feature`
- Commit changes: `git commit -m 'Add awesome feature'`
- Push to branch: `git push origin feature/awesome-feature`
- Open a Pull Request
This project is licensed under the MIT License โ see LICENSE for details.
๐ Report Bug โข ๐ก Request Feature โข ๐ณ Docker Hub
โญ Star this repo if you find it useful! โญ
Made with โค๏ธ by Fotis Tsiadimos

