Ubuntu 24+Firecrawl / Bull Board アップグレード手順

Ubuntu 24+Firecrawl / Bull Board アップグレード手順

2 min read

(Ubuntu 24 ― シングルノード / systemd / Playwright MS)


前提条件 #

  • 既に /home/firecrawl に構築済みで、systemd サービス
    firecrowl-serverfirecrowl-workersfirecrowl-playwright
    が動作している
  • Node.js 20 & pnpm 10 がインストール済み
  • Redis が localhost:6379 で稼働中

STEP 0 サービス停止 & バックアップ #

sudo systemctl stop firecrowl-server firecrowl-workers firecrowl-playwright
cd /home
sudo cp -r firecrawl firecrawl_backup_$(date +%Y%m%d)

STEP 1 リポジトリを最新化 #

  1. 安全ディレクトリを登録(初回のみ)
    git config --global --add safe.directory /home/firecrawl
  2. 浅いフェッチで最新コミットへ
    cd /home/firecrawl
    git fetch --depth 1 origin main
    git reset --hard origin/main

STEP 2 依存パッケージをクリーン再インストール #

cd /home/firecrawl/apps/api
rm -rf node_modules pnpm-lock.yaml package-lock.json
pnpm install                                # 依存を最新に取得
pnpm approve-builds --all                   # postinstall スクリプトを許可

不足パッケージを追加(今回必要だったもの) #

# Playwright 本体
pnpm add -D playwright
# domhandler 型欠落対策
pnpm add -D domhandler @types/domhandler

STEP 3 ソース修正(型エラー対応) #

下記 3 ファイルにパッチを適用します。

3-1 src/lib/logger.ts
// 省略 … 
const meta = info.metadata as any;
return `${info.timestamp} ${info.level} [${meta.module ?? ""}:${meta.method ?? ""}]: ${info.message}`;
// 省略 …
3-2 src/lib/extract/reranker.ts fire-0/reranker-f0.ts
documents: documents as unknown as string[],
3-3 src/scraper/scrapeURL/lib/removeUnwantedElements.ts
import { Cheerio, load } from "cheerio";
import { AnyNode } from "domhandler";

STEP 4 本番ビルド方式へ切替 (tsc→dist) #

4-1 package.json にスクリプト追加 #

"scripts": {
  "build": "tsc",
  "start:prod": "npm run build && node dist/src/index.js"
}

4-2 systemd サービスを修正 #

/etc/systemd/system/firecrowl-server.service

[Service]
WorkingDirectory=/home/firecrawl/apps/api
EnvironmentFile=/home/firecrawl/apps/api/.env
ExecStart=/usr/bin/pnpm run start:prod
Restart=always
RestartSec=5
sudo systemctl daemon-reload

STEP 5 ビルド & サービス再起動 #

cd /home/firecrawl/apps/api
pnpm run build
sudo systemctl restart firecrowl-server firecrowl-workers firecrowl-playwright

STEP 6 動作確認 #

  • sudo systemctl status firecrowl-serveractive (running)
  • curl http://localhost:3002/test → 200 OK
  • ブラウザ: http://<IP>:3002/admin/<TEST_API_KEY>/queues が表示
  • http://<IP>:3000/html?url=https://example.com → HTML が返る

運用中のアップデート(今後) #

  1. git pull & pnpm install
  2. pnpm run build
  3. sudo systemctl restart firecrowl-server firecrowl-workers

 

Updated on 2025年5月3日

What are your feelings

  • Happy
  • Normal
  • Sad