๐Ÿ“ฆ Bogdanp / racket-chief

Chief runs Procfile-based applications. Like foreman, but written in Racket.

โ˜… 27 stars โ‘‚ 2 forks ๐Ÿ‘ 27 watching
racket
๐Ÿ“ฅ Clone https://github.com/Bogdanp/racket-chief.git
HTTPS git clone https://github.com/Bogdanp/racket-chief.git
SSH git clone git@github.com:Bogdanp/racket-chief.git
CLI gh repo clone Bogdanp/racket-chief
Bogdan Popa Bogdan Popa build: add license field to info.rkt 3553d3a 3 years ago ๐Ÿ“ History
๐Ÿ“‚ master View all commits โ†’
๐Ÿ“ chief
๐Ÿ“ media
๐Ÿ“„ .gitignore
๐Ÿ“„ README.md
๐Ÿ“„ README.md

chief

Chief is a port of [foreman] to Racket. It runs sets of processes together based on a Procfile.

screenshot

Getting Started

You can install chief from the package server by running:

$ raco pkg install chief

Usage

Create a Procfile:

assets: npm start
web: raco koyo serve
redis: redis-server --port $PORT

Run the processes:

$ raco chief start

Chief will automatically load environment variables from a .env file located in the current directory. Additional .env files can be specified using the -e flag:

$ raco chief start -e env-file-1 -e env-file-2

Different procfiles can be specified using the -f flag:

$ raco chief start -f Procfile.dev

You can run arbitrarily many processes of each type using the -m flag:

$ raco chief start -m web=1 -m redis=3

Every process type is assigned a range of 100 ports, beginning with port 5000, and every instance of a process type gets assigned one of those ports via the PORT environment variable. In the example above, the assets proces would have its PORT environment variable set to 5000, the web process would have its PORT set to 5100, and the redis processes would have their PORTs set to 5200, 5201 and 5202, respectively.

Differences from foreman

  • The export command is not supported.
  • The -e flag can be passed multiple times.
  • The -m flag can be passed multiple times.