Go to file
2018-04-04 19:34:41 +08:00
assets Support dragging and rearranging charts 2018-04-03 16:02:44 +08:00
biz Save version to settings for compatibility 2018-04-04 18:46:59 +08:00
config Use ECharts instead of Chart.js 2018-04-02 16:19:12 +08:00
controller Allow customizing charts of service stats page 2018-04-02 18:31:06 +08:00
dao Refactor dashboard management 2018-03-27 16:32:30 +08:00
docs/images Rename dashboard to home 2018-03-16 16:50:03 +08:00
misc Allow customizing auth expiration 2018-03-20 13:07:19 +08:00
model Sort labels 2018-04-04 19:18:37 +08:00
scaler Use ECharts instead of Chart.js 2018-04-02 16:19:12 +08:00
security Refactor dashboard management 2018-03-27 16:32:30 +08:00
views Optimize style 2018-04-04 19:34:41 +08:00
.gitattributes Add codes 2017-09-26 20:50:09 +08:00
.gitignore Add codes 2017-09-26 20:50:09 +08:00
compose.yml Add compose file 2018-01-04 15:54:28 +08:00
Dockerfile Update Font Awesome to v5 2018-01-26 13:10:54 +08:00
Gopkg.lock Update vendor 2018-03-23 18:14:23 +08:00
Gopkg.toml Refactor authentication & authorization modules 2018-02-24 12:59:04 +08:00
LICENSE Initial commit 2017-09-25 03:43:54 -05:00
main.go Allow customizing charts of service stats page 2018-04-02 18:31:06 +08:00
README.md Add link to Prometheus 2018-04-03 18:14:28 +08:00

SWIRL

Docker Pulls Swirl

Swirl is a web management tool for Docker, focused on swarm cluster.

Features

  • Swarm components management
  • Image and container management
  • Compose management with deployment support
  • Service monitoring based on Prometheus
  • Service auto scaling
  • LDAP authentication support
  • Full permission control based on RBAC model
  • Scale out as you want
  • Multiple language support
  • And more...

Snapshots

Home

Home

Service list

Service list

Compose list

Compose list

Role editing

Role editing

Settings

Setting

Configuration

With config file

All options can be set with config/app.yml.

name: swirl
banner: false

web:
  address: ':8001'
  authorize: '?'

swirl:
  db_type: mongo
  db_address: localhost:27017/swirl
#  docker_endpoint: tcp://docker-proxy:2375

log:
  loggers:
  - level: info
    writers: console
  writers:
  - name: console
    type: console
    layout: '[{L}]{T}: {M}{N}'

With environment variables

Only these options can be set by environment variables for now.

Name Value
DB_TYPE mongo
DB_ADDRESS localhost:27017/swirl
DOCKER_ENDPOINT tcp://docker-proxy:2375
AUTH_TIMEOUT 4h

With swarm config

Docker support mounting configuration file through swarm from v17.06, so you can store your config in swarm and mount it to your program.

Deployment

Stand alone

Just copy the swirl binary and config/assets/views directories to the host, and run it.

./swirl

Docker

docker run -d -p 8001:8001 \
    --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
    -e DB_TYPE=mongo \
    -e DB_ADDRESS=localhost:27017/swirl \
    --name=swirl \
    cuigh/swirl

Docker swarm

docker service create \
  --name=swirl \
  --publish=8001:8001/tcp \
  --env DB_ADDRESS=localhost:27017/swirl \
  --constraint=node.role==manager \
  --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
  cuigh/swirl

Docker compose

docker stack deploy -c compose.yml swirl

Advanced features

Swirl use service labels to support some features, the labels in the table below are currently supported.

Name Description Examples
swirl.scale Service auto scaling swirl.scale=min=1,max=5,cpu=30:50

Build

Swirl use dep as dependency management tool. You can build Swirl

$ dep ensure
$ go build

License

This product is licensed to you under the MIT License. You may not use this product except in compliance with the License. See LICENSE and NOTICE for more information.