Skip to content
docker-registry-like API with redirection, as a wsgi app
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis
builder
crane Fixing path for the js script files. Dec 18, 2018
deployment Implement option to serve local content Aug 15, 2018
docs
tests Implement option to serve local content Aug 15, 2018
.coveragerc
.gitignore
.travis.yml Adds a symlink to the new location of the header files for openssl Aug 7, 2018
AUTHORS Safer handling of Accept headers Jan 22, 2018
COMMITMENT Rename CCRC to GPLCC in COMMITMENT Dec 18, 2018
COPYRIGHT
Dockerfile
LICENSE
README.rst Implement option to serve local content Aug 15, 2018
requirements.txt
run.py
setup.cfg Migrates README.rst content into the sphinx built project May 11, 2016
setup.py
test-requirements.txt

README.rst

crane

https://travis-ci.org/pulp/crane.svg?branch=master https://coveralls.io/repos/pulp/crane/badge.png?branch=master

What is Crane?

Crane is a small read-only web application that provides enough of the docker registry API to support "docker pull". Crane supports two modes of operation:

  1. Serve 302 redirects to some other location where files are being served. A base file location URL can be specified per-repository. This is the default mode.
  2. Local content delivery. In this mode, Crane provides "X-Sendfile" headers to the Apache web server. Apache will deliver the static files including all its optimizations.

Crane loads its data from json files stored on disk. It does not have a database or use any other services. The json files can be generated with pulp by publishing a docker repository.

Crane is a flask app written in Python. It is very easy to deploy and has a small footprint, so it is a great way to provide a read-only "docker pull" API that redirects to a static file service.

Advanced users can configure a search appliance to support "docker search" and can setup repository protection using SSL certificates.

See the current development documentation for more information.

You can’t perform that action at this time.