a3da95f4fb8264742624dd1aab6b74f9317e633d
Docker Registry Browser - Production Deployment
A modern, responsive web interface for browsing Docker registries with support for both Docker v2 and OCI manifest formats.
Features
- Browse repositories and tags
- View detailed image information (layers, environment, labels, etc.)
- Copy docker pull commands
- Push command generator with examples
- Dark/Light mode toggle
- Fully responsive design
- Support for OCI and Docker v2 manifests
- Multi-platform image support
Quick Start
Option 1: Docker Run
docker run -d \
--name docker-registry-browser \
-p 8080:80 \
--add-host=host.docker.internal:host-gateway \
-e REGISTRY_HOST=localhost:5000 \
-e REGISTRY_PROTOCOL=http \
your-dockerhub-username/docker-registry-browser:latest
Option 2: Docker Compose
git clone https://github.com/your-username/docker-registry-browser.git
cd docker-registry-browser
docker-compose up -d
Option 3: Build from Source
git clone https://github.com/your-username/docker-registry-browser.git
cd docker-registry-browser
docker build -t docker-registry-browser .
docker run -d -p 8080:80 --add-host=host.docker.internal:host-gateway docker-registry-browser
Unraid Installation
Method 1: Community Applications (Recommended)
- In Unraid, go to Apps tab
- Search for "Docker Registry Browser"
- Click Install
- Configure the settings and click Apply
Method 2: Manual Template
- In Unraid, go to Docker tab
- Click Add Container
- Set Template to the template URL or upload the XML template
- Configure the required settings
- Click Apply
Method 3: Docker Compose (Unraid 6.12+)
- Install the "Compose Manager" plugin
- Create a new compose stack with the provided
docker-compose.yml - Deploy the stack
Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
REGISTRY_HOST |
localhost:5000 |
Docker registry hostname and port |
REGISTRY_PROTOCOL |
http |
Protocol (http/https) |
REGISTRY_USERNAME |
- | Registry username (optional) |
REGISTRY_PASSWORD |
- | Registry password (optional) |
Unraid Configuration
| Setting | Default | Description |
|---|---|---|
| WebUI Port | 8080 |
Port for web interface |
| Registry Host | localhost:5000 |
Your registry address |
| Registry Protocol | http |
http or https |
| Registry Username | - | Optional authentication |
| Registry Password | - | Optional authentication |
Usage
- Access the web interface at
http://your-server:8080 - Browse repositories on the left panel
- Select a repository to view its tags
- Click the info button to view detailed image information
- Use the menu for push commands and settings
- Toggle dark/light mode using the theme button in the toolbar
Features Guide
Dark Mode
- Toggle between light and dark themes using the moon/sun icon in the toolbar
- Theme preference is saved locally and persists between sessions
- All UI components are properly themed for optimal visibility in both modes
Browsing Images
- Repository list shows all available repositories
- Click a repository to load its tags
- Search repositories using the search field
- View tag details by clicking the info button
Push Commands
- Access via the menu (three dots) in the toolbar
- Get step-by-step instructions for pushing images
- Copy commands to clipboard
- Includes multi-architecture build instructions
Image Details
- View comprehensive image information
- See layer details, environment variables, labels
- Check image size, architecture, and creation date
- Inspect exposed ports and volumes
Troubleshooting
Registry Connection Issues
Problem: Cannot connect to registry Solution:
- Verify
REGISTRY_HOSTis correct - Check if registry is accessible from container
- For local registries, ensure
--add-host=host.docker.internal:host-gatewayis set
CORS Issues
Problem: API requests blocked by CORS Solution: The nginx configuration includes CORS headers, but ensure your registry allows cross-origin requests
Authentication Issues
Problem: 401 Unauthorized errors
Solution: Set REGISTRY_USERNAME and REGISTRY_PASSWORD environment variables
Manifest Issues
Problem: "OCI index found" errors Solution: This should be resolved in the current version which supports OCI manifests
Development
Building
# Install dependencies
npm install
# Development server
npm start
# Build for production
npm run build
# Build Docker image
docker build -t docker-registry-browser .
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Health Check
The container includes a health check endpoint at /health that returns:
200 OKwith "healthy" response when running properly- Checks every 30 seconds with 3 retries
Security
- Runs as non-root user (nginx:nginx)
- Includes security headers
- No sensitive data stored in container
- Registry credentials passed via environment variables
License
MIT License - see LICENSE file for details.
Changelog
v1.0.0
- Initial release
- Support for Docker v2 and OCI manifests
- Responsive design
- Push command generation
- Dark/Light mode
- Multi-platform image support
Languages
TypeScript
44.6%
SCSS
26.9%
HTML
19.4%
JavaScript
5.6%
Shell
2.3%
Other
1.2%