@c15t/backend

中文文档
3.2.2发布于 2026/11/02Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 42.8万

Self-hosted backend for c15t. Stores consent records and audit logs, and resolves policies and geolocation, on Postgres, MySQL or SQLite.

原始使用文档
文档目录10 节
  1. Key Features
  2. Prerequisites
  3. Installation
  4. Usage
  5. Documentation
  6. Hosted or Self-Hosted
  7. Support
  8. Contributing
  9. Security
  10. License

c15t: the open standard for cookie banners

@c15t/backend: Self-hosted consent management backend

Latest NPM Version Stars License Discord Skills Made by Inth

Run the c15t cookie consent backend on your own server and database. It resolves consent policies for GDPR and other privacy laws, stores consent records and audit history, and serves every c15t frontend through one web Request handler.

c15t is used by 2,100+ sites, including expo.dev, zed.dev, unkey.dev, mintlify.com, and sazabi.com.

Key Features

  • You own the data: consent records stay in your PostgreSQL, MySQL, or SQLite database
  • Policy rules by region, with presets such as policyRulePresets.europeOptIn()
  • One web-standard Request to Response handler that mounts in Next.js, Nuxt, SvelteKit, TanStack Start, or any server
  • Geolocation from host headers, server-side translations, and audit logs
  • IAB TCF configuration with the Global Vendor List and custom vendors
  • The same API as Inth, so frontends change only the backend URL

Prerequisites

  • Node.js 20.19 or later
  • A PostgreSQL, MySQL, or SQLite database, plus its driver: @effect/sql-pg, @effect/sql-mysql2, or @effect/sql-sqlite-node
  • A server that runs Node.js. A static export cannot run the backend

Installation

pnpm add @c15t/backend @effect/sql-sqlite-node

Install the driver version that the backend lists as a peer dependency. Do not want to run a database? Inth runs this backend for you.

Usage

  1. Create c15t-backend.config.ts with your database, trusted origins, and policy rules
// c15t-backend.config.ts
import { defineConfig, policyRulePresets } from '@c15t/backend'

export default defineConfig({
  database: { dialect: 'sqlite', filename: './consent.db' },
  trustedOrigins: ['localhost'],
  manifest: { policyRules: [policyRulePresets.europeOptIn()] },
})
  1. Create the schema: npx @c15t/cli self-host migrate --config ./c15t-backend.config.ts --plan, then run it again with --apply
  2. Mount the handler on a catch-all route for GET, POST, PUT, PATCH, and OPTIONS
// app/api/c15t/[[...path]]/route.ts (Next.js)
import { c15tInstance } from '@c15t/backend'

import config from '../../../../c15t-backend.config'

export const runtime = 'nodejs'
const backend = c15tInstance({ ...config, basePath: '/api/c15t' })

export const GET = (request: Request) => backend.handler(request)
export const POST = GET
export const PUT = GET
export const PATCH = GET
export const OPTIONS = GET
  1. Point your frontend at the backend URL, such as https://app.example.com/api/c15t, where the quickstart asks for the Inth URL
  2. For other servers, PostgreSQL, and deployment checks, see the self-hosting guide

Documentation

See the documentation for guides, API reference, and examples.

Hosted or Self-Hosted

Self-host when you need to run the service and its database yourself. You then own provisioning, migrations, backups, policy configuration, signing secrets, availability, and upgrades.

Inth runs the same backend for you, with a dashboard, audit history, and a managed IAB CMP ID. Your frontend code is the same either way.

Support

Contributing

Security

Do not open a public issue for a security vulnerability. Report it privately through GitHub's vulnerability reporting. We examine every valid report.

  • Do not share the vulnerability in public forums, issues, or pull requests
  • Give the steps to reproduce it and the versions it affects
  • Give us time to release a fix before you disclose it

License

Apache License 2.0


Built by Inth

版本与发布记录

@c15t/backend 共发布 108 个版本,首次发布于 2025/03/12;过去 12 个月发布了 48 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.2.2latest2026/11/027 天前
3.2.12026/10/319 天前
3.2.02026/10/3010 天前
3.2.0-canary.0canary2026/10/2316 天前
3.1.02026/10/1723 天前
3.1.0-canary.02026/10/1525 天前

其他发布通道:rc → 2.0.0-rc.10,alpha → 3.0.0-alpha.12,canary → 3.2.0-canary.0。

关于 @c15t/backend 的常见问题

@c15t/backend 是什么?

Self-hosted backend for c15t. Stores consent records and audit logs, and resolves policies and geolocation, on Postgres, MySQL or SQLite.

如何安装 @c15t/backend?

在项目目录运行 npm install @c15t/backend,或使用 pnpm add / yarn add / bun add。

@c15t/backend 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@c15t/backend 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@c15t/backend 可以商用吗?

@c15t/backend 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@c15t/backend 的下载量有多少?

根据 npm 官方下载统计,@c15t/backend 在 2026/10/09 – 2026/11/07 这 30 天内被下载 428,140 次,日均约 14,271 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@c15t/backend 还在维护吗?

最新版本 3.2.2 发布于 2026/11/02(7 天前);至今共发布 108 个版本,其中过去 12 个月发布了 48 个;首次发布于 2025/03/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。