jpskill.com
📦 その他 コミュニティ

local-dev-server

Empathy Ledgerのローカル開発環境を、PM2を使って手間なく簡単に管理し、開発作業をスムーズに進められるように支援するSkill。

📜 元の英語説明(参考)

Zero-friction local development server management for Empathy Ledger using PM2

🇯🇵 日本人クリエイター向け解説

一言でいうと

Empathy Ledgerのローカル開発環境を、PM2を使って手間なく簡単に管理し、開発作業をスムーズに進められるように支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o local-dev-server.zip https://jpskill.com/download/16994.zip && unzip -o local-dev-server.zip && rm local-dev-server.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/16994.zip -OutFile "$d\local-dev-server.zip"; Expand-Archive "$d\local-dev-server.zip" -DestinationPath $d -Force; ri "$d\local-dev-server.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して local-dev-server.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → local-dev-server フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

ローカル開発サーバーの管理

目的: PM2 を使用した Empathy Ledger のための、摩擦のないローカル開発サーバー管理

トリガー: ユーザーがローカル開発サーバーの起動/停止/再起動を必要とする場合、または "address already in use" エラーが発生した場合


クイックコマンド

# 単一プロジェクト (Empathy Ledger のみ)
pm2 start empathy-ledger       # サーバーを起動
pm2 restart empathy-ledger     # サーバーを再起動
pm2 stop empathy-ledger        # サーバーを停止
pm2 logs empathy-ledger        # ログを表示

# フル ACT エコシステム (すべてのプロジェクト)
/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh start
/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh restart
/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh stop
/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh logs

これが解決する問題

問題点:

  • ❌ ポートが使用中の場合、"address already in use" エラーが発生する
  • ❌ コード変更後にサーバーを再起動するのを忘れる
  • ❌ サーバーがクラッシュし、自動再起動しない
  • ❌ どのプロセスがポートを使用しているかを見つけられない
  • ❌ 手動の npm run dev は脆弱で、永続化されない

解決策:

  • ✅ PM2 がプロセスライフサイクルを自動的に管理する
  • ✅ クラッシュ時に自動再起動
  • ✅ 一元化されたロギング
  • ✅ ACT エコシステムデプロイスクリプトと連携
  • ✅ 起動/停止/再起動のためのシンプルなコマンド

PM2 と npm run dev の使い分け

PM2 を使用する場合:

  • 複数の ACT プロジェクトを同時に作業する場合
  • ファイル変更時に自動再起動が必要な場合
  • プロジェクト全体で一元化されたロギングが必要な場合
  • テストのためにローカルにデプロイする場合
  • サーバーがクラッシュし続け、永続性が必要な場合

npm run dev を使用する場合:

  • 簡単な単発テスト
  • コンソールログで積極的にデバッグする場合
  • Empathy Ledger のみを作業する場合
  • 迅速なコード変更を行い、即座にフィードバックを得たい場合

セットアップ (初回のみ)

1. PM2 をグローバルにインストール

npm install -g pm2

2. Empathy Ledger PM2 設定を作成

グローバルなエコシステム設定には、すでに Empathy Ledger が以下で設定されています。 /Users/benknight/act-global-infrastructure/deployment/ecosystem.config.cjs

Empathy Ledger 設定:

{
  name: 'empathy-ledger',
  script: '/Users/benknight/.nvm/versions/node/v20.19.3/bin/npm',
  args: 'run dev',
  cwd: '/Users/benknight/Code/empathy-ledger-v2',
  env: {
    PORT: 3001,  // 注: スタンドアロン (3030) とは異なる
    NODE_ENV: 'development',
  },
  autorestart: true,
  max_restarts: 10,
  min_uptime: '10s',
}

使用パターン

パターン 1: 単一プロジェクト (Empathy Ledger のみ)

サーバーを起動:

cd /Users/benknight/Code/empathy-ledger-v2
pm2 start npm --name "empathy-ledger-solo" -- run dev

ステータスを確認:

pm2 list

ログを表示:

pm2 logs empathy-ledger-solo

コード変更後に再起動:

pm2 restart empathy-ledger-solo

サーバーを停止:

pm2 stop empathy-ledger-solo
pm2 delete empathy-ledger-solo  # PM2 から削除

パターン 2: フル ACT エコシステム

すべてのプロジェクトを起動 (推奨):

/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh start

これにより、以下が起動します。

  • ACT Regenerative Studio (ポート 3002)
  • Empathy Ledger (ポート 3001)
  • JusticeHub (ポート 3003)
  • The Harvest Website (ポート 3004)
  • ACT Farm (ポート 3005)
  • ACT Placemat (ポート 3999)

すべて再起動:

/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh restart

すべて停止:

/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh stop

すべてのログを表示:

pm2 logs

すべてのプロジェクトを監視:

