Giter Site home page Giter Site logo

tobegit3hub / seagull Goto Github PK

View Code? Open in Web Editor NEW
1.9K 129.0 266.0 5.13 MB

Friendly Web UI to manage and monitor docker

License: Apache License 2.0

Go 8.10% Shell 2.13% CSS 0.90% HTML 32.22% JavaScript 56.64%
docker monitor seagull management golang web

seagull's Introduction

Seagull Docker Pulls GoDoc Gitter

Introduction

Seagull is friendly Web UI to manage and monitor docker with full features.

  • Easy to install and uninstall within docker container
  • One click to start/stop/delete containers and images
  • Super fast(<10ms) for searching and filtering
  • Support multi-host management and monitoring
  • I18n includes English, Chinese, German and French

For more information, go to dockerseagull.com, watch three-minute video and official slides.

Installation

docker run -d -p 10086:10086 -v /var/run/docker.sock:/var/run/docker.sock tobegit3hub/seagull

Or run with docker-compose up -d.

Screenshot

Multi-host

Seagull supports monitoring multiple servers. Make sure you start docker daemon like this.

docker -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -api-enable-cors=true -d

Get Involved

Seagull is written in Go with tools like Docker, Beego, AngularJS, Bootstrap and JQuery.

  1. Install golang and setup $GOPATH
  2. go get github.com/astaxie/beego
  3. go get github.com/tobegit3hub/seagull
  4. go build seagull.go
  5. sudo ./seagull

More detail in seagull-design-and-implement and we have excellent documents in docs.

Notice

The issue #2 shows that everyone can access your docker daemon if the IP and port of seagull are exposed. For security, you can bind to localhost to restrict the access.

docker run -d -p 127.0.0.1:10086:10086 -v /var/run/docker.sock:/var/run/docker.sock tobegit3hub/seagull

seagull's People

Contributors

arckosfr avatar dlsniper avatar elberth90 avatar gitter-badger avatar hopesoft avatar jarischaefer avatar larrycai avatar limmen avatar morrisjobke avatar skalt avatar tobegit3hub avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

seagull's Issues

Docker logs needed

It'd be great that showing logs instead of sudo docker logs container_name

sort in table view

Would be nice to be able to browse images in descending order of size, or date.

ping issue firewall

You forgot that some some server got icpm disabled. Ping will not work.
So only way to fix that is to disable ping in:

$scope.addServer = function (newServer) {

    /* Check if we can access the new server */
    //$http.get(canonicalizeServer(newServer) + '/_ping').success(function(data) {
      //if (data === "OK") {
        alert_success("Add server " + newServer);

        $scope.servers.push(newServer)
        $scope.currentServer = newServer;
        $rootScope.canonicalServer = canonicalizeServer($scope.currentServer);
        $scope.notCurrentServers = unique($scope.servers.slice(0).remove($scope.currentServer)); // D
eep copy

        $route.reload();
      //}
    //}).error(function(data){alert_error('Can\'t add this server')});

  };

translation guideline

will be nice to have translation guideline under development category or other place, so it can be shown to volunteers to get support.

It could get easy help for people has less knowledge of seagull.

larry

Restart containers like supervisord

Now seagull is only used to monitor docker daemon. It would be great to manage containers like supervisord.

We can monitor the status of containers and restart them if they abort unexpectedly. We need more discussion about the detail and make sure it doesn't increase the complexity.

extra support for docker registry ?

so far it is communicated with docker daemon for images and containers, is it possible to add support for docker registry by checking the directory of images directly ?

-v /var/lib/docker.sock:/var/lib/docker.sock

into

-v /data/registry:/registry

If doing this, it is also possible to support local docker images instead of socket

-v /var/lib/docker/aufs:/registry

In long term like rocket project will push local docker client will be possible to run without daemon.

Support authentication and security stuff

Here's the comment from Solomon Shykes in HN.

Everything you say is true, but it doesn't mean this web ui is not useful, or a bad idea. It just means that it should add authentication :)

Since we are developing Docker's identity and authentication primitives separately from the main binary (https://github.com/docker/libtrust), it would be a cool experiment to try using that in Seagul.

Personally I think this is a cool project, and look forward to seeing it evolve!

Now seagull is kind of for developers. We don't consider about security a lot. Maybe we should know more about libtrust and try to support authentication.

Support French

I'm asking someone to do that. It would be great if you can help.

Add .drone.yml

Now seagull is using drone for CI. We should provide .drone.yml for everyone to use it.

Support Japenese

I'm learning Japenese ๐Ÿ˜„

Could someone help to improve this?

Need to support boot2docker

Now it's accessing /var/run/docker.sock to get data from docker remote API. But boot2docker doesn't have that file. We should support boot2docker by using HTTP remote API or other methods.

support readonly mode

it will be nice to support readonly mode, so the GUI (this port) can be open to all user to know what images/containers exist in this docker server.

So I can run this on the registry server directly without registry API.

It can be passed as -e type=readonly when start the container

show container's port in GUI

PORTS is very important information for the container, it will be nice to see the port listed there as well.

CONTAINER ID        IMAGE                                      COMMAND                CREATED             STATUS              PORTS                                                                                                                       NAMES
db9faf02fcc9        tobegit3hub/seagull:latest                 "./seagull"            3 minutes ago       Up 3 minutes        0.0.0.0:2386->10086/tcp                                                                                       

Not really an issue, but could we have no-wrap option for container columns?

Basically I am using your great tool to monitor some 40+ containers on multiple servers.
Unfortunately some of the names and images are quite long.
Similar to this (not quite real) example: "api-internal-party_contact_mechanism_purposes"
The display wraps this, the image name, the ports and the status in the table on the dashes, making it a tad difficult to read quickly.
It's not really an issue but it would be nice to have the ability for the table to expand with no wraps on those columns.
Perhaps a tick box just before the filter drop down?

Multi host support?

I am not sure if it is detailed somewhere but I cannot find information about multiple hosts support in seagull, it is available or at least planned in a future?

show active container and images

In container list, all are displayed including "Exit" like docker command docker ps -l, better to filter them by default.

In images list, all images including ":", will be better to filter them.

Fix the anchor of json

After supporting multi-host, we have to fix the link of the json images. It always link to local server now.

Make the server list persistent

Now seagull support mutli-host and you can add new server in this single page app. But the server list is not persistent. It's annoying that you have to add the server if you refresh the page.

Doesn't work on CentOS 7

Host sever is running CentOS 7. DockerUI works well with same docker configuration.

$ docker run -p 10086:10086 -v /var/run/docker.sock:/var/run/docker.sock tobegit3hub/seagull
2015/06/16 05:53:37 [app.go:103] [I] http server Running on :10086
Error to connect to /var/run/docker.sock dial unix /var/run/docker.sock: permission denied
Error to connect to /var/run/docker.sock dial unix /var/run/docker.sock: permission denied
Error to connect to /var/run/docker.sock dial unix /var/run/docker.sock: permission denied

Good to monitor the resources of containers

Someone want this from seagull. Actually cAdvisor has monitored resources of containers by using cgroups directly. I hope the docker remote API could support this so that we don't have to access another files and do the repeated jobs.

Now it's blocked by moby/moby#8842.

Feel free to push us about this ๐Ÿ˜บ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.