Skip to content

Latest commit

 

History

History
124 lines (91 loc) · 3.06 KB

File metadata and controls

124 lines (91 loc) · 3.06 KB

システムアーキテクチャ

概要

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
Loading

コンポーネント

Web UI (Port: 5173)

ブラウザからアクセスするWebアプリケーション。

主要機能:

  • ユーザー認証(Google OAuth)
  • Run一覧表示・詳細表示
  • DAGビューア(実験プロセス可視化)
  • ファイルブラウザ・ダウンロード
  • Admin Panel(ユーザー・プロジェクト管理、実験実行)

Backend API (Port: 8000)

REST APIを提供するバックエンドサーバー。

主要機能:

  • ユーザー・プロジェクト管理
  • Run(実験実行)管理
  • プロセス・オペレーション・ポート管理
  • ストレージ連携(S3/ローカル)

Simulator (Port: 8888)

実験シミュレータ。

主要機能:

  • プロトコルファイル(YAML)の解析・実行
  • 実験ログの生成・送信
  • ストレージへのデータ書き込み

PostgreSQL (Port: 5432)

データベース。ユーザー、プロジェクト、Run、プロセスなどのデータを永続化。

AWS S3 (Optional)

実験データのストレージ。ローカルストレージも使用可能。

通信フロー

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
Loading

アクセス方法

サービス 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