这个项目能做什么

# AliaJS AliaJS 是一个基础设施编排器,专为偏好使用 JavaScript 作为定义和执行语言的小型运维基础设施团队设计。目前处于 alpha 阶段。 ## 主要特性 - **基于 JavaScript 的基础设施即代码**:使用 JavaScript 定义和执行基础设施编排。 - **HTTP 优先设计**:以 HTTP 作为输入,并可将 HTTP 通信作为一等公民。它是一个运行 shell 命令和 Node.js 代码的 Express.js 服务。 - **一体化解决方案**:管理服务基础设施,包括密钥保管库集成(Bitwarden)、监控和告警。 - **面向 NGINX**:以 NGINX 为核心构建。 ## 架构 项目由多个核心模块组成: - `src/app.js`、`src/main.js`、`src/routes.js`:主要的 Express.js 服务器文件。 - `src/deploy.js`:更新正在运行的服务。 - `src/new-image.js`:根据计划任务创建和维护虚拟机镜像。 - `src/new-instance.js`:根据 `configurations/instances.js` 中的定义创建新实例。 - `src/renew-certificates.js`:管理 SSL 证书续期。 - `src/items.js`:保管库管理工具。 - `src/logger.js` 和 `utils.js`:实用代码。 - `templates/`:EJS 模板文件。 - `configurations/`:实例和镜像配置定义。 ## 快速开始 1. 根据你的 Bitwarden 保管库在 `.env` 中配置环境变量。 2. 运行 `npm install` 和 `npm run dev`。 ## 用法 在你的 shell 中设置 `ALIAJS_AUTHORIZATION` 环境变量。 **更新正在运行的服务:** ```bash curl -v -N --header "Authorization: ${ALIAJS_AUTHORIZATION}" "https://aliajs-production.rotat.io/deploy?checkout=${CHECKOUT}&service_name=aliajs&tier=production" ``` **启动新实例:** ```bash curl -v -N --header "Authorization: ${ALIAJS_AUTHORIZATION}" "https://aliajs-production.rotat.io/new-instance?address=1.1.1.1&checkout=${CHECKOUT}&instance_name=aliajs-production&replace=false" ``` new-instance 的查询参数: - `address`:使用 `allocate` 向云服务商申请永久 IP,或指定一个具体 IP。 - `ephemeral`:创建一个具有唯一 DNS 的新临时实例(默认 `false`)。 - `exclude`:过滤掉某些操作类型(例如 `exclude=backup`)。 - `replace`:替换当前正在运行的实例(默认 `false`)。 - `target`:筛选特定的操作类型(例如 `target=initial&target=restore`)。 ## 局限性 - 不适用于大型运维基础设施团队。 - 目前尚未得到社区的良好支持。 该项目处于早期开发阶段,可能会有重大变化。