3 Star 3 Fork 2

codeskyblue / gosuv

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

gosuv

Build Status

Should not use in production now (current is in beta)

Process management writtern by golang, inspired by python-supervisor

So why write another supervisor?

I have been using python-supervisor for many years and there are something uncomfortable feelings.

  1. Log can't contains ANSI color chars
  2. The configuration file can add on the web, often forgot some settings.
  3. supervisorctl reload will cause supervisord restarted
  4. Hard to set status change to fatal notifications.
  5. No process performance monitor page.
  6. Program starts with no common environ, eg, missing HOME and USER variable
  7. Kill process default is not group kill which make sub process still running.
  8. More... will added when I think of it.

Features

  • Web control page

  • HTTP Basic auth

  • Github webhook

  • Single log page, include search support

  • 中文文档

Requirements

Go version at least 1.6+

Installation

Standalone binary can be download from one of the following addresses

Branch Source Address
latest equinox https://dl.equinox.io/shengxiang/gosuv/stable
stable github https://github.com/codeskyblue/gosuv/releases/latest

Or if you have go enviroment, you can also build from source.

go get -d github.com/codeskyblue/gosuv
cd $GOPATH/src/github.com/codeskyblue/gosuv
go build

If you want to build a standalone binary, run the following command.

go get github.com/elazarl/go-bindata-assetfs/...
go-bindata-assetfs -tags bindata res/...
go build -tags bindata

Quick start

After you installed gosuv, the first thing is to start server.

gosuv start-server

Show server status

$ gosuv status
Server is running

Open web http://localhost:11313 to see the manager page. And follow the gif to add a program to gosuv.

gosuv web

Configuration

Default config file stored in directory $HOME/.gosuv/, Set env-var GOSUV_HOME_DIR can change config file store directory.

  • file programs.yml contains all program settings.
  • file config.yml contains server config

File config.yml can be generated by gosuv conftest

Example config.yaml

server:
  httpauth:
    enabled: false
    username: uu
    password: pp
  addr: :11313
client:
  server_url: http://localhost:11313

Logs can be found in $HOME/.gosuv/log/

Edit config file(default located in $HOME/.gosuv/programs.yml) and run gosuv reload will take effect immediately.

Design

HTTP is follow the RESTFul guide.

Get or Update program

<GET|PUT> /api/programs/:name

Add new program

POST /api/programs

Del program

DELETE /api/programs/:name

State

Only 4 states. ref

states

Notification

Configuration example

- demo-program:
  command: ...
  notifications:
    pushover:
      api_key: [token]
      users:
      - [user1]
      - [user2]

Now only support pushover, and only status change to fatal will get notified.

Integrate with github (todo)

This is feature that will helps update your deployment environment once your updated in the github.

This part is set in the programs.yml, take look the example

- demo-program:
  command: python app.py
  directory: /opt/demo
  webhook:
    github:
      secret: 123456
      command: git pull origin master

LICENSE

MIT

The MIT License (MIT) Copyright (c) 2015 shengxiang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

golang port of python-supervisor 展开 收起
Go
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/shxsun/gosuv.git
git@gitee.com:shxsun/gosuv.git
shxsun
gosuv
gosuv
master

搜索帮助