Gompose is a configurable process management application for local development.
Gompose is inspired by following works:
- https://github.com/mattn/goreman
- https://github.com/kimmobrunfeldt/concurrently
- https://github.com/docker/compose
- Go 1.9+
$ go get github.com/keekun/gompose
$ touch .gompose.yaml
edit .gompose.yaml
and add processes settings.
processes:
job1:
name: Say-Yes
command: "echo '{\"test\": 12344}' | jq -c ."
spawn: ["/bin/bash", "-c"]
format:
fgcolor: "cyan"
bgcolor: "black"
header: "[{{.Proc.Name}}|{{.Now.Format \"15:04:05\"}}] "
job2:
name: JSON
command: "echo '{\"json\": 777}' | jq -c ."
format:
fgcolor: "red"
bgcolor: "black"
run
$ gompose
- Spawn processes according to
.gompose.yaml
file with colorized log. - Cache logs into BoltDB, index logs locally with bleve.
- Add interactive cli mode and allow user to filter/search logs.
- Add cli tool to start/stop/restart process.
- More options, like environment variables, signal trapping, etc.
- Support docker-compose-like options for docker.
- Support k8s-like options.
- Add HTTP UI.
- Add tests.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.