新しいプロジェクトの始め方(チートシート)
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
この記事は、記事5〜12の内容を要約したチートシートです。新しい案件が始まるたびに参照する手順書として使ってください。各手順の背景や詳しい説明は元の記事を参照してください。
この手順は、記事4までの環境(Ubuntu 24.04 LTS のベース構築、SSH、UFW)が完了している前提です。
【広告】 XServer VPS には Claude Code のアプリイメージが用意されています。
VPS上に独立した Claude Code 環境を簡単に構築することができます。
VPSでいろいろ試すなら『XServer VPS』
専用ユーザーの作成(記事5)
プロジェクトごとに専用ユーザーを作成し、ホームディレクトリを保護します。ユーザー名は cc-企業名-案件名 の形で、32文字以内が目安です。
# ユーザー作成(パスワードなし=ロック状態)
sudo useradd -m -s /bin/bash <ユーザー名>
# 例:
# sudo useradd -m -s /bin/bash cc-sample-wp
# ホームディレクトリを 700 に変更(所有者のみアクセス可)
sudo chmod 700 /home/<ユーザー名>
# 作業ディレクトリの作成
sudo -u <ユーザー名> mkdir /home/<ユーザー名>/project
UFW ルールの追加(記事6)
DB サーバーへの接続が必要な場合は、UFW のアウトバウンドルールを追加します。SSH やDNS、HTTPS の基本ルールは記事6で設定済みです。
# DB サーバーへの接続許可(必要な分だけ追加)
sudo ufw allow out to <DBサーバーIP> port <ポート> proto tcp
# 例:
# sudo ufw allow out to 192.168.1.10 port 13306 proto tcp
# 確認
sudo ufw status numbered
ユーザー制限の設定(記事7)
ディスククォータ
sudo setquota -u <ユーザー名> 20G 22G 0 0 /
# 確認
sudo quota -u <ユーザー名>
プロセス数制限(ulimit)
sudo vi /etc/security/limits.d/<ユーザー名>.conf
<ユーザー名> soft nproc 100
<ユーザー名> hard nproc 150
メモリ制限(cgroups)
# UID の確認
id <ユーザー名>
# スライス設定の作成(UID を確認して置き換え)
sudo mkdir -p /etc/systemd/system/user-<UID>.slice.d
sudo vi /etc/systemd/system/user-<UID>.slice.d/memory.conf
[Slice]
MemoryMax=4G
MemoryHigh=3G
sudo systemctl daemon-reload
設定ファイルのロック
sudo chattr +i /home/<ユーザー名>/.bashrc
sudo chattr +i /home/<ユーザー名>/.profile
sudo chattr +i /home/<ユーザー名>/.bash_logout
Claude Code のインストール(記事8)
# .bashrc のロックを一時解除して PATH を追記
sudo chattr -i /home/<ユーザー名>/.bashrc
echo 'export PATH="$HOME/.local/bin:$PATH"' | sudo tee -a /home/<ユーザー名>/.bashrc
sudo chattr +i /home/<ユーザー名>/.bashrc
# 専用ユーザーに切り替え
sudo su - <ユーザー名>
# project ディレクトリに移動
cd ~/project
# インストール
curl -fsSL https://claude.ai/install.sh | bash
# バージョン確認
claude --version
初回起動時にテーマ選択・ログイン認証・ワークスペースの信頼確認があります。ブラウザ認証が必要なので、表示される URL をメインPC のブラウザで開いてください。
# 起動して認証
claude
# 認証完了後 /exit で一旦終了し、管理ユーザーに戻る
exit
ワークフローの設定(記事9)
管理ユーザーの雛形ディレクトリから設定ファイルを専用ユーザーに配置します。
雛形のコピー
# settings.json のコピー
sudo cp -r ~/cc-template/claude-project/.claude /home/<ユーザー名>/project/
sudo chown -R <ユーザー名>:<ユーザー名> /home/<ユーザー名>/project/.claude
# CLAUDE-global.md のコピーとシンボリックリンク
sudo cp ~/cc-template/claude-global/CLAUDE.md /home/<ユーザー名>/project/.claude/CLAUDE-global.md
sudo chown <ユーザー名>:<ユーザー名> /home/<ユーザー名>/project/.claude/CLAUDE-global.md
sudo mkdir -p /home/<ユーザー名>/.claude
sudo ln -s /home/<ユーザー名>/project/.claude/CLAUDE-global.md /home/<ユーザー名>/.claude/CLAUDE.md
sudo chown -h <ユーザー名>:<ユーザー名> /home/<ユーザー名>/.claude/CLAUDE.md
# プロジェクト CLAUDE.md のコピー
sudo cp ~/cc-template/claude-project/CLAUDE.md /home/<ユーザー名>/project/
sudo chown <ユーザー名>:<ユーザー名> /home/<ユーザー名>/project/CLAUDE.md
Git リポジトリの初期化
# 専用ユーザーに切り替え
sudo su - <ユーザー名>
cd ~/project
# Git の初期設定
git config --global user.name "claude-code"
git config --global user.email "claude-code@example.com"
# リポジトリの初期化と初期コミット
git init
git add -A
git commit -m "initial commit"
# 管理ユーザーに戻る
exit
ファイル同期の設定(記事10)
sudoers の設定
管理ユーザー用の NOPASSWD 設定は記事10で一度だけ行えば、以降のプロジェクトでは不要です。未設定の場合のみ実施してください。
sudo visudo -f /etc/sudoers.d/rsync-sync
<管理ユーザー名> ALL=(ALL) NOPASSWD: /usr/bin/rsync, /usr/bin/rm, /usr/bin/test
# 例:
# shinohara ALL=(ALL) NOPASSWD: /usr/bin/rsync, /usr/bin/rm, /usr/bin/test
メインPC 側のセットアップ
メインPC 側のプロジェクトフォルダに、以下のファイル・ディレクトリを用意します。スクリプトの内容は記事10を参照してください。
プロジェクトルート\
├── _scripts\
│ ├── _push_to_ubuntu\
│ │ └── push-to-ubuntu.cmd
│ └── _sync_claude_code\
│ ├── .gitignore
│ ├── sync-watch.cmd
│ ├── sync-watch.ps1
│ └── sync-pull.cmd
├── .claude\
│ └── settings.json ← 雛形からコピー済み
├── .local\
│ ├── _sync_claude_code_config.env
│ └── _sync_claude_code_config.env.sample
├── .gitignore
├── CLAUDE.md
└── commit-msg.txt(空ファイル)
接続設定ファイル(.local\_sync_claude_code_config.env)の値を新しいプロジェクトに合わせて更新します。
SSH_USER=<管理ユーザー名>
SSH_HOST=<UbuntuのIP>
SSH_KEY=<秘密鍵のパス>
SSH_REMOTE_SYNC_READY=/home/<ユーザー名>/project/.claude/sync-ready
RSYNC_USER=<管理ユーザー名>
RSYNC_HOST=<UbuntuのIP>
RSYNC_KEY=<秘密鍵のパス>
RSYNC_REMOTE_DIR=/home/<ユーザー名>/project/
RSYNC_LOCAL_DIR=<Cygwinパスのプロジェクトルート>
RSYNC_DRY_RUN=1
RSYNC_VERBOSE=1
CHECK_INTERVAL=5
commit.template を設定します。
# メインPC 側のプロジェクトルートで実行
type nul > .claude\commit-msg.txt
git config --local commit.template .claude/commit-msg.txt
CMS 環境の構築(記事11 — WordPress の場合)
この手順は WordPress 案件の場合です。他の CMS を使う場合は、ディレクトリ構成と同期ルールを読み替えてください。
.gitignore の追加
メインPC 側の .gitignore に WordPress 用のルールを追加します。独自テーマと mu-plugins だけを Git 管理対象にし、WordPress 本体は除外します。記事11に全文があります。
WordPress の配置
メインPC 側の public_html\ に WordPress を展開し、.local\wp-config.php を作成してシンボリックリンクを張ります。
settings.json の更新
WordPress 固有の deny ルールを .claude\settings.json に追加します。
"Bash(wp:*)",
"Write(public_html/wp-admin/**)",
"Write(public_html/wp-includes/**)",
"Write(public_html/wp-*.php)",
"Write(public_html/wp-content/plugins/**)",
"Write(public_html/wp-content/uploads/**)",
"Write(public_html/wp-content/themes/twenty*/**)"
push-to-ubuntu と sync-pull の更新
push-to-ubuntu.cmd に WordPress の同期ルールを追加します。sync-pull.cmd にも独自テーマ・mu-plugins のディレクトリを include に追加します。記事11に具体的なルールがあります。
初回同期
# push-to-ubuntu でメインPC → Ubuntu にファイルを送る
# _scripts\_push_to_ubuntu\push-to-ubuntu.cmd をダブルクリック
# 動作確認(RSYNC_DRY_RUN=1 で先に試す)
# sync-watch を起動し、Ubuntu 側で sync-ready を手動作成して検知されることを確認
# 確認できたら RSYNC_DRY_RUN=0 に変更して本番同期
開発ツールの追加(記事12)
.local-cc/ の設定
メインPC 側に .local-cc\database.json を作成し、push-to-ubuntu で Ubuntu に送ります。
{
"host": "<DBサーバーIP>",
"port": 13306,
"database": "<データベース名>",
"user": "<読み取り専用ユーザー>",
"password": "<パスワード>"
}
DB ユーザーはSELECT のみ許可された読み取り専用ユーザーを使用してください。書き込み権限のあるユーザーを渡さないでください。
MySQL クライアントのインストール(初回のみ)
MySQL クライアントは Ubuntu 全体に1回インストールすれば、以降のプロジェクトでは不要です。
# apt 用に HTTP を一時開放
sudo ufw allow out 80/tcp
sudo apt update
sudo apt install mysql-client -y
# HTTP を閉じる
sudo ufw delete allow out 80/tcp
# 確認
mysql --version
確認チェックリスト
すべての設定が完了したら、以下を確認してください。
# --- Ubuntu 側(管理ユーザーで実行)---
# ユーザーの存在と権限
id <ユーザー名>
ls -ld /home/<ユーザー名>
# ディスククォータ
sudo quota -u <ユーザー名>
# プロセス数制限
sudo su - <ユーザー名> -c "ulimit -u"
# メモリ制限(UID を確認して置き換え)
systemctl show user-<UID>.slice | grep -E "MemoryMax|MemoryHigh"
# 設定ファイルのロック
sudo lsattr /home/<ユーザー名>/.bashrc /home/<ユーザー名>/.profile /home/<ユーザー名>/.bash_logout
# Claude Code
sudo su - <ユーザー名> -c "claude --version"
# settings.json
sudo cat /home/<ユーザー名>/project/.claude/settings.json
# CLAUDE.md(シンボリックリンク)
sudo ls -la /home/<ユーザー名>/.claude/CLAUDE.md
# Git リポジトリ
sudo su - <ユーザー名> -c "cd ~/project && git log --oneline"
# UFW ルール
sudo ufw status numbered
# --- メインPC 側 ---
# commit.template
git config --local commit.template
# sync-watch の動作確認(RSYNC_DRY_RUN=1 で)
# Ubuntu 側で sync-ready を手動作成 → 検知 → 同期 → 削除 の一連を確認
【広告】 XServer VPS には Claude Code のアプリイメージが用意されています。
VPS上に独立した Claude Code 環境を簡単に構築することができます。
VPSでいろいろ試すなら『XServer VPS』