swirl/README.md

120 lines
2.9 KiB
Markdown
Raw Normal View History

2017-09-26 12:50:09 +00:00
# SWIRL
2017-10-24 10:04:28 +00:00
[![Swirl](https://goreportcard.com/badge/cuigh/swirl)](https://goreportcard.com/report/cuigh/swirl)
2017-09-26 12:50:09 +00:00
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
* LDAP authentication support
* Full permission control based on RBAC model
* Scale out as you want
2017-10-24 10:04:28 +00:00
* Multiple language support
2017-09-26 12:50:09 +00:00
* And more...
## Snapshots
### Dashboard
![Dashboard](docs/images/dashboard.png)
### Service list
![Service list](docs/images/service-list.png)
### Compose list
![Compose list](docs/images/compose-list.png)
### Role editing
![Role editing](docs/images/role-edit.png)
### Settings
![Setting](docs/images/setting.png)
## Configuration
### With config file
All options can be set with `config/app.conf`.
```xml
<config>
<app>
<add key="name" value="swirl"/>
</app>
<web>
<add key="address" value=":8001"/>
<!-- default authorize mode, valid options: *(everyone)/?(login user)/!(authorized explicitly) -->
<add key="authorize_mode" value="?"/>
</web>
<swirl>
<!-- optional -->
<add key="docker_endpoint" value="tcp://docker-proxy:2375"/>
2017-10-24 10:04:28 +00:00
<!-- optional, valid options: mongo -->
2017-09-26 12:50:09 +00:00
<add key="db_type" value="mongo"/>
<!-- required, database connection string, must match with db.type option -->
<add key="db_address" value="localhost:27017/swirl"/>
</swirl>
</config>
```
### With environment variables
Only three main 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 |
### With swarm config
2017-10-24 10:04:28 +00:00
Docker support mounting configuration file through swarm from v17.06, so you can store your config in swarm and mount it to your program.
2017-09-26 12:50:09 +00:00
## Deployment
### Stand alone
2017-10-24 10:04:28 +00:00
Just copy the swirl binary and config/assets/views directories to the host, and run it.
2017-09-26 12:50:09 +00:00
```bash
2017-10-24 10:04:28 +00:00
./swirl
2017-09-26 12:50:09 +00:00
```
### Docker
```bash
2017-10-24 10:04:28 +00:00
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
2017-09-26 12:50:09 +00:00
```
### Docker swarm
```bash
docker service create \
--name=swirl \
--publish=8001:8001/tcp \
2017-10-24 10:04:28 +00:00
--env DB_ADDRESS=localhost:27017/swirl \
2017-09-26 12:50:09 +00:00
--constraint=node.role==manager \
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
cuigh/swirl
```
## Build
2017-10-24 10:04:28 +00:00
**Swirl** use `dep` as dependency management tool(coming soon).
2017-09-26 12:50:09 +00:00
## 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.