(Ubuntu 24 ― シングルノード / systemd / Playwright MS)
前提条件 #
- 既に
/home/firecrawlに構築済みで、systemd サービス
firecrowl-server・firecrowl-workers・firecrowl-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 リポジトリを最新化 #
- 安全ディレクトリを登録(初回のみ)
git config --global --add safe.directory /home/firecrawl - 浅いフェッチで最新コミットへ
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-serverがactive (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 が返る
運用中のアップデート(今後) #
git pull&pnpm installpnpm run buildsudo systemctl restart firecrowl-server firecrowl-workers