Self-hosted AI Package คือชุดเครื่องมือสำเร็จรูป (Docker Compose template) ที่ช่วยให้คุณสร้างสภาพแวดล้อมสำหรับพัฒนา AI และ Low-Code บนเครื่องของคุณเองได้อย่างรวดเร็ว ประกอบด้วย Ollama สำหรับรันโมเดลภาษา (LLM) ในเครื่อง, Open WebUI สำหรับแชทกับ AI, N8N สำหรับสร้าง Workflow อัตโนมัติ, และ Supabase สำหรับเป็นฐานข้อมูลและ Vector Store
✅ n8n: แพลตฟอร์ม Low-code สำหรับสร้าง Workflow อัตโนมัติ เชื่อมต่อกับบริการต่างๆ ได้มากกว่า 400+ ตัว ✅ Supabase: ฐานข้อมูล open source ที่ครบเครื่อง เหมาะสำหรับงาน AI ✅ Ollama: แพลตฟอร์มสำหรับติดตั้งและรัน LLM ยอดนิยมบนเครื่องของคุณ ✅ Open WebUI: หน้าเว็บสวยงามเหมือน ChatGPT สำหรับคุยกับโมเดล AI ในเครื่องของคุณ ✅ Qdrant: Vector Store ประสิทธิภาพสูงสำหรับงาน RAG (Retrieval-Augmented Generation) ✅ และอื่นๆ เช่น Flowise, Neo4j, Langfuse, SearXNG, Caddy
ก่อนจะเริ่ม คุณต้องมีโปรแกรมเหล่านี้ติดตั้งบนเครื่องของคุณ:
- Python
- Git หรือ GitHub Desktop
- Docker
-
โคลนโปรเจกต์นี้ลงบนเครื่องของคุณ:
-
สร้างไฟล์
.envสำหรับเก็บค่าตั้งค่าต่างๆ:- คัดลอกไฟล์
.env.exampleแล้วเปลี่ยนชื่อเป็น.env - เปิดไฟล์
.envขึ้นมา แล้วสร้างรหัสผ่านหรือ Secret Key ที่แข็งแกร่งสำหรับทุกค่าที่ยังว่างอยู่ ห้ามใช้ค่าตัวอย่างในการใช้งานจริงเด็ดขาด!
ตัวอย่างค่าที่ต้องตั้ง:
# N8N N8N_ENCRYPTION_KEY=... N8N_USER_MANAGEMENT_JWT_SECRET=... # Supabase POSTGRES_PASSWORD=... JWT_SECRET=... ANON_KEY=... SERVICE_ROLE_KEY=... # ... และอื่นๆ
- คัดลอกไฟล์
โปรเจกต์นี้มีสคริปต์ start_services.py สำหรับช่วยให้การเปิดใช้งานง่ายขึ้น โดยสามารถเลือกโปรไฟล์ให้เหมาะกับฮาร์ดแวร์ของคุณ
-
สำหรับผู้ใช้การ์ดจอ Nvidia:
python start_services.py --profile gpu-nvidia
-
สำหรับผู้ใช้ Mac หรือใช้ CPU:
python start_services.py --profile cpu
-
สำหรับผู้ใช้ Mac ที่รัน Ollama แยกบนเครื่อง (ไม่ได้รันใน Docker):
python start_services.py --profile none
หลังจากรันคำสั่งแล้ว รอสักครู่เพื่อให้ Docker ดาวน์โหลดและเปิดใช้งานทุกอย่าง
- n8n: เปิดเบราว์เซอร์ไปที่ http://localhost:5678/ เพื่อตั้งค่าและเริ่มสร้าง Workflow
- Open WebUI: เปิดเบราว์เซอร์ไปที่ http://localhost:3000/ เพื่อตั้งค่าและเริ่มแชทกับ AI
สำคัญ: ในการใช้งานครั้งแรก คุณจะต้องสร้างบัญชีผู้ใช้สำหรับ n8n และ Open WebUI ซึ่งเป็นบัญชีสำหรับใช้งานบนเครื่องของคุณเท่านั้น
หากต้องการอัปเดตโปรแกรมต่างๆ (n8n, Open WebUI, ฯลฯ) ให้เป็นเวอร์ชันล่าสุด ให้รันคำสั่งต่อไปนี้:
# แทนที่ <your-profile> ด้วยโปรไฟล์ที่คุณใช้ เช่น cpu, gpu-nvidia
# 1. หยุดการทำงานทั้งหมด
docker compose -p localai -f docker-compose.yml --profile <your-profile> down
# 2. ดึงเวอร์ชันล่าสุดของทุกโปรแกรม
docker compose -p localai -f docker-compose.yml --profile <your-profile> pull
# 3. เริ่มการทำงานใหม่อีกครั้ง
python start_services.py --profile <your-profile>
############
# n8n credentials
############
N8N_ENCRYPTION_KEY=6f9a2b8e4c1d7a3f5b0e9d8c7a6b5f4e3d2c1b0a9f8e7d6c5b4a3f2e1d0c9b8a
N8N_USER_MANAGEMENT_JWT_SECRET=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2
############
# Supabase Secrets
############
POSTGRES_PASSWORD=LocalAI_Secure_Pass_2025_ChangeMe
JWT_SECRET=v3ry-53cr3t-jwt-t0k3n-f0r-loc4l-ai-system-123
ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE
SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImleHAiOiAxNzk5NTM1NjAwCn0.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q
DASHBOARD_USERNAME=admin
DASHBOARD_PASSWORD=admin_local_ai_dashboard
POOLER_TENANT_ID=1000
############
# Neo4j username and password
############
NEO4J_AUTH=neo4j/localai_pass_123
############
# Langfuse credentials
############
CLICKHOUSE_PASSWORD=ch_pass_987654321
MINIO_ROOT_PASSWORD=minio_pass_secure_local
# GOTRUE (Auth) SMTP settings - set a valid port to avoid parse errors
GOTRUE_SMTP_HOST=localhost
GOTRUE_SMTP_PORT=587
GOTRUE_SMTP_USER=admin_localai
GOTRUE_SMTP_PASS=localai_smtp_password
GOTRUE_SMTP_SENDER_ADDRESS=localai@example.com
LANGFUSE_SALT=salt_654321_abcde
NEXTAUTH_SECRET=nextauth_secret_token_xyz_789
ENCRYPTION_KEY=d7f8e9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8
############
# Database & Network Settings (Default)
############
POSTGRES_HOST=db
POSTGRES_DB=postgres
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POOLER_PROXY_PORT_TRANSACTION=6543
POOLER_DEFAULT_POOL_SIZE=20
POOLER_MAX_CLIENT_CONN=100
SECRET_KEY_BASE=UpNVntn3cDxHJpq99YMc1T1AQgQpc8kfYTuRgBiYa15BLrx8etQoXz3gZv1/u2oq
VAULT_ENC_KEY=32_char_enc_key_for_vault_local_ai
POOLER_DB_POOL_SIZE=5
KONG_HTTP_PORT=8000
KONG_HTTPS_PORT=8443
PGRST_DB_SCHEMAS=public,storage,graphql_public
SITE_URL=http://localhost:3000
API_EXTERNAL_URL=http://localhost:8000
STUDIO_PORT=3000
SUPABASE_PUBLIC_URL=http://localhost:8000
DOCKER_SOCKET_LOCATION=/var/run/docker.sock
LOGFLARE_PUBLIC_ACCESS_TOKEN=public_logflare_key_12345
LOGFLARE_PRIVATE_ACCESS_TOKEN=private_logflare_key_67890
ENABLE_EMAIL_SIGNUP=true
ENABLE_EMAIL_AUTOCONFIRM=true
SMTP_ADMIN_EMAIL=admin@example.com
SMTP_HOST=supabase-mail
SMTP_PORT=2500
SMTP_USER=fake_mail_user
SMTP_PASS=fake_mail_password
SMTP_SENDER_NAME=fake_sender
ENABLE_ANONYMOUS_USERS=false
## Phone auth
ENABLE_PHONE_SIGNUP=true
ENABLE_PHONE_AUTOCONFIRM=true
JWT_EXPIRY=3600
DISABLE_SIGNUP=false