.github | ||
bin | ||
examples | ||
fixtures | ||
fixtures-code | ||
imgs | ||
issues | ||
scripts | ||
src | ||
www | ||
.editorconfig | ||
.gitignore | ||
.goreleaser.yaml | ||
default.nix | ||
flake.lock | ||
flake.nix | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
process-compose-win.yaml | ||
process-compose.override.yaml | ||
process-compose.yaml | ||
README.md | ||
test_loop.bash | ||
test_loop.ps1 |
Process Compose
Process Compose is a simple and flexible scheduler and orchestrator to manage non-containerized applications.
Why? Because sometimes you just don't want to deal with docker files, volume definitions, networks and docker registries. Since it's written in Go, Process Compose is a single binary file and has no other dependencies.
Once installed, you just need to describe your workflow using a simple YAML schema in a file called process-compose.yaml
:
version: "0.5"
processes:
hello:
command: echo 'Hello World'
pc:
command: echo 'From Process Compose'
depends_on:
hello:
condition: process_completed
And start it by running process-compose
from your terminal.
Check the Documentation for more advanced use cases.
Features:
- Processes execution (in parallel or/and serially)
- Processes dependencies and startup order
- Process recovery policies
- Manual process [re]start
- Processes arguments
bash
orzsh
style (or define your own shell) - Per process and global environment variables
- Per process or global (single file) logs
- Health checks (liveness and readiness)
- Terminal User Interface (TUI) or CLI modes
- Forking (services or daemons) processes
- REST API (OpenAPI a.k.a Swagger)
- Logs caching
- Functions as both server and client
- Configurable shortcuts
- Merge Configuration Files
- Namespaces
- Run Multiple Replicas of a Process
- Run a Foreground Process
- Themes Support
It is heavily inspired by docker-compose, but without the need for containers. The configuration syntax tries to follow the docker-compose specifications, with a few minor additions and lots of subtractions.
![TUI](/F1bonacc1/process-compose/media/tag/v1.6.1/imgs/tui.png)
Get Process Compose
Documentation
How to Contribute
- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
English is not my native language, so PRs correcting grammar or spelling are welcome and appreciated.
Consider supporting the project ❤️
Github (preferred)
https://github.com/sponsors/F1bonacc1
Bitcoin
![3QjRfBzwQASQfypATTwa6gxwUB65CX1jfX](/F1bonacc1/process-compose/media/tag/v1.6.1/imgs/btc.wallet.qr.png)
3QjRfBzwQASQfypATTwa6gxwUB65CX1jfX
Thank You!