n8n-io/self-hosted-ai-starter-kit:完全自ホスティング型AIワークフロー統合環境ーーGensparkの解説
プロジェクト概要
Self-hosted AI Starter Kitは、n8n、Ollama、Qdrant、PostgreSQLを統合したDocker Compose テンプレートで、包括的なローカルAI・ローコード開発環境を迅速に構築できる完全自ホスティング型のプラットフォームです。400以上の統合機能と高度なAIコンポーネントを活用して、自作AIエージェントの構築が可能です。


統合コンポーネント
1. n8n(コアワークフロープラットフォーム)
400以上の統合: API、データベース、クラウドサービス等との連携
ビジュアルワークフロー: ノードベースのドラッグ&ドロップエディター
高度なAIノード: LangChainベースのAIエージェント、テキスト分類、情報抽出
リアルタイム実行: トリガーベースの自動ワークフロー実行
2. Ollama(ローカルLLM実行環境)
多様なモデル: Llama3.2、Mistral、CodeLlama等のオープンソースLLM
GPU/CPU対応: NVIDIA、AMD、CPU環境での最適化実行
モデル管理: 自動ダウンロードとバージョン管理
API互換性: OpenAI API互換のローカルインターフェース
3. Qdrant(ベクトルデータベース)
高性能ベクトル検索: 大規模データセットでの意味検索
包括的API: RESTful APIとgRPCサポート
スケーラビリティ: 分散環境での水平スケーリング
多様な距離関数: コサイン、ユークリッド、ドット積等
4. PostgreSQL(リレーショナルデータベース)
堅牢なデータ管理: 大量データの安全な処理
JSON/JSONB: 半構造化データの効率的格納
拡張性: pgvector等のAI関連拡張機能
トランザクション: ACID準拠の信頼性
Docker Compose 構成
完全な統合環境設定
Copyversion: '3.8'
services:
# n8n ワークフロー実行環境
n8n:
image: n8nio/n8n:latest
container_name: n8n
ports:
- "5678:5678"
environment:
- N8N_HOST=${N8N_HOST:-localhost}
- N8N_PORT=5678
- N8N_PROTOCOL=${N8N_PROTOCOL:-http}
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- QUEUE_BULL_REDIS_HOST=redis
volumes:
- n8n_data:/home/node/.n8n
- ./shared:/data/shared
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
# PostgreSQL データベース
postgres:
image: postgres:15
container_name: postgres
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 10
restart: unless-stopped
# Qdrant ベクトルデータベース
qdrant:
image: qdrant/qdrant:latest
container_name: qdrant
ports:
- "6333:6333"
- "6334:6334"
volumes:
- qdrant_data:/qdrant/storage
restart: unless-stopped
# Redis キャッシュ・キュー
redis:
image: redis:7-alpine
container_name: redis
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
restart: unless-stopped
# Ollama LLM実行環境(GPU版)
ollama-gpu:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
restart: unless-stopped
profiles: ["gpu-nvidia"]
# Ollama LLM実行環境(CPU版)
ollama-cpu:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
restart: unless-stopped
profiles: ["cpu"]
# モデル自動プル(初回セットアップ)
ollama-pull-llama:
image: ollama/ollama:latest
container_name: ollama-pull-llama
volumes:
- ollama_data:/root/.ollama
depends_on:
- ollama-gpu
command: pull llama3.2
profiles: ["gpu-nvidia"]
volumes:
n8n_data:
postgres_data:
qdrant_data:
ollama_data:
networks:
default:
name: n8n-ai-network
インストール・セットアップ
1. リポジトリクローン
Copygit clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
cd self-hosted-ai-starter-kit
cp .env.example .env
2. 環境変数設定(.env)
Copy# n8n設定
N8N_HOST=localhost
N8N_PROTOCOL=http
N8N_ENCRYPTION_KEY=your_encryption_key_here
# PostgreSQL設定
POSTGRES_DB=n8n
POSTGRES_USER=n8n
POSTGRES_PASSWORD=your_postgres_password
# Ollama設定
OLLAMA_HOST=ollama:11434
# セキュリティ設定
WEBHOOK_URL=http://localhost:5678/
GENERIC_TIMEZONE=Asia/Tokyo
3. 環境別起動
NVIDIA GPU環境
Copydocker compose --profile gpu-nvidia up -d
AMD GPU環境(Linux)
Copydocker compose --profile gpu-amd up -d
CPU環境
Copydocker compose --profile cpu up -d
Mac環境(ローカルOllama)
Copy# Ollamaをローカルインストール
curl -fsSL https://ollama.ai/install.sh | sh
# .envでホスト設定変更
OLLAMA_HOST=host.docker.internal:11434
# Docker Compose起動
docker compose up -d
具体的な使用例・ワークフロー
1. 文書要約エージェント
Copy{
"name": "PDF要約エージェント",
"nodes": [
{
"type": "n8n-nodes-base.webhook",
"name": "PDF受信",
"parameters": {
"httpMethod": "POST",
"path": "pdf-summary"
}
},
{
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"name": "PDF読み込み",
"parameters": {
"dataType": "file",
"filePath": "/data/shared/{{$json.filename}}"
}
},
{
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"name": "ベクトル化",
"parameters": {
"qdrantUrl": "http://qdrant:6333",
"collectionName": "documents"
}
},
{
"type": "@n8n/n8n-nodes-langchain.chainSummarization",
"name": "要約生成",
"parameters": {
"model": {
"type": "ollama",
"baseUrl": "http://ollama:11434",
"model": "llama3.2"
}
}
}
]
}
2. Slackボット統合
Copy{
"name": "インテリジェントSlackボット",
"nodes": [
{
"type": "n8n-nodes-base.slackTrigger",
"name": "Slack受信",
"parameters": {
"events": ["app_mention"]
}
},
{
"type": "@n8n/n8n-nodes-langchain.agent",
"name": "AIエージェント",
"parameters": {
"model": {
"type": "ollama",
"baseUrl": "http://ollama:11434",
"model": "llama3.2"
},
"memory": {
"type": "bufferWindowMemory",
"maxTokens": 2000
},
"tools": [
{
"type": "vectorStoreRetriever",
"vectorStore": {
"type": "qdrant",
"url": "http://qdrant:6333"
}
}
]
}
},
{
"type": "n8n-nodes-base.slack",
"name": "Slack返信",
"parameters": {
"operation": "postMessage",
"channel": "{{$json.channel}}",
"text": "{{$json.response}}"
}
}
]
}
3. 金融文書分析システム
Copy{
"name": "金融文書分析",
"nodes": [
{
"type": "n8n-nodes-base.scheduleTrigger",
"name": "定期実行",
"parameters": {
"rule": {
"interval": [{"field": "hours", "value": 1}]
}
}
},
{
"type": "n8n-nodes-base.httpRequest",
"name": "文書取得",
"parameters": {
"url": "https://api.example.com/financial-docs",
"authentication": "headerAuth"
}
},
{
"type": "@n8n/n8n-nodes-langchain.textSplitter",
"name": "テキスト分割",
"parameters": {
"chunkSize": 1000,
"chunkOverlap": 200
}
},
{
"type": "@n8n/n8n-nodes-langchain.embeddingsOllama",
"name": "エンベディング",
"parameters": {
"baseUrl": "http://ollama:11434",
"model": "nomic-embed-text"
}
},
{
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"name": "ベクトル保存",
"parameters": {
"mode": "insert",
"qdrantUrl": "http://qdrant:6333",
"collectionName": "financial_docs"
}
},
{
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"name": "情報抽出",
"parameters": {
"model": {
"type": "ollama",
"baseUrl": "http://ollama:11434",
"model": "llama3.2"
},
"schema": {
"revenue": "number",
"profit": "number",
"risk_factors": "array"
}
}
}
]
}
カスタムAIエージェント構築例
高度なRAGエージェント
Copy// ワークフローのJavaScriptノード例
const agent = {
systemPrompt: `あなたは企業の内部文書を基に質問に答えるAIアシスタントです。
以下のルールに従ってください:
1. 提供された文書のみを情報源として使用する
2. 不明な点は明確に伝える
3. 引用元を明記する`,
tools: [
{
name: "document_search",
description: "企業文書を検索する",
parameters: {
query: "検索クエリ",
limit: 5
}
},
{
name: "web_search",
description: "最新情報をWeb検索する",
parameters: {
query: "検索クエリ"
}
}
],
memory: {
type: "conversation_buffer_window",
maxTokens: 4000
}
};
return { agent };
マルチステップワークフロー
Copy# ワークフロー定義(YAML形式)
name: "カスタマーサポートエージェント"
trigger:
type: webhook
path: "/support"
steps:
- name: "問い合わせ分類"
type: text_classifier
model: "ollama:llama3.2"
categories:
- "技術的問題"
- "請求に関する問い合わせ"
- "製品情報"
- "その他"
- name: "関連文書検索"
type: vector_search
vectorStore: "qdrant:support_docs"
query: "{{$json.question}}"
limit: 3
- name: "回答生成"
type: llm_chain
model: "ollama:llama3.2"
template: |
カテゴリ: {{$node.問い合わせ分類.output.category}}
関連文書: {{$node.関連文書検索.output}}
質問: {{$json.question}}
上記の情報を基に、丁寧で正確な回答を生成してください。
- name: "結果送信"
type: http_request
method: POST
url: "{{$json.callback_url}}"
body:
answer: "{{$node.回答生成.output}}"
category: "{{$node.問い合わせ分類.output.category}}"
confidence: "{{$node.問い合わせ分類.output.confidence}}"
パフォーマンス最適化
リソース管理設定
Copy# docker-compose.override.yml
services:
ollama-gpu:
deploy:
resources:
limits:
memory: 16G
reservations:
memory: 8G
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
qdrant:
deploy:
resources:
limits:
memory: 4G
cpus: '2'
reservations:
memory: 2G
cpus: '1'
n8n:
deploy:
resources:
limits:
memory: 2G
cpus: '1'
Qdrant最適化設定
Copy{
"collection_config": {
"vectors": {
"size": 1536,
"distance": "Cosine"
},
"optimizers_config": {
"default_segment_number": 2,
"max_segment_size_kb": 200000,
"memmap_threshold_kb": 100000
},
"hnsw_config": {
"m": 16,
"ef_construct": 100
}
}
}
Ollama並列処理設定
Copy# Ollama環境変数
OLLAMA_NUM_PARALLEL=4
OLLAMA_MAX_LOADED_MODELS=2
OLLAMA_MAX_QUEUE=512
セキュリティ・本番環境対応
セキュリティ強化設定
Copy# セキュア版 docker-compose.yml
services:
n8n:
environment:
- N8N_PROTOCOL=https
- N8N_SSL_KEY=/certs/key.pem
- N8N_SSL_CERT=/certs/cert.pem
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=${N8N_USER}
- N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
volumes:
- ./certs:/certs:ro
postgres:
environment:
- POSTGRES_SSL_MODE=require
volumes:
- ./postgres-certs:/var/lib/postgresql/certs:ro
qdrant:
environment:
- QDRANT_API_KEY=${QDRANT_API_KEY}
volumes:
- ./qdrant.yaml:/qdrant/config/config.yaml:ro
バックアップ・復旧
Copy#!/bin/bash
# backup.sh
# PostgreSQL バックアップ
docker exec postgres pg_dump -U ${POSTGRES_USER} ${POSTGRES_DB} > backup_$(date +%Y%m%d).sql
# Qdrant データバックアップ
docker exec qdrant tar -czf /tmp/qdrant_backup_$(date +%Y%m%d).tar.gz /qdrant/storage
# n8n ワークフローバックアップ
docker exec n8n n8n export:workflow --all --output=/data/shared/workflows_$(date +%Y%m%d).json
クラウドデプロイメント
AWS ECS デプロイ
Copy{
"family": "n8n-ai-starter",
"taskDefinition": {
"containerDefinitions": [
{
"name": "n8n",
"image": "n8nio/n8n:latest",
"memory": 2048,
"portMappings": [{"containerPort": 5678}],
"environment": [
{"name": "DB_TYPE", "value": "postgresdb"},
{"name": "DB_POSTGRESDB_HOST", "value": "rds-endpoint"}
]
},
{
"name": "ollama",
"image": "ollama/ollama:latest",
"memory": 8192,
"resourceRequirements": [
{"type": "GPU", "value": "1"}
]
}
]
}
}
Kubernetes Helm Chart
Copy# values.yaml
n8n:
replicaCount: 2
image:
repository: n8nio/n8n
tag: latest
service:
type: LoadBalancer
port: 5678
ollama:
enabled: true
resources:
requests:
nvidia.com/gpu: 1
limits:
nvidia.com/gpu: 1
qdrant:
persistence:
enabled: true
size: 100Gi
storageClass: fast-ssd
postgresql:
enabled: true
primary:
persistence:
size: 50Gi
企業導入のメリット
開発効率向上
ノーコード開発: 技術者以外でもAIワークフロー構築可能
迅速プロトタイピング: アイデアから実装までの時間短縮
再利用可能性: ワークフローテンプレートの組織内共有
コスト削減
オープンソース: ライセンス費用不要
ローカル実行: クラウドAPI使用料の削減
統合環境: 複数ツールの統一管理
セキュリティ・コンプライアンス
データ主権: 機密情報の外部流出防止
プライベート処理: 全てのAI処理がローカル環境で完結
監査対応: 詳細なログとワークフロー履歴
n8n-io/self-hosted-ai-starter-kitは、AI/MLワークフローの民主化を実現し、組織全体でのAI活用を促進する包括的なプラットフォームです。Docker Composeによる簡単な導入から本格的な企業利用まで、段階的なスケーリングが可能な柔軟なソリューションを提供します。
GitHub Repository | n8n ドキュメント | ワークフローテンプレート
「うちの業務は複雑すぎてAIなんて無理…」
そう諦めていた現場こそ、DX化のチャンスです。
.Aiエージェントを手掛けるカスタマークラウドは、日本初となる企業AI脳「LBAI」やAIがAIを進化させる「AI2AI」の概念を提唱し、 数百社におよぶレガシー産業のDX化・AI導入を成功に導いてきました。私たちが、御社の現場の生の課題に寄り添い、“結果に繋がる” 仕組みを共に創り上げます。
\ Lark公式パートナー カスタマークラウド /
✅ Lark公式パートナーとして初年度で200社以上を支援
✅ 建築DX・整備DXなど、業界別ソリューション多数
✅ 日本初のLLMO特化サービス「.Ai SEO」でPRを革新
💬 まずは、無料オンライン相談で、業務・組織課題に
あわせたロードマップを一緒に描きましょう。
\ 世界を手に入れよう、ワンタップで /
📍【今すぐ無料相談を申し込む】
📲【LINEで質問・相談してみる】
🆓【Larkの無料登録・デモ依頼】
\ AI × Larkで切り拓く「ツール統合革命」/
業界ごとの課題や業務に精通したノウハウを活かし、デジタル変革をリードする開発・営業パートナーを全国で募集しています!
▶︎ 参加・ご相談はこちらから
📍 オールインワンDXツール「Lark」が選ばれる理由
✅ 世界最大級ユニコーンの成長ノウハウを凝縮
✅ 業界課題に応える“完全統合型”ソリューション
✅ 国際基準を満たす堅牢なセキュリティ(国内AWSサーバーを使用、ISO/IEC 27017、27001、27018、27701 情報セキュリティ認証取得、国土交通省認定)
今すぐ、Lark × .Ai のパートナーになりましょう!
▶︎ 共創パートナー募集中|今すぐ参加する
(代理店制度について / 協働コミュニティについて)