pm2 monit

パターン 3: "Address Already in Use" エラーの修正

問題: ポート 3030 (または任意のポート) が使用中

解決策 1: プロセスを強制終了し、PM2 で再起動

# ポート上のプロセスを見つけて強制終了
lsof -ti :3030 | xargs kill -9

# 自動復旧のために PM2 で起動
pm2 start npm --name "empathy-ledger-solo" -- run dev

解決策 2: PM2 の再起動を使用 (クリーンアップを処理)

pm2 restart empathy-ledger

解決策 3: エコシステムスクリプトを使用

/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh restart

トラブルシューティング

サーバーが起動しない

PM2 のステータスを確認:

pm2 list
pm2 logs empathy-ledger --lines 50

ポートの可用性を確認:

lsof -i :3030
lsof -i :3001  # エコシステム設定を使用している場合

強制終了して再起動:

pm2 delete empathy-ledger
lsof -ti :3030 | xargs kill -9
pm2 start npm --name "empathy-ledger-solo" -- run dev

サーバーが繰り返しクラッシュする

最大再起動回数を確認:

pm2 logs empathy-ledger --err --lines 100

"max restarts reached" と表示される場合は、コードエラーの可能性があります。エラーログを確認してください。

cat /Users/benknight/act-global-infrastructure/deployment/logs/empathy-ledger-error.log

最大再起動回数を増やす (必要に応じて): エコシステム設定を編集し、max_restarts: 10max_restarts: 20 に増やします。

コードの変更が反映されない

PM2 はデフォルトでは自動リロードしません

オプション 1: 変更後に手動で再起動:

pm2 restart empathy-ledger

オプション 2: ウォッチモードを有効にする (Next.js には推奨されません):

pm2 start npm --name "empathy-ledger-solo" --watch -- run dev

オプション 3: アクティブな開発には npm run dev を直接使用する


ベストプラクティス

開発ワークフロー

  1. 朝の起動:

    /Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh start
  2. すべて実行中か確認:

    pm2 list
  3. コードの作業 (自動再起動がクラッシュを処理)

  4. 必要に応じてログを表示:

    pm2 logs empathy-ledger
  5. 一日の終わり:

    /Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh stop

テストワークフロー

  1. コードを変更

  2. サーバーを再起動:

