@k2b /云
模块化Hono+SolidJS框架,用于在动态网关后构建每个应用的docker服务。
运行时为 github.com/k2b-dev/cloud -一个运行在你运营的基础设施上的应用程序平台,其中每个功能都作为自己的Bun容器发布,通过Redis向网关注册,并继承共享会话、UI工具包、设置存储、搜索、日志、电子邮件、websockets和管理界面。
安装
bun add @k2b/cloud
包发布为 .ts 源。它的目的是 包子 消费者。
快速启动
// packages/my-app/src/config.ts
import { defineApp } from "@k2b/cloud";
export const app = defineApp({
id: "my-app",
name: "My App",
icon: "ti ti-rocket",
description: "What this app does",
basePath: "/app/my-app",
baseUrl: "http://app-my-app:3000",
nav: { href: "/app/my-app", section: "more", requiresAuth: true },
routes: ["/api/my-app", "/app/my-app", "/admin/my-app", "/public/my-app"],
});
export const { ssr, plugin } = app;
// packages/my-app/src/index.ts
import { app } from "./config";
import { Hono } from "hono";
export default await app.start({
routes: {
api: new Hono().get("/", (c) => c.json({ ok: true })),
pages: new Hono().get("/", ...ssr(() => () => <div>hello</div>)),
},
});
一个标准的应用程序声明四个前缀(/api/<id>, /app/<id>, /admin/<id>, /public/<id>);网关通过URL前缀将它们从redis支持的注册表路由到您的容器。
公共建筑模块
| 进口 | 使用 |
|---|---|
@k2b/cloud | defineApp,常见类型 |
@k2b/cloud/server | 服务器上下文,授权,路由助手 |
@k2b/cloud/browser | 键入浏览器客户端 |
@k2b/cloud/services | 设置,日志,通知,搜索 |
@k2b/cloud/contracts | 共享公共合同 |
@k2b/cloud/ssr | 云SSR助手和岛屿 |
@k2b/cloud/workflows | 持久的、可检查的应用程序工作流 |
@k2b/cloud/ai | 人工智能和工具调用契约 |
@k2b/cloud/cli | 应用命令行 |
@k2b/cloud/config | 文档化的配置助手 |
@k2b/ui | 可移植UI组件和应用程序布局 |
@k2b/stdlib/solid | 所有者本地查询、突变和交互原语 |
@k2b/ssr | 便携式SolidJS SSR,岛屿和导航 |
@k2b/sync | 分布式协调、作业、队列和调度器 |
@k2b/cloud/access/ui | 云访问和资源密钥控制 |
@k2b/cloud/account/ui | 云帐户选择器和头像 |
@k2b/cloud/ai/ui | 云AI协议适配器 |
@k2b/cloud/styles/global.css | base Tailwind样式表 |
文档
应用程序设置、公共契约和部署指导:
- 创建第一个应用程序 -独立项目设置和经过验证的API端点
- github.com/k2b-dev/cloud -平台单orepo(网关,核心,所有平台应用)
安全
通过私下报告漏洞 GitHub安全公告, 从来没有在公共问题上。安全补丁出现在此包的变更日志中, 一份公布的公告称第一个补丁版本。看到 安全策略.
许可证
GNU Affero通用公共许可证v3.0或更高版本。
商业使用、托管、修改和再分发是被允许的 AGPL。如果你修改Cloud,让用户通过网络与它互动, 类下的相应源代码的访问权限必须提供给这些用户 相同的许可。
单独的商业许可用于专有,转售,管理服务, 通过联系维护人员,可以使用白标或嵌入式产品。
请参阅存储库 LICENSE 文件。