快速开始
创建 Base
初始化 VisibleBase Base,准备默认数据库和 HTTP 服务。
安装包:
pnpm add @visiblebase/base @visiblebase/client准备 provider env。Base 首次启动时会自动补齐 VISIBLEBASE_ADMIN_SECRET_KEY 和 VISIBLEBASE_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。管理和业务数据暂时通过你自己的数据库与产品后端处理。