Onlook 中文网

单机部署

【Single Machine Deployment】

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

【Deploy Onlook on a single virtual machine or physical server using the standalone build. This creates a self-contained production deployment without Docker containers, ideal for small teams and simple production setups.】

先决条件

【Prerequisites】

系统要求:

  • 4个以上 CPU 核心
  • 8GB+ 内存(建议16GB)
  • 可用磁盘空间 50GB 以上

软件要求:

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

安装

【Setup】

1. 克隆仓库

【1. Clone the Repository】

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

# Install dependencies
bun install

2. 设置环境变量

【2. Setup Environment Variables】

创建你的环境配置:

【Create your environment configuration:】

# Run interactive environment setup
bun run setup:env

必填变量:

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

有关获取这些 API 密钥的详细说明,请参阅开发设置指南

【For detailed instructions on obtaining these API keys, see the development setup guide.】

3. 启动后端服务

【3. Start Backend Services】

bun backend:start

这将在本地启动 Supabase,包括 PostgreSQL 数据库、身份验证和存储。服务将可用于:

【This starts Supabase locally with PostgreSQL database, authentication, and storage. The services will be available at:】

4. 初始化数据库

【4. Initialize Database】

# Push database schema
bun db:push

5. 构建并部署独立应用

【5. Build and Deploy Standalone Application】

# Build standalone production deployment
bun run preview:standalone

这将创建一个自包含的生产构建,其中包括:

【This creates a self-contained production build with:】

  • 独立服务器:具有所有依赖的独立 Node.js 服务器
  • 静态资源:所有为生产环境打包的静态文件
  • 优化构建:已压缩并针对性能进行了优化
  • 生产就绪:已配置为生产环境

验证

【Verification】

运行后,验证你的部署:

【Once running, verify your deployment:】

检查所有服务是否正在运行:

【Check all services are running:】

# Check application
curl http://localhost:3000

# Check Supabase API
curl http://localhost:54321/rest/v1/

可选:生产加固

【Optional: Production Hardening】

在生产环境中运行

【Running in Production】

独立版本构建会创建一个完整的生产服务器。你可以通过不同的方式启动它:

【The standalone build creates a complete production server. You can start it in different ways:】

# Option 1: Direct command
bun .next/standalone/apps/web/client/server.js

# Option 2: Use bun script
bun run start:standalone

# Option 3: With PM2 for process management
pm2 start .next/standalone/apps/web/client/server.js --name onlook

【Process Management (Recommended)】

对于生产环境部署,请使用像 PM2 这样的进程管理器:

【For production deployments, use a process manager like PM2:】

# Install PM2 globally
bun add -g pm2

# Start with PM2
pm2 start .next/standalone/apps/web/client/server.js --name onlook

# Save PM2 configuration
pm2 save

# Setup auto-start on boot
pm2 startup

故障排除

【Troubleshooting】

常见问题:

  • 端口冲突:如果端口 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性能
  • 监控内存使用情况并在需要时重启

用例

【Use Cases】

适合于:

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

相对于 Docker 的优势:

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

相比开发模式的优势:

  • 生产优化构建
  • 更好的性能和安全性
  • 降低内存占用
  • 自包含部署
  • 不需要开发依赖

注意事项:

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

对于高可用性的生产部署,请考虑使用 Docker Compose云部署 选项。

【For high-availability production deployments, consider Docker Compose or Cloud Deployment options.】