LabCodeは4つの主要コンポーネントで構成されるシステムです。
graph TB
subgraph Docker["LabCode システム (Docker Compose環境)"]
subgraph Frontend["Web UI"]
WebApp["labcode-web-app<br/>React + Vite<br/>Port: 5173"]
end
subgraph Backend["Backend API"]
LogServer["labcode-log-server<br/>FastAPI + SQLAlchemy<br/>Port: 8000"]
end
subgraph Simulator["Simulator"]
Sim["labcode-sim<br/>Port: 8888"]
end
subgraph Storage["Storage Layer"]
DB[(SQLite<br/>Database)]
S3[(AWS S3<br/>Optional)]
end
end
WebApp <--> LogServer
LogServer <--> Sim
LogServer --> DB
LogServer --> S3
Sim --> S3
style Frontend fill:#e3f2fd
style Backend fill:#fff3e0
style Simulator fill:#f3e5f5
style Storage fill:#e8f5e9
ブラウザからアクセスするWebアプリケーション。
主要機能:
- ユーザー認証(Google OAuth)
- Run一覧表示・詳細表示
- DAGビューア(実験プロセス可視化)
- ファイルブラウザ・ダウンロード
- Admin Panel(ユーザー・プロジェクト管理、実験実行)
REST APIを提供するバックエンドサーバー。
主要機能:
- ユーザー・プロジェクト管理
- Run(実験実行)管理
- プロセス・オペレーション・ポート管理
- ストレージ連携(S3/ローカル)
実験シミュレータ。
主要機能:
- プロトコルファイル(YAML)の解析・実行
- 実験ログの生成・送信
- ストレージへのデータ書き込み
データベース。ユーザー、プロジェクト、Run、プロセスなどのデータを永続化。
実験データのストレージ。ローカルストレージも使用可能。
sequenceDiagram
participant Browser as ブラウザ
participant WebUI as Web UI<br/>(5173)
participant API as Backend API<br/>(8000)
participant DB as SQLite
participant Sim as Simulator<br/>(8888)
participant Storage as S3 / ローカル
Browser->>WebUI: HTTP Request
alt /api/* リクエスト
WebUI->>API: Proxy
API->>DB: Query
DB-->>API: Result
API-->>WebUI: Response
end
alt /sim_api/* リクエスト
WebUI->>Sim: Proxy
Sim->>Storage: Read/Write
Storage-->>Sim: Data
Sim-->>WebUI: Response
end
WebUI-->>Browser: HTTP Response
| サービス | URL |
|---|---|
| Web UI | http://localhost:5173 |
| Admin Panel | http://localhost:5173/admin |
| API (Swagger UI) | http://localhost:8000/docs |
| 変数名 | 説明 | デフォルト |
|---|---|---|
VITE_FEATURE_ADMIN_PANEL |
Admin Panelの有効/無効 | true |