Newer
Older
TIASDataHub / docs / 02_ENV / ENV_03_管理者用環境構築手順.md

管理者用環境構築手順 (Administrator Setup)

プロジェクト作成時に一度だけ行う初期設定.

GitHub リポジトリの作成 (Repository Creation)

Private リポジトリとして作成する(臨床データは含めないが,研究途中のコードを公開しないため).2026-10-02 時点で作成済み.

gh repo create rintoHasegawa/TIASDataHub --private --source=. --remote=origin \
  --description "舌診研究のデータを研究室 PC で一元管理する共有データ基盤"

リポジトリのセキュリティ設定 (Repository Security Settings)

Dependabot alerts(脆弱性検出)と Dependabot security updates はリポジトリごとに既定で OFF なので,作成直後に有効化する(冪等なので再実行してよい).2026-10-02 に実施し,検証済み.

gh api -X PUT repos/rintoHasegawa/TIASDataHub/vulnerability-alerts
gh api -X PUT repos/rintoHasegawa/TIASDataHub/automated-security-fixes

検証:

gh api repos/rintoHasegawa/TIASDataHub/vulnerability-alerts -i       # 204 なら有効(404 なら無効)
gh api repos/rintoHasegawa/TIASDataHub/automated-security-fixes      # {"enabled":true,...} なら有効

※ 依存バージョンの定期更新は .github/dependabot.yml で設定する(uv・github-actions.リポジトリ設定とは独立に動く).

研究室 PC のツール導入 (Lab PC Tools)

2026-10-02 に手元 PC から SSH(ssh labpc)で実施.研究室 PC には git はあったが,uv・gh は無く,python は Microsoft Store の案内用スタブだけだった.

powershell -NoProfile -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
C:\Users\Papin\.local\bin\uv.exe python install 3.12
  • uv 0.12.22・Python 3.12.15 がユーザー領域(C:\Users\Papin\.local\bin・C:\Users\Papin\AppData\Roaming\uv\python\)に入った.管理者権限は不要
  • gh は入れない(研究室 PC では編集・コミットしない)

研究室 PC のデプロイキー (Lab PC Deploy Key)

研究室 PC が GitHub(Private)から取得するため,このリポジトリ専用の読み取り専用のデプロイキーを使う(個人のアカウントの認証情報を研究室 PC に置かないため).2026-10-02 に手元 PC から SSH で実施.

  1. 研究室 PC で鍵を作る(パスフレーズなし)

    ssh -n labpc 'ssh-keygen -q -t ed25519 -f C:\Users\Papin\.ssh\id_ed25519_tiasdatahub -N "" -C papin-DESKTOP-1QLOO91-TIASDataHub-deploy'
    
  2. 公開鍵をデプロイキーとして登録する(手元 PC の gh.既定で読み取り専用)

    ssh -n labpc 'type C:\Users\Papin\.ssh\id_ed25519_tiasdatahub.pub' > labpc_deploy.pub
    gh repo deploy-key add labpc_deploy.pub --repo rintoHasegawa/TIASDataHub --title "labpc DESKTOP-1QLOO91 (read-only)"
    
  3. 研究室 PC の C:\Users\Papin\.ssh\config に別名を追加する

    Host github-tiasdatahub
        HostName github.com
        User git
        IdentityFile C:/Users/Papin/.ssh/id_ed25519_tiasdatahub
        IdentitiesOnly yes
    
  4. 接続を確かめる.初回は GitHub のホスト鍵を受け入れる(指紋が GitHub の公開値 SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU(ED25519)と一致することを ssh-keygen -lF github.com で確認した)

    ssh -n labpc "ssh -o StrictHostKeyChecking=accept-new -T github-tiasdatahub"
    ssh -n labpc "git ls-remote git@github-tiasdatahub:rintoHasegawa/TIASDataHub.git"
    
  • 別名を鍵ごとに分けているのは,GitHub のデプロイキーが 1 つのリポジトリにしか登録できないため(他のリポジトリを研究室 PC に置く場合は,そのリポジトリ用の鍵と別名を同様に作る)
  • 鍵を作り直したら,GitHub の Settings → Deploy keys から古い鍵を削除する

研究室 PC のデータの置き場所 (Lab PC Data Location)

臨床データは研究室 PC の E ドライブ(内蔵 SATA SSD・約 465GB・NTFS)の E:\clinical-data\ に置く(配置は SPEC_01「配置」).E ドライブは OneDrive の同期対象外.

2026-10-06 に C ドライブ(空きが少なかった)から移した.手元 PC から SSH 経由で次のように行った.

  1. C:\Users\Papin\clinical-data\ の全ファイル(26,268 個・45.30GB)を同じ構成で E:\clinical-data\ へコピーし,コピーしたファイルを読み直して SHA-256 を元と照合した(不一致 0)
  2. C と E の構成(相対パス・大きさ・空のフォルダを含むフォルダ)が一致することを確かめてから,C 側を削除した
  • コピー・削除はユーザーが実行し,Claude は試走と照合(件数のみ)を行った
  • C 側のフォルダには読み取り専用の属性が付いたものがあり,Python の shutil.rmtree がアクセス拒否で止まった.属性を外して再試行する(onexc で os.chmod(path, stat.S_IWRITE))ことで削除できた
  • TIASJudgeModel の手順書(ENV_03 等)にある原本のパス C:\Users\Papin\clinical-data\… は古くなった(TIASJudgeModel 側で直す)

研究室 PC への配置 (Lab PC Deployment)

立ち上げの成果物を main に取り込んだ後に行う.手順は ENV_02「研究室 PC のセットアップ」.

  • 2026-10-09 に実施した(手元 PC から SSH.PLAN_02 Step 6)
    1. GitHub からデプロイキーで clone し,uv sync --no-dev --extra import
    2. 設定ファイル C:\Users\Papin\.config\tiasdata\config.toml を作成(既にあれば上書きしないスクリプトを標準入力で流した)
    3. tiasdata init → tiasdata import tiasjudgemodel → stats・check(問題 0 件)
    4. tiasdata dataset freeze tongue_color(版 1・1081 枚)→ tiasdata backup(目録・対応表とも整合性 ok)

Claude のアクセス制限 (Claude Access Restriction)

Claude にデータの中身を読ませないため,.claude/repo-access.json の deny_read にデータの置き場所を書く.研究室 PC は手元 PC から SSH で操作するため(ENV_02「研究室 PC の操作方針」),このフックが効くのは手元 PC のパスと,コマンド文字列に現れたパスだけである.SSH の先での読み取りは,CLI の出力規則と「SSH でデータの中身を表示しない」運用で防ぐ.

{
  "deny_read": [
    "E:/clinical-data",
    "data",
    "exports"
  ]
}
  • 目録の DB ファイル・データ置き場・manifest の出力先を仕様設計で決めたら,リポジトリの外に置く場所もここに追加する

人間が確認すべき事項 (Human Checklist)

Claude は実施できない.

  • 倫理審査で定められた臨床データの保管ルール(保管場所・アクセスできる人の範囲・保管期間・計算サーバへのコピーの可否)
  • 目録の DB ファイルのバックアップ方法(仕様設計で決める.バックアップ先も OneDrive の同期対象外にする)
  • 臨床データを置く E ドライブを BitLocker で暗号化するか(2026-10-06 時点で未暗号化.C ドライブも同じ.有効化には管理者権限が要る)