(原文がここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Local Development Server Management

Purpose: Zero-friction local development server management for Empathy Ledger using PM2

Trigger: When user needs to start/stop/restart local dev server, or when "address already in use" errors occur


Quick Commands

# Single project (Empathy Ledger only)
pm2 start empathy-ledger       # Start server
pm2 restart empathy-ledger     # Restart server
pm2 stop empathy-ledger        # Stop server
pm2 logs empathy-ledger        # View logs

# Full ACT ecosystem (all projects)
/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh start
/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh restart
/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh stop
/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh logs

Problem This Solves

Pain Points:

  • ❌ "address already in use" errors when port is occupied
  • ❌ Forgetting to restart server after code changes
  • ❌ Server crashes and doesn't auto-restart
  • ❌ Can't find which process is using the port
  • ❌ Manual npm run dev is fragile and doesn't persist

Solution:

  • ✅ PM2 manages process lifecycle automatically
  • ✅ Auto-restart on crashes
  • ✅ Centralized logging
  • ✅ Works with ACT ecosystem deployment script
  • ✅ Simple commands for start/stop/restart

When to Use PM2 vs npm run dev

Use PM2 When:

  • Working on multiple ACT projects simultaneously
  • Need auto-restart on file changes
  • Want centralized logging across projects
  • Deploying locally for testing
  • Server keeps crashing and you need persistence

Use npm run dev When:

  • Quick one-off testing
  • Actively debugging with console logs
  • Only working on Empathy Ledger
  • Making rapid code changes and want instant feedback

Setup (One-Time)

1. Install PM2 Globally

npm install -g pm2

2. Create Empathy Ledger PM2 Config

The global ecosystem config already has Empathy Ledger configured at: /Users/benknight/act-global-infrastructure/deployment/ecosystem.config.cjs

Empathy Ledger Config:

{
  name: 'empathy-ledger',
  script: '/Users/benknight/.nvm/versions/node/v20.19.3/bin/npm',
  args: 'run dev',
  cwd: '/Users/benknight/Code/empathy-ledger-v2',
  env: {
    PORT: 3001,  // Note: Different from standalone (3030)
    NODE_ENV: 'development',
  },
  autorestart: true,
  max_restarts: 10,
  min_uptime: '10s',
}

Usage Patterns

Pattern 1: Single Project (Empathy Ledger Only)

Start Server:

cd /Users/benknight/Code/empathy-ledger-v2
pm2 start npm --name "empathy-ledger-solo" -- run dev

Check Status:

pm2 list

View Logs:

pm2 logs empathy-ledger-solo

Restart After Code Changes:

pm2 restart empathy-ledger-solo

Stop Server:

pm2 stop empathy-ledger-solo
pm2 delete empathy-ledger-solo  # Remove from PM2

Pattern 2: Full ACT Ecosystem

Start All Projects (Recommended):

/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh start

This starts:

  • ACT Regenerative Studio (port 3002)
  • Empathy Ledger (port 3001)
  • JusticeHub (port 3003)
  • The Harvest Website (port 3004)
  • ACT Farm (port 3005)
  • ACT Placemat (port 3999)

Restart All:

/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh restart

Stop All:

/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh stop

View All Logs:

pm2 logs

Monitor All Projects:

pm2 monit

Pattern 3: Fix "Address Already in Use" Errors

Problem: Port 3030 (or any port) is occupied

Solution 1: Kill Process and Restart with PM2

# Find and kill process on port
lsof -ti :3030 | xargs kill -9

# Start with PM2 for auto-recovery
pm2 start npm --name "empathy-ledger-solo" -- run dev

Solution 2: Use PM2 Restart (Handles Cleanup)

pm2 restart empathy-ledger

Solution 3: Use Ecosystem Script

/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh restart

Troubleshooting

Server Won't Start

Check PM2 Status:

pm2 list
pm2 logs empathy-ledger --lines 50

Check Port Availability:

lsof -i :3030
lsof -i :3001  # If using ecosystem config

Force Kill and Restart:

pm2 delete empathy-ledger
lsof -ti :3030 | xargs kill -9
pm2 start npm --name "empathy-ledger-solo" -- run dev

Server Crashes Repeatedly

Check Max Restarts:

pm2 logs empathy-ledger --err --lines 100

If you see "max restarts reached", there's likely a code error. Check the error logs:

cat /Users/benknight/act-global-infrastructure/deployment/logs/empathy-ledger-error.log

Increase Max Restarts (if needed): Edit ecosystem config and increase max_restarts: 10max_restarts: 20

Code Changes Not Reflecting

PM2 Doesn't Auto-Reload by Default

Option 1: Restart manually after changes:

pm2 restart empathy-ledger

Option 2: Enable watch mode (not recommended for Next.js):

pm2 start npm --name "empathy-ledger-solo" --watch -- run dev

Option 3: Use npm run dev directly for active development


Best Practices

Development Workflow

  1. Morning Startup:

    /Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh start
  2. Check All Running:

    pm2 list
  3. Work on Code (Auto-Restart Handles Crashes)

  4. View Logs When Needed:

    pm2 logs empathy-ledger
  5. End of Day:

    /Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh stop

Testing Workflow

  1. Make Code Changes

  2. Restart Server:

    pm2 restart empathy-ledger
  3. Wait 3-5 Seconds for Startup

  4. Test API/Feature

  5. Check Logs for Errors:

    pm2 logs empathy-ledger --lines 20

Integration with Existing Tools

Works With Supabase Local Dev

# Start Supabase
npx supabase start

# Start Empathy Ledger with PM2
pm2 start npm --name "empathy-ledger-solo" -- run dev

# Both run together
pm2 list

Works With Database Migrations

# Run migration
npx supabase db push

# Restart server to load new schema
pm2 restart empathy-ledger

Works With Testing Scripts

# Server already running via PM2
pm2 list

# Run test script
bash test-syndication.sh

# Logs show the requests
pm2 logs empathy-ledger --lines 30

PM2 Cheat Sheet

Command Purpose
pm2 start <script> Start a process
pm2 list Show all processes
pm2 logs View all logs (live)
pm2 logs <name> View specific process logs
pm2 restart <name> Restart process
pm2 stop <name> Stop process
pm2 delete <name> Remove from PM2
pm2 monit Open monitoring dashboard
pm2 flush Clear all logs
pm2 save Save current process list
pm2 startup Enable PM2 on system boot

Automation Recommendations

Create Project-Specific Script

Add to package.json:

{
  "scripts": {
    "dev": "next dev -p 3030",
    "dev:pm2": "pm2 start npm --name empathy-ledger-solo -- run dev",
    "dev:restart": "pm2 restart empathy-ledger-solo",
    "dev:stop": "pm2 stop empathy-ledger-solo && pm2 delete empathy-ledger-solo",
    "dev:logs": "pm2 logs empathy-ledger-solo"
  }
}

Usage:

npm run dev:pm2        # Start with PM2
npm run dev:restart    # Restart
npm run dev:logs       # View logs
npm run dev:stop       # Stop and remove

Create Alias in Shell (.zshrc or .bashrc)

# Empathy Ledger shortcuts
alias el-start='pm2 start npm --name empathy-ledger-solo -- run dev'
alias el-restart='pm2 restart empathy-ledger-solo'
alias el-stop='pm2 stop empathy-ledger-solo && pm2 delete empathy-ledger-solo'
alias el-logs='pm2 logs empathy-ledger-solo'
alias el-status='pm2 list | grep empathy'

# ACT Ecosystem shortcuts
alias act-start='/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh start'
alias act-restart='/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh restart'
alias act-stop='/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh stop'
alias act-logs='pm2 logs'
alias act-status='pm2 list'

Reload shell:

source ~/.zshrc  # or source ~/.bashrc

Usage:

el-start      # Start Empathy Ledger
el-restart    # Restart
el-logs       # View logs
el-stop       # Stop

ACT Ecosystem Deployment Script

Location: /Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh

Commands:

./deploy-act-ecosystem.sh start    # Start all projects
./deploy-act-ecosystem.sh stop     # Stop all projects
./deploy-act-ecosystem.sh restart  # Restart all projects
./deploy-act-ecosystem.sh status   # Show status
./deploy-act-ecosystem.sh logs     # Show all logs
./deploy-act-ecosystem.sh monitor  # Open PM2 dashboard

Features:

  • ✅ Starts all 6 ACT projects
  • ✅ Auto-opens sites in Chrome (via AppleScript)
  • ✅ Centralized logging to /Users/benknight/act-global-infrastructure/deployment/logs/
  • ✅ Auto-restart on crashes
  • ✅ Color-coded status output

Ports:

  • ACT Studio: 3002
  • Empathy Ledger: 3030
  • JusticeHub: 3003
  • Harvest: 3004
  • ACT Farm: 3005
  • Placemat: 3999

Note: All projects use consistent ports across standalone and ecosystem modes


Common Scenarios

Scenario 1: "Address Already in Use" Error

User sees:

Error: listen EADDRINUSE: address already in use :::3030

Claude Response:

# Kill existing process
lsof -ti :3030 | xargs kill -9

# Start with PM2 for reliability
pm2 start npm --name "empathy-ledger-solo" -- run dev

# Verify running
pm2 list

Scenario 2: Server Needs Restart After Schema Fix

User says: "I fixed the schema, now restart the server"

Claude Response:

# If using PM2
pm2 restart empathy-ledger

# If using ecosystem
/Users/benknight/act-global-infrastructure/deployment/scripts/deploy-act-ecosystem.sh restart

# Wait for startup
sleep 5

# Test
curl http://localhost:3030

Scenario 3: Testing Syndication System

User says: "Test the syndication API"

Claude Response:

# Ensure server is running
pm2 list | grep empathy || pm2 start npm --name "empathy-ledger-solo" -- run dev

# Wait for startup
sleep 5

# Run test
bash test-syndication.sh

# Check logs if errors
pm2 logs empathy-ledger-solo --lines 50

Integration with Development Workflow

Sprint Development Cycle

Sprint Start:

act-start  # Start all ACT projects

During Development:

# Make code changes
# ...

# Restart to test
pm2 restart empathy-ledger

# View logs
pm2 logs empathy-ledger

End of Sprint:

# Stop all projects
act-stop

# Or keep running if continuing tomorrow
pm2 save  # Save current state

Log Management

View Live Logs:

pm2 logs empathy-ledger

View Last N Lines:

pm2 logs empathy-ledger --lines 100

View Error Logs Only:

pm2 logs empathy-ledger --err

Clear All Logs:

pm2 flush

Log File Locations (Ecosystem):

/Users/benknight/act-global-infrastructure/deployment/logs/empathy-ledger-out.log
/Users/benknight/act-global-infrastructure/deployment/logs/empathy-ledger-error.log

When Claude Should Use This Skill

Trigger Phrases:

  • "Start the dev server"
  • "Restart the server"
  • "Address already in use"
  • "Port 3030 is busy"
  • "Server won't start"
  • "Test the API" (ensure server running first)
  • "Deploy locally"
  • "Run all ACT projects"

Actions Claude Should Take:

  1. Check if server is running:

    pm2 list | grep empathy
  2. If not running, start it:

    pm2 start npm --name "empathy-ledger-solo" -- run dev
  3. If running but needs restart:

    pm2 restart empathy-ledger-solo
  4. Wait for startup:

    sleep 5
  5. Verify responsive:

    curl -s http://localhost:3030 > /dev/null && echo "✅ Server running" || echo "❌ Server not responding"
  6. Proceed with testing/development


Success Criteria

After following this skill, user should:

  • ✅ Have server running reliably
  • ✅ Be able to restart server easily
  • ✅ No more "address already in use" errors
  • ✅ Have access to centralized logs
  • ✅ Know how to use PM2 for all ACT projects

This skill eliminates the "local deployment shit fight" by providing a consistent, reliable, PM2-based workflow that aligns with the ACT ecosystem deployment strategy.