Your new microservice development environment friend. This CLI tool allows you to define a configuration to work with both local applications (Go, NodeJS, Rust or others) and forward some other applications over Kubernetes in case you don't want to run them locally.
✅ Define a unified way to setup applications for all your developers
✅ Run your local applications
✅ Hot reload your applications automatically when a change is made locally
✅ Port-forward an application locally using a remote one on Kubernetes (targeting a pod via label) or over SSH
✅ Forward traffic of a remote application over Kubernetes, SSH or TCP locally (see example forward types)
✅ Auto reconnect when a port-forward connection is lost
✅ Forward multiple times the same port locally, using an hostname
You can download and setup Monday binary by running the following command on your terminal:
$ curl https://composieux.fr/getmonday.sh | sh
$ brew install eko/homebrew-tap/monday
This will install the latest available release
You can download the latest version of the binary built for your architecture here:
- Architecture i386 [ Darwin / Linux ]
- Architecture amd64 [ Darwin / Linux ]
- Architecture arm [ Linux ]
Optionally, you can download and build it from the sources. You have to retrieve the project sources by using one of the following way:
$ go get -u github.com/eko/monday
# or
$ git clone https://github.com/eko/monday.git
Install the needed vendors:
$ GO111MODULE=on go mod vendor
Then, build the binary using the available target in Makefile:
$ make build
First, you have to initialize monday and edit your configuration file (you have a configuration example file here).
Run the following command and edit the ~/monday.yaml
configuration file just created for you:
That's why I suggest to run Monday using the following alias:
alias monday='sudo -E monday'
$ monday init
Once your configuration file is ready, you can simply run Monday:
$ monday
Or, you can run a specific project directly by running:
$ monday run <project name>
When you want to edit your configuration again, simply run this command to open it in your favorite editor:
$ monday edit
Configuration of Monday lives in one or multiple YAML files, depending on how you want to organize your files.
By default, monday init
will initiates a ~/monday.yaml
file. You can customize the configuration directory by setting the MONDAY_CONFIG_PATH
environment variable.
Please note that you can also split this configuration in multiple files by respecting the following pattern: ~/monday.<something>.yaml
, for instance:
~/monday.localapps.yaml
~/monday.forwards.yaml
~/monday.projects.yaml
This will help you in having smaller and more readable configuration files.
To lear more about the configuration, please take a look at the Configuration Wiki page.
For an overview of what's possible with configuration file, please look at the configuration example file here.
Test suite can be run with:
$ go test -v ./...