项目介绍
Monday 是一个用于本地应用程序和端口转发的开发工具,特别适用于微服务的开发环境。这个命令行工具(CLI)可以帮助开发者定义配置,以便与本地应用程序(如 Go、NodeJS、Rust 等)协同工作。在不希望本地运行某些应用程序的情况下,还可以通过 Kubernetes 进行远程应用的端口转发。
Monday 的功能
Monday 提供了一些强大的功能,帮助开发者更方便地管理项目:
- 统一配置:为所有开发者定义一个统一的应用程序配置方式。
- 运行本地应用:可以轻松地在本地运行应用程序。
- 热重载:当本地修改时,可自动热重载应用程序。
- 端口转发:通过 Kubernetes 或 SSH 将远程应用程序的端口转发到本地。
- 流量转发:可以通过 Kubernetes、SSH 或 TCP 将远程应用流量转发到本地。
- 自动重连:当转发连接丢失时可自动重连。
- 多次端口转发:可以通过使用主机名在本地多次转发相同的端口。
- 监控应用:监控本地和/或被转发的应用程序。
安装方式
Monday 的安装方式多样,支持通过 Homebrew(适用于 macOS)和下载二进制文件方式进行安装:
Homebrew (macOS)
$ brew install eko/homebrew-tap/monday
下载二进制文件
根据你的计算机架构下载最新版本:
- i386: 适用于 Linux
- amd64: 适用于 Darwin 和 Linux
- arm: 适用于 Darwin 和 Linux
从源码构建
开发者可以选择从源码构建 Monday。使用 go get
或 git clone
获取源码,然后通过 make build
构建二进制文件。
配置项目
Monday 的配置保存在一个或多个 YAML 文件中,默认情况下,运行 monday init
将创建一个 ~/monday.yaml
文件。用户可以通过设置环境变量 MONDAY_CONFIG_PATH
来自定义配置目录。配置文件也可以按特定模式分割成多个文件,如 ~/monday.localapps.yaml
, ~/monday.forwards.yaml
等,这样方便用户更有效地管理配置。
项目的配置也分为本地应用程序和需要转发的应用程序,提供详细的 YAML 格式示例,帮助用户理解如何配置。
使用指南
在初始化 Monday 并编辑配置文件后,可以通过命令行简单地运行项目:
$ monday [--ui]
通过 --ui
参数,用户可以启用用户界面。或者,通过以下命令直接运行特定项目:
$ monday run [--ui] <project name>
Monday 还允许用户通过 monday edit
命令再次编辑配置文件。
环境变量
Monday 支持多个环境变量来调整配置:
MONDAY_CONFIG_PATH
:指定配置文件的路径。MONDAY_EDITOR
:指定用于编辑配置文件的编辑器。MONDAY_ENABLE_UI
:指定是否使用终端用户界面。
社区与测试
开发者可以加入 Monday 的 Slack 社区,与其他用户交流、提出问题或建议新特性。测试套件可以通过以下命令运行:
$ go test -v ./...
以上是 Monday 项目的详细介绍。通过 Monday,开发者可以更加高效地管理微服务开发环境,实现本地与远程应用的无缝衔接。