All Projects → codeskyblue → Gosuv

codeskyblue / Gosuv

Licence: mit
Deprecated!!! Process managerment writtern by golang, inspired by python-supervisor

Programming Languages

javascript
184084 projects - #8 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Gosuv

docker-symfony
Docker Symfony (PHP-FPM - NGINX - MySQL - MailHog - Redis - RabbitMQ)
Stars: ✭ 32 (-94.82%)
Mutual labels:  supervisor
aiohttp skeleton
Skeleton for aiohttp site
Stars: ✭ 19 (-96.93%)
Mutual labels:  supervisor
Autoops
linux资产管理,cmdb,django, webssh,运维管理平台,数据库操作平台 本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!
Stars: ✭ 340 (-44.98%)
Mutual labels:  supervisor
docker-python-gunicorn-nginx
Docker image with Python3, Gunicorn and Nginx managed with Supervisor
Stars: ✭ 42 (-93.2%)
Mutual labels:  supervisor
minisv
Simple supervisor for easy multi-binary service deploy
Stars: ✭ 26 (-95.79%)
Mutual labels:  supervisor
epazote
🌿 Automated HTTP (microservices) supervisor
Stars: ✭ 34 (-94.5%)
Mutual labels:  supervisor
ncolony
A colony of interacting processes
Stars: ✭ 23 (-96.28%)
Mutual labels:  supervisor
Cesi
CeSI is a web interface for managing multiple supervisors from the same place.
Stars: ✭ 500 (-19.09%)
Mutual labels:  supervisor
docker-examples
Configuration files for typical service running in Docker.
Stars: ✭ 18 (-97.09%)
Mutual labels:  supervisor
Finit
Fast init for Linux systems. Cookies included
Stars: ✭ 293 (-52.59%)
Mutual labels:  supervisor
supervisor-rs
Lite Rust version of supervisor, inspired by python version
Stars: ✭ 34 (-94.5%)
Mutual labels:  supervisor
laravisor
Generate laravel supervisor configuration in easiest way
Stars: ✭ 20 (-96.76%)
Mutual labels:  supervisor
superdiscoverer
A Supervisor backed service discoverer for automatic service-discovery.
Stars: ✭ 15 (-97.57%)
Mutual labels:  supervisor
init
Lightweight BSD-style init tools
Stars: ✭ 25 (-95.95%)
Mutual labels:  supervisor
Ergo
a Framework for creating mesh networks using technologies and design patterns of Erlang/OTP in Golang
Stars: ✭ 376 (-39.16%)
Mutual labels:  supervisor
nyx
Lean linux and OSX process monitoring written in C
Stars: ✭ 24 (-96.12%)
Mutual labels:  supervisor
fastapi douyin
更新 2.0 版本,使用 Python WEB 高性能异步框架 FastAPI 制作的抖音无水印解析下载,采用前后端分离思想!
Stars: ✭ 58 (-90.61%)
Mutual labels:  supervisor
Roadrunner
🤯 High-performance PHP application server, load-balancer and process manager written in Golang
Stars: ✭ 6,122 (+890.61%)
Mutual labels:  supervisor
S6
The s6 supervision suite.
Stars: ✭ 452 (-26.86%)
Mutual labels:  supervisor
exo
A process manager & log viewer for dev
Stars: ✭ 296 (-52.1%)
Mutual labels:  supervisor

gosuv

Build Status

中文README 不是很全,能看懂英文的还是尽量看英文

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

  • [x] Web control page

    • [x] Start, Stop, Tail, Reload
    • [x] Realtime log
  • [x] HTTP Basic auth

  • [x] Github webhook

  • [ ] Single log page, include search support

  • [ ] 中文文档

Requirements

Go version at least 1.6+

Installation

Binaries

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.

Build from source

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

Quick start

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.

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: 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:[email protected]: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.

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

Alternative

LICENSE

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].