artifact-site:给 AI 生成的网页和文档一个集中管理、分享和持续更新的地方,部署在你自己的服务器上。开源、自托管、适配 agent。

artifact-site

English | 简体中文 | 日本語 | Deutsch | Français | Español

CI 协议:Apache-2.0 OR MIT Node 24 路线图 npm GitHub Release

本文档与 英文版 同步维护;如有出入,以英文版为准。

现在有太多 AI Agent 可以选择,产物却散落在电脑、聊天记录和各个平台的云端,难以统一管理、分享和回顾。 **artifact-site 是个人/团队自托管的作品空间,类似 Claude Artifacts 或 OpenAI Sites。** 你的各种 Agent 负责创作,artifact-site 负责集中管理:把网页和文档变成链接,方便分享、评论反馈、控制访问和保留版本;你原有的Agent 也能通过 CLI 或 MCP 继续编辑、发布、检索和更新作品。 你可以自行部署 artifact-site,也可以直接使用由 Lexmount 托管的云端版。 > **[使用云端版](https://yours.lexmount.com/artifact-site)** — 由 Lexmount 托管,无需自行部署。拖入文件即可发布并获取分享链接。你可以免登录上传,也可以**使用 Google 或 GitHub 登录**,长期保留作品、用文件夹整理,并控制谁能打开每个链接。 > > 匿名发布的内容会在几天后过期。

把一个 HTML 仪表盘拖进 artifact-site:几秒后变成链接,在沙箱里渲染,分享面板一键复制链接

拖进来,拿链接,分享出去。在线查看刚发布的作品,通过分享设置决定谁能打开。

## 为什么使用 artifact-site - **把作品集中起来。** 用文件夹整理网页和文档,通过全文搜索找回内容,中文也能搜。团队成员和 agent 都能找到自己有权访问的作品。 - **拖进来,就能分享。** 上传 HTML、构建目录、ZIP 或文档,获得一个链接;大站点支持分块上传。可以分享给任何人、登录用户、指定的人,或持有访问码的人。 - **发布之后还能继续改。** 在浏览器里编辑 HTML 页面的文字或源码,也可以让 agent 更新整个站点。每次修改保留版本,支持回滚和另存为新作品。 - **让 agent 接着用。** 通过发布指南、CLI 或 MCP 发布和更新,也能按内容搜索、读取可提取的正文。例如,找到上次发布的报告,在同一个地址更新,团队就能查看新版本。 ## 与托管产品的比较 | 团队关注点 | Claude Artifacts / Claude Code Artifacts | ChatGPT Sites(OpenAI) | artifact-site | | --- | --- | --- | --- | | 托管位置 | Anthropic 托管 | OpenAI 托管 | **自己的服务器**,文件存于本地或 S3 兼容存储 | | 发布方式 | 通过 Claude / Claude Code | 通过 ChatGPT Sites | **任意工具**,通过文件上传、CLI 或远程 MCP 接入 | | 主要内容 | 交互式作品 | 托管网站和应用 | 静态 HTML、构建目录、ZIP、PDF 和 Office 文档¹ | | 身份体系 | Claude 账号 | ChatGPT 账号 | **自己的 OIDC 身份源**,如 Google、Keycloak 或 Okta | ¹ Office 在线预览需要 Gotenberg。artifact-site 托管已经生成的文件,不运行应用后端或构建任务。 Claude Artifacts 和 ChatGPT Sites 将创作与托管分享结合起来。artifact-site 为这些流程提供补充:把不同工具生成的网页和文档集中在自己的基础设施上,供团队共享。 产品能力和分享方式因套餐而异,也会持续变化;请参阅官方 [Claude Artifacts](https://support.claude.com/en/articles/9487310-what-are-artifacts-and-how-do-i-use-them) 和 [ChatGPT Sites](https://learn.chatgpt.com/docs/sites) 指南。 ## 目录 - [支持的内容](#支持的内容) - [快速开始(本地部署)](#快速开始本地部署) - [接入 coding agent](#接入-coding-agent) - [团队部署](#团队部署) - [工作原理](#工作原理) - [文档](#文档) - [参与贡献](#参与贡献) - [协议](#协议) ## 支持的内容 | 内容 | 你可以做什么 | | --- | --- | | HTML、静态网站目录、ZIP | 上传并预览单页或多页网站;支持 `dist/` 等构建输出目录。HTML 页面支持可视化文字编辑和源码编辑。 | | PDF | 在线阅读、搜索和提取正文。 | | Office 文档(如 PPTX、DOCX) | 保存和下载原文件;启用 Gotenberg 转换服务后可在线预览。 | 网页项目需要先构建为静态文件,平台不运行应用的后端服务或构建任务。PDF 和 Office 文档不支持网页式可视化编辑,扫描件不自动进行 OCR。 托管页面在沙箱中运行,不能使用平台的登录状态;连接外部 API 需要配置允许的来源。详见[运行限制](../src/content/publish-skill.md)和[安全设计](../SECURITY.md)。 ## 快速开始(本地部署) 也可以直接使用[云端版](https://yours.lexmount.com/artifact-site),无需安装。本地部署执行下面三条命令,需要 Git、Make、Bash、Docker 24+ 和 Compose 插件 2.24+。macOS 可使用 Docker Desktop;Windows 请在 WSL2 中执行,并启用 Docker Desktop 的 WSL 集成。无需安装 Node,也无需配置域名或登录服务。 ```bash git clone https://github.com/lexmount/artifact-site.git && cd artifact-site cp .env.example .env make build up ``` 启动后打开 **http://127.0.0.1:4300**,拖入 HTML、静态网站目录或 PDF,即可查看作品。新作品默认私有;在分享设置中创建允许访问的链接,再复制给别人。 首次运行需要下载依赖和构建镜像,应用与 Postgres 会一起启动。以上命令用于新克隆的目录;服务默认仅本机可访问,停止用 `make down`,数据会保留。要让团队访问,请按[团队部署](#团队部署)配置。
手边没有文件?生成一个示例页面 ```bash printf 'Hello

Hello, artifact-site!

' > hello.html ``` 将 `hello.html` 拖入首页(或点**上传作品**),应看到“Hello, artifact-site!”。在分享设置中复制链接;本地部署的链接只能在同一台机器上打开。
## 接入 coding agent 选择适合你的 agent 的入口: - **Skill**: `npx skills add lexmount/artifact-site` — 安装 [agent skill](../skills/artifact-site/SKILL.md),并告诉 agent 你的服务器地址。 - **CLI**: `npm install -g @artifact-site/cli` — 需要 Node 24+,示例命令见下方。 - **MCP**: `https://your-server/mcp` — ChatGPT、Claude 等 MCP 客户端通过服务器的 OAuth 登录连接,无需安装 CLI。只能启动本地 MCP 服务的客户端,可改用 CLI 的 `artifact-site mcp`。 **CLI 和 MCP 默认创建私有作品,不自动生成独立分享链接。** 用户要求分享时,使用 `artifact-site visibility unlisted` 或 MCP `artifact_site_set_visibility` 开放主链接。

coding agent 用 artifact-site 的 CLI 发布构建目录并交回分享链接

或者交给你的 coding agent。有了 agent 指南(/for-agents.md)、CLI 或 MCP 服务,"把这个发布了给我个链接"就是一句话的事——之后的更新、搜索、读取也一样。

把下面这句交给 Claude Code、Cursor、Codex 或其他能读取 URL 的 coding agent,替换成它可以访问的服务器地址。首页也提供填好地址的复制按钮: ```text 请把当前项目的产物发布到 artifact-site,发布手册:https://你的服务器/for-agents.md ``` CLI 示例(`login` 需要 OIDC): ```bash artifact-site login --base https://your-server # 一次性设备登录 artifact-site publish dist/ --title "Q3 dashboard" # 发布并返回链接 artifact-site find "quota" # 按内容搜索 artifact-site read YOUR_SITE_SLUG # 替换为作品标识,读取正文 ```
认证详情 打开部署后的 **Agent 指南**,选择交给 Agent、CLI 或 MCP。`/for-agents#cli` 和 `/for-agents#mcp` 提供当前服务器的命令、认证步骤与客户端配置。远程 MCP 的每次请求都要认证:ChatGPT、Claude 等支持 OAuth 的客户端通过本服务自己的授权页登录,其他客户端携带个人 Token; 发布默认私有;按需修改访问范围开放主链接,高级独立分享需主动创建。 配置了 OIDC 的团队部署支持设备登录授权;本地匿名体验不需要这个步骤。agent 根据指南和服务器的发布策略选择认证方式。云端 agent 无法直接访问你电脑上的 `127.0.0.1`。 以上登录示例需要 OIDC。远程 MCP 是另一套完整入口,地址为 `https://your-server/mcp`,无需安装 CLI。 ChatGPT、Claude 等实现了 MCP 授权规范的客户端只需填入这个地址,然后在本服务的 OAuth 授权页登录即可;其他客户端打开部署后的 `/for-agents#mcp`,创建个人 Token 并复制认证配置。之后即可发布、更新、搜索、读取、分享、管理版本、导出和删除。 二进制文件和文件夹也可通过 MCP 工具上传,无需调用 CLI。 完整说明见 [CLI 命令](../cli/README.md)和[远程 MCP 接入及工具](MCP.md)。
## 团队部署 从 [.env.example](../.env.example) 开始,按 [SELFHOST.md](../SELFHOST.md) 配置正式部署。`ARTIFACT_PUBLIC_URL` 会用于登录回调、请求来源校验和 agent 获取的地址,应使用稳定的对外地址: - 设置团队可访问的 `ARTIFACT_PUBLIC_URL`,并配置反向代理;也可设置 `ARTIFACT_WITH_CADDY=on` 和 `ARTIFACT_DOMAIN`,启用 Caddy 自动管理证书。 - 选择发布策略。`login` 需要 OIDC;`token` 用于持有 Bearer 令牌的脚本或 agent;`open` 允许任何能访问服务的人发布,适用于可信内网;匿名发布可设置独立配额和过期时间。 - 接入 Google 或 Keycloak、Logto、Authentik、Okta、Auth0 等 OIDC 身份源。站点和文件夹归属到账号,agent 可通过设备登录获取长期令牌。默认的 `ARTIFACT_ENFORCE_OWNERSHIP=on` 会在配置 OIDC 后启用账号权限控制,将管理员经过身份源验证的邮箱加入 `ARTIFACT_ADMIN_EMAILS`,启用管理后台。 - 用 `ARTIFACT_WITH_GOTENBERG=on` 启用 Office 在线预览。管理后台支持下架作品、调整配额、匿名作品过期和发布策略。设置默认可见性并安排备份。 应用打包为一个 Docker 镜像,单机部署配套启动 Postgres。使用已有镜像时,可设置 `ARTIFACT_IMAGE` 后运行 `make pull`。`make doctor` 检查配置,`make backup` 和 `make restore` 用于备份恢复。多副本、外部 Postgres 和 S3 兼容存储见 [DEPLOY.md](../DEPLOY.md)。 ## 工作原理 - **应用与存储。** Next.js 提供界面和 API,Postgres 存储元数据,文件存储在本机磁盘或 S3 兼容存储中。使用外部数据库与对象存储时,可运行多个应用副本。 - **不可变版本。** 每次上传或编辑写入新的文件版本,保留历史内容。乐观锁(`expected_version`)用于检测并发更新冲突。 - **内容隔离。** 预览使用不带 `allow-same-origin` 的沙箱 iframe 和严格的 CSP,隔离上传内容与平台。路径检查和解压限制用于防御路径穿越与 ZIP 炸弹。 架构、数据模型和请求流程见 [ARCHITECTURE.md](../ARCHITECTURE.md)。 ## 文档 | 文档 | 内容 | | --- | --- | | [SELFHOST.md](../SELFHOST.md) | 单机部署:`make up`、备份、升级、常见问题 | | [DEPLOY.md](../DEPLOY.md) | 多副本部署:外部 Postgres、对象存储、OIDC | | [.env.example](../.env.example) | 全部配置项,分组带说明 | | [ARCHITECTURE.md](../ARCHITECTURE.md) | 系统架构、数据模型、请求路径、沙箱 | | [SECURITY.md](../SECURITY.md) | 威胁模型与漏洞报告方式 | | [cli/README.md](../cli/README.md) | CLI 命令 | | [src/content/publish-skill.md](../src/content/publish-skill.md) | 下发给 agent 的 API 契约与托管限制 | | [ROADMAP.md](../ROADMAP.md) | 接下来做什么:语义检索、站点评论等 | | [CHANGELOG.md](../CHANGELOG.md) | 每个版本改了什么 | ## 参与贡献 本地开发需要 Node 24+ 和 Docker: ```bash npm install make dev # 启动临时 Postgres 和开发服务器 npm test # 单元测试,不依赖外部服务 ``` 提交流程、DCO 签名和 CI 要求见 [CONTRIBUTING.md](../CONTRIBUTING.md)。Bug 和建议提交到 [issues](https://github.com/lexmount/artifact-site/issues),使用问题到 [discussions](https://github.com/lexmount/artifact-site/discussions)。 如果 artifact-site 对你有用,一颗 ⭐ 可以帮助更多人发现它。团队正在使用?欢迎到 [Discussions](https://github.com/lexmount/artifact-site/discussions) 打个招呼,我们很乐意将你们列为使用者。 ## 协议 以下两种协议任选其一: - Apache License 2.0([LICENSE-APACHE](../LICENSE-APACHE)) - MIT License([LICENSE-MIT](../LICENSE-MIT)) 除非你另有声明,你有意提交给本项目的任何贡献都按上述双协议授权,不附加其他条款。 © 2025–2026 LexMount。第三方组件见 [NOTICE](../NOTICE)。