# e2c **Repository Path**: suncebf1998/e2c ## Basic Information - **Project Name**: e2c - **Description**: everything is server - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-10 - **Last Updated**: 2026-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cluster 仓库用于承载 **cluster services**:在多台可达主机上安装并运行一组服务,使节点间形成无孤岛的通讯 Graph(单节点也是合法的特殊 cluster)。 ## 实体 ### service 网络可达、对外提供接口的程序。常见形态: - `systemctl` / `docker` 常驻服务 - `ssh + bash` 工具型服务(无常驻进程时,start/stop/restart 接口仍存在,但为 no-op) 生命周期: | 操作 | 说明 | |------|------| | start / stop / restart | 运行时控制 | | install / uninstall | 安装与卸载,并维护安装列表 | ### cluster + cluster services 若干设备运行特定 service 后形成可连通 Graph → **cluster**;这些 service 称为 **cluster services**。 ## Services | 服务 | 路径 | 形态 | |------|------|------| | **service-manager** | [`service/manager`](service/manager) | `uv tool` CLI(`svc-mgr`);可选 WebUI 插件(`webjs = true`) | | **star-topo-link** | [`service/star-topo-link`](service/star-topo-link) | 星型链路 master/slave + Master WebUI;设计见 [`docs/star-topo-link/`](docs/star-topo-link/) | | test-service(测试样例) | [`service/test-service`](service/test-service) | 安装 `--set backend=`;启停 `--set port=` 等 | 文档总览:[`docs/README.md`](docs/README.md)。 ### service-manager 能力摘要 - 本机或 `--host` 远程(本机 OpenSSH / `~/.ssh/config`,无仓库内 host 清单)查询已安装 service - 安装/更新 **自身**(SSH 传送 + 远端 `uv tool install`) - 管理 repository/source/catalog,以人类 coordinate 获取和安装 artifact - 创建 immutable release,并把 service 的持久状态放在独立 instance namespace - 批量控制:`start` / `stop` / `restart` / `list`,支持正则 - 普通卸载保留 instance;卸载 manager CLI 不删除 environment 状态目录(`E2S_HOME`,默认 `~/.e2s`): | 区域 | 路径 | 用途 | |------|------|------| | shared control plane | `layout.toml`、`config/`、`state/`、`catalog/`、`cache/` | 环境契约、策略、registry、source/artifact | | deployment/instance | `deployments///`、`instances///` | immutable release 与持久 service 状态 | | star-topo-link | `instances/star-topo-link/default/{data,secrets,cache}/` | topology、identity secret、plugin cache | 服务包清单规范:[service/SERVICE_TOML.md](service/SERVICE_TOML.md)(含 **`webjs`**)。 详见 [service/manager/README.md](service/manager/README.md)、[service/star-topo-link/README.md](service/star-topo-link/README.md)。 ## 快速开始 ```bash # 需要: uv, OpenSSH client; 可选 docker(e2e) cd service/manager uv tool install --force --from . service-manager svc-mgr self-install svc-mgr environment show svc-mgr download ../test-service --source-id local-dev svc-mgr install --list-cache svc-mgr install --cache local-dev/test-service@1.0.0 --set backend=noop # 目录安装是 download + cache install 的快捷方式 svc-mgr install ../test-service --source-id local-dev --set backend=noop svc-mgr list --status ``` ## 测试 ```bash # 单元测试 cd service/manager uv sync --extra dev uv run pytest # 多节点 e2e(Docker,镜像基于 ghcr.io/astral-sh/uv,内置 openssh + uv) # Windows: pwsh test/e2e/run.ps1 # Linux/macOS: bash test/e2e/run.sh ``` > 大陆网络下建议只 `docker pull`/`build` 一次 `cluster-node:local`,再起多个 container 实例;e2e 脚本默认复用该 tag。 ## 仓库布局 ``` cluster/ docs/ # 设计与归档(git 管理) README.md star-topo-link/ # design / master-catalog / review / reports service/ SERVICE_TOML.md # service.toml 清单规范(含 webjs) manager/ # service-manager (svc-mgr) + webui/ star-topo-link/ # master/slave link + WebUI test-service/ # sample package test/ docker/ # OpenSSH + uv 测试节点镜像 e2e/ # 多节点冒烟脚本 temp/ # 本机草稿(gitignore,不定稿) AGENTS.md README.md ```