Docker 组合
【Docker Compose】
在虚拟机或本地机器上使用 Docker Compose 部署 Onlook。这是一种简单的单容器部署,适用于小型团队和基本的自托管需求。对于需要高可用性和可扩展性的企业级部署,请使用 云部署 选项。
【Deploy Onlook using Docker Compose on VMs or local machines. This is a simple, single-container deployment designed for small teams and basic self-hosting needs. For enterprise-grade deployments requiring high availability and scalability, use the Cloud Deployment option.】
先决条件
【Prerequisites】
系统要求:
- 4个以上 CPU 核心
- 8GB+ 内存(建议16GB)
- 可用磁盘空间 50GB 以上
- Docker 20.10 及以上版本和 Docker Compose 2.0 及以上版本
软件要求:
- Bun - 包管理器和运行时
- Node.js v20.16.0+(避免使用 v20.11.0)
- Git
- Docker 和 Docker Compose
基础部署
【Basic Deployment】
注意:这是一个适合小团队和测试的简单部署。对于开发,请在仓库根目录使用
bun dev。
1. 克隆仓库
【1. Clone the Repository】
git clone https://github.com/onlook-dev/onlook.git
cd onlook
# Install dependencies
bun install2. 设置环境变量
【2. Setup Environment Variables】
对于 Docker Compose 部署,你需要创建一个环境文件。
【For Docker Compose deployment, you need to create a environment file.】
# 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这将在本地启动带有 PostgreSQL 数据库、身份验证和存储功能的 Supabase。这将启动一个独立的 Docker Compose 服务。要用于生产环境的 Supabase 连接,请在 .env 文件中更改 Supabase API 密钥。
【This starts Supabase locally with PostgreSQL database, authentication, and storage. This will spin up a separate Docker compose service. For production supabase connection, change the Supabase API keys in the .env file.】
4. 初始化数据库
【4. Initialize Database】
# Push database schema
bun db:push5. 使用 Docker Compose 部署
【5. Deploy with Docker Compose】
从仓库根目录部署生产容器:
【Deploy the production container from the repository root:】
docker-compose up -d这将构建并启动:
【This builds and starts:】
- 网络应用:生产环境构建的 Next.js 应用(端口 3000)
- 健康检查:自动容器健康监控
- 自动重启:容器在失败时会自动重启
注意:Docker 容器使用 network_mode: "host" 来访问运行在主机上的本地 Supabase 服务。这使得容器可以连接到 http://127.0.0.1:54321(Supabase API)和 127.0.0.1:54322(PostgreSQL)。
6. 验证部署
【6. Verify Deployment】
- 主要应用: http://localhost:3000
- Supabase 仪表板: http://localhost:54323(来自 backend:start)
检查服务是否正在运行:
【Check the service is running:】
docker-compose ps
curl http://localhost:3000故障排除
【Troubleshooting】
常见问题:
- 端口 3000 已被使用:请停止其他服务或更改端口
- Docker 构建失败:运行
docker system prune然后重试 - 数据库连接:请确认
bun backend:start正在运行,并且 Supabase 可通过 http://127.0.0.1:54321 访问 - 容器无法连接到 Supabase:确保在 docker-compose.yml 中为本地主机访问设置了
network_mode: "host"
限制与注意事项
【Limitations & Considerations】
此部署旨在简化操作,而非追求高可靠性:
限制:
- 单个容器(单点故障)
- 没有内置的负载均衡或自动扩展
- 手动备份与灾难恢复
- 仅限垂直扩展
- 不保证高可用性
适合:
- 小型团队(少于10人)
- 开发/测试环境
- 概念验证部署
- 基本自托管需求
不适合:
- 关键任务生产工作负载
- 需要高可用性的团队规模较大
- 需要 99.9% 以上正常运行时间的环境
对于企业级部署,请使用具有适当冗余和扩展功能的 云部署 选项。
【For enterprise-grade deployments, use the Cloud Deployment option with proper redundancy and scaling.】