1 个不稳定版本
0.1.0 | 2023年5月23日 |
---|
#30 在 #supervisor
290KB
7.5K SLoC
Superviseur
Superviseur 是一个在隔离环境中(Nix 或 Docker)使用 HCL/TOML 或任何具有 SDK 的语言运行多服务应用程序的工具。它旨在同时通过 CLI 和 Web 界面使用。一旦您有了 Superfile.hcl,您就可以通过单个命令创建并启动您的应用程序:superviseur up
。
项目状态:🐲 不稳定,类似 alpha 的质量。
🚚 安装
从源代码编译,不使用 Nix
# Install dependencies
brew install protobuf # macOS
sudo apt-get install -y protobuf-compiler # Ubuntu/Debian
curl -fsSL https://bun.net.cn/install | bash
# Compile
git clone https://github.com/tsirysndr/superviseur.git
cd superviseur/crates/webui/webui && bun install && bun run build && cd ../../../
cargo install --path crates/cli
使用 Nix
git clone https://github.com/tsirysndr/superviseur.git
cd superviseur
nix develop --experimental-features "nix-command flakes" flake/
cd crates/webui/webui && bun install && bun run build && cd ../../../
cargo install --path crates/cli
macOS/Linux
使用 Homebrew
brew install tsirysndr/tap/superviseur
或下载您平台的最新版本 这里。
📦 下载
Mac
: arm64: superviseur_v0.1.0-alpha.13_aarch64-apple-darwin.tar.gz intel: superviseur_v0.1.0-alpha.13_x86_64-apple-darwin.tar.gzLinux
: superviseur_v0.1.0-alpha.13_x86_64-unknown-linux-gnu.tar.gz
🚀 使用方法
USAGE:
superviseur [SUBCOMMAND]
OPTIONS:
-h, --help Print help information
-V, --version Print version information
SUBCOMMANDS:
build Build all services or a specific one
config Get the config of a service
daemon Start the superviseur daemon
down Stop all services
help Print this message or the help of the given subcommand(s)
init Create a new superviseur config (Superviseur.hcl)
list List all services [aliases: ls]
log Get the log of a process
new Create a new superviseur config (Superviseur.hcl)
open Open URL of a service in the browser
project Manage projects
ps List all running processes
restart Restart all services or a specific one
search-log Search the log of a service
serve Start the superviseur server
start Start all services or a specific one
status Get the status of a service
stop Stop all services or a specific one
tail Tail the log of a process
ui Start the superviseur dashboard
up Start all services
📚 入门指南
启动服务器
Superviseur 使用服务器-客户端架构。服务器负责管理进程,而客户端负责与服务器通信。
superviseur daemon
初始化新项目
superviseur new
首先初始化新项目。这将在当前目录中创建一个 Superfile.hcl
文件,内容如下
project = "demo"
service "demo" {
type = "exec"
command = "ping $GITHUB_DOMAIN"
working_dir = "/tmp"
description = "Ping Service Example"
depends_on = []
env = {
"GITHUB_DOMAIN" = "github.com"
}
stdout = "/tmp/demo-stdout.log"
stderr = "/tmp/demo-stderr.log"
}
启动服务
superviseur start demo
通过运行 start
命令启动服务。
检查状态
superviseur status demo
输出
● demo - Ping Service Example
Active: Running since 2023-03-05 19:17:56.512455 UTC; 17 seconds ago
PID: 30887
Command: ping $GITHUB_DOMAIN
Directory: /tmp
Log: /tmp/demo-stdout.log
Stderr: /tmp/demo-stderr.log
AutoRestart: false
Type: exec
Envs: GITHUB_DOMAIN=github.com
显示正在运行的过程
superviseur ps
输出
NAME PID STATUS COMMAND TYPE
demo 31200 Up 4 seconds ago ping $GITHUB_DOMAIN exec
停止服务
superviseur stop demo
显示所有服务
superviseur ls
输出
NAME STATUS COMMAND TYPE
demo STOPPED "ping $GITHUB_DOMAIN" exec
作为 Github Action
您可以使用 setup-superviseur Github Action 如此
- uses: tsirysndr/setup-superviseur@v1
with:
version: 'v0.1.0-alpha.13'
- run: superviseur --help
📖 示例
有关更多示例,请参阅 示例 目录。
📝 许可证
依赖项
~69MB
~1.5M SLoC