Skip to content

RamboRogers/cyberdock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

screenshot charts

CyberDock

Cyberpunk Docker Registry Interface

🐳 Docker Registry | 🌍 Web UI | ⚑ Fast | 🎨 Beautiful | πŸ”’ Secure

Version 0.3.3d Go Version Platform Support License

CyberDock is a sleek, cyberpunk-themed Docker Registry with an integrated web interface. It combines a fully compliant OCI Distribution registry with a beautiful, real-time UI for managing your container images.

The intention is to provide a simple, secure, and efficient way to replay and manage your Docker images.

🌟 Features

Registry Features Content Support
  • Full OCI Distribution Specification compliance
  • Local filesystem storage with deduplication
  • Efficient blob mounting between repositories
  • Atomic operations for data integrity
  • Automatic cleanup of incomplete uploads
  • Real-time storage statistics
  • Built-in garbage collection
  • Docker V2 manifests and lists
  • OCI manifests and image indexes
  • Container configs
  • Layer tarballs
  • Cross-repository blob mounting
  • Range request support
  • πŸŽ‰v0.2.0:Garbage collection
Web Interface Security
  • Cyberpunk-themed responsive design
  • Real-time statistics and monitoring
  • Image and tag management
  • Storage efficiency tracking
  • Layer analysis and visualization
  • Search and filtering capabilities
  • Secure HTTPS access
  • Automatic TLS certificate generation
  • Content verification through digests
  • Proper file permissions
  • Safe concurrent access
  • Secure temporary file handling

πŸš€ Quick Start

Docker

Docker image is a simple way to get started.

Single-Port Mode (Recommended)

# Run on port 5000 (both registry and UI)
docker run -d --name cyberdock -p 5000:5000 mattrogers/cyberdock:latest

Access points:

If you have a mac 🍏 host and want to work around the port conflicts:

# Single-port mode on custom port
docker run -d --name cyberdock -p 5005:5000 mattrogers/cyberdock:latest
# Access at https://localhost:5005/admin/

πŸ’» Usage

Single-Port Mode (Default)

CyberDock now runs both the registry and admin UI on a single port by default, simplifying deployment:

./cyberdock -p 5000

Path-based routing:

  • /v2/* - Docker Registry API (for docker push/pull)
  • /admin/* - Web UI for managing the registry
  • /api/* - Management API endpoints
  • /static/* - Static assets for the UI
  • / - Redirects to /admin/

Kubernetes Deployment

Deploy CyberDock to your Kubernetes cluster using metallb for load balancing. You can add your cert via the UI, by default generates a self-signed cert. You'll need to restart the pod to apply the new cert.

kubectl apply -f kubernetes/cyberdock.yaml

Remote Purge ☒️

curl -k -X POST https://cyberdock:5000/api/purge

Docker Client Configuration

The Docker client works seamlessly with both single-port and dual-port modes.

Add to your Docker daemon configuration:

{
  "insecure-registries": ["localhost:5000"]
}

Push Images

docker tag your-image:tag localhost:5000/your-image:tag
docker push localhost:5000/your-image:tag

Pull Images

docker pull localhost:5000/your-image:tag

πŸ”§ Configuration

Command line flags:

# Single-port mode (default)
-p PORT  # Run both registry and UI on single port (default: 5000)

# Dual-port mode (legacy)
-r PORT  # Set registry port (default: 5000)
-g PORT  # Set web UI port (default: 5001)

Note: When both -r and -g are specified, CyberDock automatically switches to dual-port mode for backward compatibility.

⚑️ Updates

  • 0.3.4d:

    • Fixed bugs in UI showing incorrect storage totals.
  • 0.3.3d:

    • Fixed tag update bug that prevented pushing latest tags over existing images
    • Enhanced support for multi-level repository paths (org/team/project)
    • Improved layer deduplication - shared layers now properly preserved during updates
    • Added comprehensive path validation across all registry operations
  • 0.3.2d:

    • Added single-port mode as default deployment option
    • Fixed /admin routing in single-port mode
    • Simplified deployment with path-based routing
    • Added certificate management UI (upload custom certs or generate new ones)
    • Maintained backward compatibility with dual-port mode
  • 0.3.1d:

    • Added project group and name to the UI (issue #3)
  • 0.3.0d:

    • Added storage efficiency analysis
    • Added image density metric
    • Added repository health metric
    • Added total layers and average layers per image metrics
    • Added layer distribution chart
    • Bugfixes for dashes and long names
screenshot charts

βš–οΈ License

CyberDock is licensed under the GNU General Public License v3.0 (GPLv3).
Free Software

License: GPL v3

Connect With Me 🀝

GitHub Twitter Website

About

Beautiful Docker Repository with Garbage Collection

Topics

Resources

License

Stars

Watchers

Forks

Contributors