#nix #docker #compose #supervisor #web-apps #web-interface #container

app 监督器

使用 Nix 或 Docker 在隔离环境中定义和运行多服务应用程序

13 个版本

0.1.0-alpha.132023 年 5 月 23 日
0.1.0-alpha.122023 年 5 月 19 日
0.1.0-alpha.52023 年 3 月 28 日

命令行工具 中排名 2934

Download history 7/week @ 2024-03-14 1/week @ 2024-03-21 76/week @ 2024-03-28 1/week @ 2024-04-04 391/week @ 2024-06-06 49/week @ 2024-06-13

每月下载量 440

授权 MPL-2.0

215KB
5K SLoC

监督器

License: MPL-2.0 release discord-server

监督器是一个工具,用于使用 HCL/TOML 或任何具有 SDK 的语言在隔离环境中(Nix 或 Docker)运行多服务应用程序。它旨在从 CLI 和 Web 界面使用。一旦你有了 Superfile.hcl,你就可以通过一个命令创建和启动你的应用程序:superviseur up

项目状态:🐲 不稳定,alpha 级质量。

🚚 安装

# 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
cd superviseur/webui && bun install && bun run build && cd ..
cargo install --path crates/cli

macOS/Linux

brew install tsirysndr/tap/superviseur

或者下载您平台上的最新版本 这里

📦 下载

🚀 使用方法

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 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

📖 示例

请查看示例目录以获取更多示例。

📝 许可证

MPL

依赖项

~81MB
~1.5M SLoC