/crane

Yet another control plane based on docker built-in swarmkit

Primary LanguageGoApache License 2.0Apache-2.0

Crane

Join the chat at https://gitter.im/Dataman-Cloud/crane Build Status Go Report Card codecov

Crane

Crane, maintained by dataman-cloud, is a docker control panel based on latest docker release. Besides swarm features, Crane implements some badly needed functionalities by enterprise user, such as private registries authentication, ACL and application DAB(distributed application bundle) sharing. The smart fuzzy search function give user quickly access to the desired page. Crane can help storing registry auth pair, from where you can choose a predefined registry auth pair when deploying a DAB, without the need to docker login when access private image. Crane can also help sharing your private images with your coworkers easily.

Features

  • Swarm features: Portal every feature of swarm almost. Crane has highlighted the common swarm functions and improved the user experiences through the friendly frontend.
  • Stack Templates Management: User can save a running stack as a template, by which others can deploy repeatly.
  • Image Management: The private image owned by user can be publiced to others.
  • Fuzzy Search: A in-memory index maintained by the backend serves the function.
  • Node Operation: Crane details about a node such as kernel version, docker info, docker images and also containers running on the node.
  • Network Management: The overlay network CRUD.
  • Registries Authentication Management: You can save your private registry username/password pair to Crane, with which a to-be-deployed stack with restricted image access can attach.
  • WebSSH: Command 'docker exec' is the magic behind it.

OS supported

  • Ubuntu 12.04 Server
  • Ubuntu 14.04 Server
  • CentOS 7.X
  • MacOS 10.x

Installation

Prerequisites

Option 1: Stable version in one line

Please read the release/v1.0.6/README.md

Option 2: development workflow from docker build

  • build crane image
$ ./bin/build-push-or-up.sh build
  • tips to get real host ip based on eth0 interface:
ip addr s eth0 |grep "inet "|awk '{print $2}' |awk -F "/" '{print $1}'
  • docker-compose up crame service
$ CRANE_IP=`<your real host ip,such as 192.168.1.x>` ./bin/build-push-or-up.sh up
  • remove crane container
$ ./bin/build-push-or-up.sh down

CRANE_IP should be assigned the real host ip address of the running Crane host which is the swarm manager also.

How to use it

Demo Crane

Build From Source

Clone crane in GoPath

> mkdir -p ${GOPATH}/src/github.com/Dataman-Cloud
> cd ${GOPATH}/src/github.com/Dataman-Cloud
> git clone https://github.com/Dataman-Cloud/crane.git crane

And make sure you have go (>= 1.6) go into the crane dir

> make

Please click Crane User Guide in Chinese for more details.

Conventions

repo branch

  • master: actively moving foward. PR will be merged into this master branch.
  • release: Released versions. Tagged commits or hotfix PR will be pushed here. Maintained by the repo owners.

Trouble-shooting

Community

Gitter

Wechat group: 数人云Crane技术交流群

Contribution

Both pull-requests or issues are welcomed from the community.

License

Crane is available under the Apache 2 license.