Onlook 中文文档

单机部署

使用独立构建将 Onlook 部署在单个虚拟机或物理服务器上。这会创建一个独立的生产环境部署,无需 Docker 容器,适合小团队和简单的生产环境。

前提条件

系统要求:

  • 4核以上 CPU
  • 8GB 以上内存(推荐 16GB)
  • 50GB 以上可用磁盘空间

软件要求:

  • Bun - 包管理器和运行时
  • Node.js v20.16.0 及以上(避免使用 v20.11.0)
  • Git

安装步骤

1. 克隆代码库

git clone https://github.com/onlook-dev/onlook.git
cd onlook

# 安装依赖
bun install

2. 设置环境变量

创建您的环境配置:

# 运行交互式环境配置
bun run setup:env

必填变量:

  • Supabase:生产数据库 URL 及 API 密钥
  • OpenRouter API Key:用于 AI 聊天功能
  • CodeSandbox Token:用于开发容器

有关如何获取这些 API 密钥的详细说明,请参见开发环境搭建指南

3. 启动后端服务

bun backend:start

这将在本地启动 Supabase,包括 PostgreSQL 数据库、认证和存储。服务可通过以下地址访问:

4. 初始化数据库

# 推送数据库架构
bun db:push

5. 构建并部署独立应用

# 构建独立生产部署包
bun run preview:standalone

此操作会生成一个自包含的生产构建包,包含:

  • 独立服务器:独立的 Node.js 服务器及所有依赖
  • 静态资源:打包好的所有静态文件
  • 优化构建:压缩并优化性能
  • 生产就绪:配置为生产环境使用

验证

运行后,验证部署状态:

检查所有服务是否运行中:

# 检查应用
curl http://localhost:3000

# 检查 Supabase API
curl http://localhost:54321/rest/v1/

可选:生产环境加固

生产环境运行

独立构建会创建完整的生产服务器,你可以通过多种方式启动:

# 方式一:直接执行命令
bun .next/standalone/apps/web/client/server.js

# 方式二:使用 bun 脚本
bun run start:standalone

# 方式三:使用 PM2 进程管理
pm2 start .next/standalone/apps/web/client/server.js --name onlook

进程管理(推荐)

为了生产部署推荐使用进程管理工具,例如 PM2:

# 全局安装 PM2
bun add -g pm2

# 使用 PM2 启动
pm2 start .next/standalone/apps/web/client/server.js --name onlook

# 保存 PM2 配置
pm2 save

# 设置开机自启
pm2 startup

故障排查

常见问题:

  • 端口冲突:如端口 3000、54321 或 54322 被占用,请修改配置端口
  • 构建失败:执行 rm -rf node_modules && bun install 后重试构建
  • 数据库连接失败:确认 bun backend:start 是否成功完成
  • 独立服务器无法启动:确认构建是否完成,可以执行 ls -la .next/standalone/apps/web/client/ 检查
  • 内存问题:通过设置 NODE_OPTIONS="--max-old-space-size=4096" 增加 Node.js 内存限制

性能优化建议:

  • 使用 PM2 管理进程和实现自动重启
  • 配置反向代理(Nginx/Apache)进行 SSL 和缓存管理
  • 使用 SSD 存储提升 I/O 性能
  • 监控内存使用,必要时重启服务

适用场景

适合:

  • 小团队生产部署(5-20 用户)
  • 单机服务器环境
  • 成本敏感型部署
  • 简单的生产环境
  • 避免容器复杂性的组织

相比 Docker 的优势:

  • 无容器编排复杂性
  • 直接服务器访问和调试
  • 更低资源开销
  • 更简单的部署流程
  • 标准的系统服务管理

相比开发模式的优势:

  • 生产环境优化构建
  • 更优性能和安全性
  • 降低内存占用
  • 自包含部署包
  • 无需开发时依赖

需要考虑的事项:

  • 单点故障风险
  • 需手动扩展
  • 需要系统管理知识
  • 不如容器便携
  • 手动备份和恢复流程

对于高可用生产部署,建议考虑Docker Compose云端部署 方案。