OpenClaw 在 Northflank 上部署指南

OpenClaw 是一款开源的自动化爬虫框架,适用于数据采集任务。Northflank 是一个云原生应用部署平台,支持容器化部署和持续集成。以下是在 Northflank 上部署 OpenClaw 的详细步骤和代码示例。

准备 OpenClaw 项目

确保 OpenClaw 项目已配置为容器化部署。创建 Dockerfile 文件:

FROM python:3.9-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "main.py"]

创建 requirements.txt 文件:

requests==2.26.0
beautifulsoup4==4.10.0
scrapy==2.5.0

配置 Northflank 项目

登录 Northflank 控制台,创建一个新项目。选择 From Git Repository,连接到你的 OpenClaw 代码仓库。

Build Settings 中配置构建选项:

build:
  dockerfile: Dockerfile
  context: .

Deployment 部分设置环境变量:

env:
  - name: OPENCLAW_API_KEY
    value: your_api_key_here
  - name: OPENCLAW_TARGET_URL
    value: https://example.com

部署配置

创建 northflank.yaml 文件定义部署规格:

service:
  name: openclaw
  ports:
    - port: 8000
      protocol: HTTP
  resources:
    cpu: 1000m
    memory: 512Mi

持续集成设置

在代码仓库根目录创建 .github/workflows/deploy.yml

name: Deploy to Northflank
on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: northflank/action@v1
        with:
          project: your-project-id
          token: ${{ secrets.NORTHFLANK_TOKEN }}

验证部署

部署完成后,可以通过 Northflank 提供的 URL 访问 OpenClaw 服务。使用 curl 测试 API:

curl -X POST https://your-service.northflank.app/crawl \
  -H "Authorization: Bearer $OPENCLAW_API_KEY" \
  -d '{"url": "https://target-site.com"}'

日志和监控

Northflank 提供内置的日志查看功能。通过控制台可以实时查看 OpenClaw 的运行日志:

# 查看最近100条日志
northflank logs --tail=100

配置 Prometheus 监控指标端点:

# 在 main.py 中添加
from prometheus_client import start_http_server

start_http_server(8000)

扩展部署

对于高负载场景,可以配置自动扩展:

# northflank.yaml
autoscaling:
  minReplicas: 2
  maxReplicas: 10
  metrics:
    - type: CPU
      target: 80

数据库集成

如果需要持久化数据,添加 PostgreSQL 服务:

# northflank.yaml
addons:
  - type: postgresql
    version: 13
    size: small

更新环境变量:

env:
  - name: DATABASE_URL
    valueFrom:
      secretKeyRef:
        name: postgres-credentials
        key: url

定时任务配置

设置定时爬取任务:

# northflank.yaml
jobs:
  - name: daily-crawl
    schedule: "0 0 * * *"
    command: ["python", "scheduled.py"]

创建 scheduled.py

from openclaw import scheduler

scheduler.run_daily()

故障排除

常见问题及解决方案:

  1. 构建失败:检查 Dockerfile 中的依赖是否正确
  2. 部署超时:增加资源限制
  3. 连接拒绝:验证服务端口配置

通过以上步骤,OpenClaw 可以在 Northflank 上稳定运行并处理各种数据采集任务。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