VisibleBase
快速开始

创建 Base

初始化 VisibleBase Base,准备默认数据库和 HTTP 服务。

安装包:

pnpm add @visiblebase/base @visiblebase/client

准备 provider env。Base 首次启动时会自动补齐 VISIBLEBASE_ADMIN_SECRET_KEYVISIBLEBASE_TOKEN_SIGNING_KEY

OPENAI_API_KEY="..."
OPENAI_BASE_URL="https://api.openai.com/v1"

创建 Base:

import { Base } from "@visiblebase/base";

const base = new Base();

默认数据库会落到:

.base/visiblebase.sqlite

默认 SQLite 使用 Node 内置 node:sqlite,需要 Node >=22.13.0

如果要使用指定数据库,可以配置 database_url

const base = new Base({
  database_url: process.env.VISIBLEBASE_DATABASE_URL,
});

Base 默认会在第一次 serve()handleRequest()models()invoke() 时自动初始化。

如果你的 Base 还需要自己的业务表,可以在创建 Base 时传入 Drizzle schema:

import { sqliteTable, text } from "drizzle-orm/sqlite-core";

const notes = sqliteTable("notes", {
  id: text("id").primaryKey(),
  title: text("title").notNull(),
  status: text("status").notNull(),
});

const base = new Base({
  schema: {
    notes,
  },
});

await base.table("notes").insert({
  id: "note_1",
  title: "First note",
  status: "draft",
});

schema 里的表会和 Base 默认数据库使用同一个数据库连接。第一次 table() 操作时,Base 会自动初始化默认表和这些业务表。

只有你要替换 Base Runtime 自己使用的 products/models 表对象时,才需要在第一次 init() 时传入 Runtime schema。

启动服务:

const server = await base.serve({
  host: "127.0.0.1",
  port: 3001,
});

console.log(`VisibleBase listening on http://${server.host}:${server.port}`);

这个服务就是后续多个产品共用的 Base。管理和业务数据暂时通过你自己的数据库与产品后端处理。