Next AI Draw.io をローカルで実行したいだけなら、Docker を使うのが最もよい方法です。このページでは、コンテナでアプリを起動する方法、AI プロバイダーの設定を渡す方法、サーバーから複数のモデルを提供する方法、管理パネルの設定を残す方法を説明します。
アプリを起動する
Docker がまだインストールされていない場合は、先にインストールしてください:Docker を入手。
次に、以下を実行します。
docker run -d -p 3000:3000 \
-e AI_PROVIDER=openai \
-e AI_MODEL=gpt-4o \
-e OPENAI_API_KEY=your_api_key \
ghcr.io/dayuanjiang/next-ai-draw-io:latestブラウザで http://localhost:3000 を開きます。
-e オプションでは、AI プロバイダー、モデル、API キーを設定しています。使いたい AI プロバイダーの設定に置き換えてください。利用できるオプションについては、AI プロバイダーを参照してください。
env ファイルを使う
設定は env ファイルに書くこともできます。リポジトリにあるテンプレート env.example から始めます。リポジトリをクローンしている場合は、これを .env にコピーします。クローンしていない場合は、GitHub からファイルをダウンロードします。
# クローンしたリポジトリの中で
cp env.example .env
# リポジトリがない場合
curl -o .env https://raw.githubusercontent.com/DayuanJiang/next-ai-draw-io/main/env.example.env を自分の設定に合わせて編集してから、--env-file を付けてコンテナを起動します。
docker run -d -p 3000:3000 --env-file .env ghcr.io/dayuanjiang/next-ai-draw-io:latestdocker run --env-file は、= より後ろをすべて値として使います。行末のコメントも値に含まれます。env.example には、行末にこのようなコメントが付いた行があります。
# OPENAI_BASE_URL=https://api.openai.com/v1 # Optional: Custom OpenAI-compatible endpointこのような行を、先頭の # を消して有効にするときは、値の後ろのコメントも消してください。
OPENAI_BASE_URL=https://api.openai.com/v1Docker Compose の env_file は、このようなコメントを自動で取り除きます。
サーバーから複数のモデルを提供する
ai-models.json ファイルをコンテナにマウントできます。このファイルがあると、サーバーが複数のモデルを提供でき、ユーザーの API キーは公開されません。ファイルは /app/ai-models.json にマウントします。
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY=your_api_key \
-v $(pwd)/ai-models.json:/app/ai-models.json:ro \
ghcr.io/dayuanjiang/next-ai-draw-io:latestコンテナ内の別のパスにファイルを置きたい場合は、AI_MODELS_CONFIG_PATH にそのパスを設定します。
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY=your_api_key \
-e AI_MODELS_CONFIG_PATH=/config/ai-models.json \
-v $(pwd)/ai-models.json:/config/ai-models.json:ro \
ghcr.io/dayuanjiang/next-ai-draw-io:latest管理パネルの設定を残す
管理パネルは、設定をコンテナ内の /app/data フォルダーに保存します。リポジトリの docker-compose.yml は、./data フォルダーをそこにマウントします(./data:/app/data)。そのため、コンテナを置き換えても設定は残ります。docker run を使う場合は、同じマウントを追加します。
docker run -d -p 3000:3000 --env-file .env \
-v $(pwd)/data:/app/data \
ghcr.io/dayuanjiang/next-ai-draw-io:latestコンテナ内のアプリはユーザー nextjs(ユーザー ID 1001)として動くので、このユーザーがフォルダーに書き込める必要があります。Linux では、./data がないと Docker が root の所有でフォルダーを作成し、管理パネルは読み取り専用になります。コンテナを起動する前に、正しい所有者でフォルダーを作成してください。docker run または docker compose up を実行する場所で、次のコマンドを実行します。
mkdir -p data
sudo chown 1001:1001 dataembed.diagrams.net がブロックされている場合
アプリは embed.diagrams.net を必要としません。ghcr.io のイメージは NEXT_PUBLIC_DRAWIO_BASE_URL を設定せずにビルドされています。リポジトリの docker-compose.yml でビルドしたイメージも同じです。そのため、アプリは同梱の draw.io を /drawio から配信し、ブラウザは embed.diagrams.net にアクセスしません。ビルド引数 NEXT_PUBLIC_DRAWIO_BASE_URL=https://embed.diagrams.net を付けてビルドしたイメージだけが、そこから draw.io を読み込みます。
インターネットに接続できない環境でアプリを動かす方法については、オフラインや社内ネットワークで使うを参照してください。