アプリケーションを開発する
リポジトリのクローン
Section titled “リポジトリのクローン”GitHub リポジトリをクローンして、開発を行います。お好みのエディタを使用してコードを編集し、Node.jsを利用したローカル環境でアプリを利用することができます。
環境変数の設定
Section titled “環境変数の設定”以下は環境変数の例です。/apps/frontend/.env
と /apps/backend/.env
に設定してください。
VITE_BACKEND_URL=http://localhost:3001
OPENAI_API_KEY="sk-xxxxxx"OPENAI_API_ENDPOINT="https://your-openai-api-endpoint"BETTER_AUTH_URL="http://localhost:3001"BETTER_AUTH_SECRET=dummyDummyDummy
CORS_ORIGIN="http://localhost:3000"POSTGRES_USER=postgresPOSTGRES_PASSWORD=postgresDB_PORT=5432POSTGRES_DB="tutoriallm_db"DB_HOST="db.tutoriallm.local"
DOMAIN="localhost"EMAIL="[email protected]"
DEFAULT_USER_PASSWORD="admin"DEFAULT_USER_NAME="admin"
S3_USER="s3_root"S3_PASSWORD="s3_password"S3_ACCESS_KEY_ID="s3_access_key_id"S3_SECRET_ACCESS_KEY="s3_secret_access_key"
ドキュメンテーション(apps/docs)の開発サーバーを利用する際は、環境変数を、/apps/docs/.env
に設定してください。
OPENAPI_DOCS_URL=http://localhost:3001
データベースとの接続
Section titled “データベースとの接続”TutoriaLLM は、PostgreSQLと接続する必要があります。また、vector が利用できる PostgreSQL が必要です。ここでは、Docker composeを使用してpgvectorを利用する方法を説明します。
services: db: container_name: tutoriallm_db image: pgvector/pgvector:pg14 ports: - "5432:5432" env_file: - ./apps/backend/.env environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - PGDATA=/var/lib/postgresql/data/pgdata - TZ=UTC healthcheck: test: ["CMD-SHELL", "pg_isready -U $POSTGRES_USER -d $POSTGRES_DB"] interval: 5s timeout: 60s retries: 5 start_period: 5s volumes: - db_data_db:/var/lib/postgresql/datavolumes: db_data_db:
サーバーの起動
Section titled “サーバーの起動”(推奨) Dockerを使用した起動
Section titled “(推奨) Dockerを使用した起動”Docker composeを利用して、フロントエンドとバックエンドを起動します。TutoriaLLMリポジトリ内にあるdocker-compose.yml
と、docker-compose.dev.override.yml
を使用してください。
docker compose -f docker-compose.yml -f docker-compose.dev.override.yml up --build # ビルドして起動docker compose -f docker-compose.yml -f docker-compose.dev.override.yml up # 起動
ドキュメンテーションの開発サーバーを起動する必要がある場合はpnpmを使用してください。
pnpmを使用した起動
Section titled “pnpmを使用した起動”pnpmを利用することで、個別にフロントエンドとバックエンドを起動することができます。
データベースを起動します。
docker compose up
フロントエンドとバックエンド、必要があればドキュメンテーションを以下のコマンドで起動します。
# フロントエンドcd apps/frontendpnpm i && pnpm dev
# バックエンドcd apps/backendpnpm i && pnpm dev
# ドキュメンテーションcd apps/docspnpm i && pnpm dev
型定義の共有
Section titled “型定義の共有”このリポジトリでは、pnpm workspaceを使用して、フロントエンドとバックエンドで型定義を共有しています。 型定義はバックエンドで定義し、フロントエンドで使用することができます。
# バックエンドで型定義を生成cd apps/backendpnpm run build
ルートディレクトリで、以下のコマンドでテストを実行します。
pnpm test
拡張機能の開発
Section titled “拡張機能の開発”拡張機能は、デフォルトでは/packages/extensions
に配置されています。拡張機能を作成する場合は、このディレクトリに配置してください。
index.tsでエクスポートされた値をフロントエンドとバックエンドが読み込むために利用します。
拡張機能を定義した後、以下のコマンドでビルドします。
# 拡張機能のビルドpnpm run build
ビルド後、再度フロントエンドとバックエンドを起動してください。