Deprecated!!! Process managerment writtern by golang, inspired by python-supervisor
中文README 不是很全,能看懂英文的还是尽量看英文
Process management writtern by golang, inspired by python-supervisor
I have been using python-supervisor for many years and there are something uncomfortable feelings.
supervisorctl reload
will cause supervisord restartedWeb control page
HTTP Basic auth
Github webhook
Single log page, include search support
中文文档
Go version at least 1.6+
The fastest way is run with. Default install location is /usr/local/bin
, change env-var BINDIR
will also change install location.
curl https://raw.githubusercontent.com/codeskyblue/gosuv/master/get.sh | bash
Or just download binaries
https://github.com/codeskyblue/gosuv/releases
Thanks to goreleaser which makes publish binaries automaticly.
go get -d github.com/codeskyblue/gosuv
cd $GOPATH/src/github.com/codeskyblue/gosuv
go generate # package html resources into go
go build -tags vfs
After you installed gosuv, the first thing is to start server.
gosuv start-server
Basic operations
$ gosuv status
PROGRAM NAME STATUS
test running
test_again stopped
$ gosuv stop test
$ gosuv start test
Open web http://localhost:11313 to see the manager page. And follow the gif to add a program to gosuv.
Default config file stored in directory $HOME/.gosuv/
, Set env-var GOSUV_HOME_DIR
can change config file store directory.
programs.yml
contains all program settings.config.yml
contains server configFile config.yml
can be generated by gosuv conftest
Example config.yaml
server:
httpauth:
enabled: true
username: admin
password: admin
addr: :8083
name: 10.10.99.177
master: ""
notifications:
dingtalk:
groups:
- secret: c1b8032******************aa736a
mobile:
- "153********"
client:
server_url: http://admin:admin@localhost:8083
master 的支持来自 https://github.com/ihaiker/distributed-gosuv
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.
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
Only 4 states. ref
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.
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