Process Compose is a simple and flexible scheduler and orchestrator to manage non-containerized applications.
Go to file
2024-05-18 00:10:25 +03:00
.github Update GH workflow to Go 1.22 2024-05-07 00:08:22 +03:00
bin support configurable termination parameters 2022-06-23 01:21:21 +03:00
examples Configurable shortcuts 2022-11-06 00:35:34 +02:00
fixtures Scale tests 2023-07-21 00:19:55 +03:00
fixtures-code feat: shutdown in reverse dependency order 2024-03-03 01:40:39 +02:00
imgs Support 2023-06-19 23:19:33 +03:00
issues Issue #177: test merge for disabled processes 2024-05-06 23:41:37 +03:00
scripts add installer script 2023-11-19 19:24:40 +02:00
src Issue #120: Add configuration to disable env auto expansion 2024-05-18 00:05:29 +03:00
www Issue #120: Add configuration to disable env auto expansion 2024-05-18 00:05:29 +03:00
.editorconfig indent size 2 is default 2022-05-09 23:58:33 +03:00
.gitignore gitignore www/.cache 2023-11-18 15:05:43 +02:00
.goreleaser.yaml lowercase release name template 2023-11-19 00:11:48 +02:00
default.nix Bump nix to v1.6.1 2024-05-18 00:10:25 +03:00
flake.lock Go 1.22 2024-05-06 23:41:37 +03:00
flake.nix Go 1.22 2024-05-06 23:41:37 +03:00
go.mod Issue #186: Fix tview border click crash 2024-05-18 00:05:29 +03:00
go.sum Issue #186: Fix tview border click crash 2024-05-18 00:05:29 +03:00
LICENSE Initial Commit 2022-04-06 00:26:50 +03:00
Makefile Added gh wf to make 2024-05-18 00:05:29 +03:00
process-compose-win.yaml deprecate 'on-failure' use 'on_failure' instead 2022-11-01 00:07:29 +02:00
process-compose.override.yaml Issue #120: Add configuration to disable env auto expansion 2024-05-18 00:05:29 +03:00
process-compose.yaml Issue #64: Pseudo terminal support 2024-03-02 21:40:13 +02:00
README.md Added themes to readme 2024-03-22 19:57:14 +02:00
test_loop.bash Issue #107 - Fix goroutine leak when readiness probe on 2023-12-08 23:24:37 +02:00
test_loop.ps1 Windows Support with CMD 2022-04-16 01:44:27 +03:00

Process Compose

made-with-Go Maintenance PRs Welcome Go Report Releases X (formerly Twitter) URL

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 or zsh 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

Get Process Compose

Installation Instructions

Documentation

Quick Start

Documentation

How to Contribute

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. 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

3QjRfBzwQASQfypATTwa6gxwUB65CX1jfX

Thank You!