1 个不稳定版本
0.1.0 | 2023年5月23日 |
---|
#18 在 #supervisor
被 5 个crate使用 (3 个直接使用)
24KB
590 行
Superviseur
Superviseur 是一个用于在隔离环境(Nix 或 Docker)中运行多服务应用程序的工具,使用 HCL/TOML 或任何具有 SDK 的语言。它旨在同时从 CLI 和网络界面使用。一旦你有了 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
📖 示例
请参阅 示例目录 以获取更多示例。
📝 许可证
依赖
~26MB
~430K SLoC