Initial commit
This commit is contained in:
207
README.md
Normal file
207
README.md
Normal file
@@ -0,0 +1,207 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
git clone https://github.com/your-username/docker-registry-browser.git
|
||||
cd docker-registry-browser
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### Option 3: Build from Source
|
||||
|
||||
```bash
|
||||
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)
|
||||
|
||||
1. In Unraid, go to **Apps** tab
|
||||
2. Search for "Docker Registry Browser"
|
||||
3. Click **Install**
|
||||
4. Configure the settings and click **Apply**
|
||||
|
||||
### Method 2: Manual Template
|
||||
|
||||
1. In Unraid, go to **Docker** tab
|
||||
2. Click **Add Container**
|
||||
3. Set **Template** to the template URL or upload the XML template
|
||||
4. Configure the required settings
|
||||
5. Click **Apply**
|
||||
|
||||
### Method 3: Docker Compose (Unraid 6.12+)
|
||||
|
||||
1. Install the "Compose Manager" plugin
|
||||
2. Create a new compose stack with the provided `docker-compose.yml`
|
||||
3. 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
|
||||
|
||||
1. Access the web interface at `http://your-server:8080`
|
||||
2. Browse repositories on the left panel
|
||||
3. Select a repository to view its tags
|
||||
4. Click the info button to view detailed image information
|
||||
5. Use the menu for push commands and settings
|
||||
6. 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**:
|
||||
1. Verify `REGISTRY_HOST` is correct
|
||||
2. Check if registry is accessible from container
|
||||
3. For local registries, ensure `--add-host=host.docker.internal:host-gateway` is 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
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
npm install
|
||||
|
||||
# Development server
|
||||
npm start
|
||||
|
||||
# Build for production
|
||||
npm run build
|
||||
|
||||
# Build Docker image
|
||||
docker build -t docker-registry-browser .
|
||||
```
|
||||
|
||||
### Contributing
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch
|
||||
3. Make your changes
|
||||
4. Test thoroughly
|
||||
5. Submit a pull request
|
||||
|
||||
## Health Check
|
||||
|
||||
The container includes a health check endpoint at `/health` that returns:
|
||||
- `200 OK` with "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
|
||||
|
||||
## Support
|
||||
|
||||
- **GitHub**: [Issues and Discussions](https://github.com/your-username/docker-registry-browser)
|
||||
- **Docker Hub**: [Container Images](https://hub.docker.com/r/your-dockerhub-username/docker-registry-browser)
|
||||
- **Unraid Forums**: [Community Support](https://forums.unraid.net/)
|
||||
|
||||
## 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
|
||||
Reference in New Issue
Block a user