نصب Open WebUI؛ ساخت ChatGPT خصوصی سازمانی روی سرور خودتان

نصب Open WebUI؛ ساخت ChatGPT خصوصی سازمانی روی سرور خودتان

جدول محتوا 👇

تیم شما از ابزارهایی مثل ChatGPT استفاده می‌کند، اما ارسال اسناد داخلی به سرویس خارجی، محدودیت دسترسی و هزینه هر کاربر نگرانی‌هایی ایجاد کرده است. Open WebUI یک رابط کاربری متن‌باز و کامل، شبیه ChatGPT است که روی سرور خودتان اجرا می‌شود و به مدل‌های محلی Ollama یا هر API سازگار با OpenAI وصل می‌شود. در این راهنما نصب Open WebUI و ساخت یک ChatGPT خصوصی سازمانی را قدم‌به‌قدم توضیح می‌دهیم.

Open WebUI چیست؟

Open WebUI یک برنامه وب خودمیزبان برای گفتگو با مدل‌های زبانی است. امکانات اصلی:

  • رابط گفتگوی آشنا با تاریخچه، پوشه‌ها و جستجو.
  • اتصال همزمان به Ollama و APIهای سازگار با OpenAI (از جمله vLLM).
  • مدیریت کاربران، گروه‌ها و تعیین اینکه هر گروه به کدام مدل‌ها دسترسی دارد.
  • بارگذاری سند و گفتگو با آن (RAG داخلی) و پایگاه‌های دانش مشترک.
  • ساخت «مدل‌های سفارشی» با دستور سیستمی و دانش مشخص برای هر کاربرد.

پیش‌نیازها و سخت‌افزار

خود Open WebUI سبک است و روی یک VPS معمولی اجرا می‌شود. منابع اصلی را مدل زبانی مصرف می‌کند:

  • با مدل‌های محلی: سرور GPU؛ برای چند کاربر همزمان با مدل‌های ۷ تا ۱۴ میلیارد پارامتری، GPU با ۱۶ تا ۲۴ گیگابایت VRAM. محاسبه در VRAM لازم برای LLM.
  • با API بیرونی: یک VPS با ۲ هسته و ۴ گیگابایت RAM کافی است.
  • Docker و Docker Compose؛ راهنما در آموزش Docker.
  • Ollama نصب‌شده روی سرور GPU؛ راهنما در نصب Ollama روی سرور GPU.

نصب با Docker Compose

فایل compose.yaml:

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    ports:
      - "127.0.0.1:3000:8080"
    environment:
      OLLAMA_BASE_URL: http://host.docker.internal:11434
      WEBUI_SECRET_KEY: ${WEBUI_SECRET_KEY}
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - open-webui:/app/backend/data
volumes:
  open-webui:
echo "WEBUI_SECRET_KEY=$(openssl rand -hex 32)" > .env
chmod 600 .env
docker compose up -d
docker compose logs -f open-webui

نکات:

  • اگر Ollama روی همان سرور اجرا می‌شود و فقط روی 127.0.0.1 گوش می‌دهد، کانتینر به آن دسترسی ندارد. یا Ollama را روی آدرس پل Docker در دسترس بگذارید (و با فایروال از اینترنت ببندید)، یا Ollama را هم در همان فایل Compose به‌عنوان سرویس اجرا کنید.
  • در محیط عملیاتی، به‌جای برچسب main یک نسخه مشخص را ثبت کنید تا به‌روزرسانی کنترل‌شده باشد.
  • پورت فقط روی localhost منتشر شده تا از طریق Reverse Proxy با HTTPS در دسترس قرار گیرد.

با باز کردن آدرس، اولین حسابی که ثبت‌نام می‌کند مدیر می‌شود؛ بلافاصله پس از نصب، حساب مدیر را بسازید.

افزودن مدل‌ها

  • مدل‌های Ollama: با ollama pull qwen2.5:14b روی سرور یا از پنل مدیریت Open WebUI دانلود کنید؛ خودکار در فهرست ظاهر می‌شوند.
  • API سازگار با OpenAI: در Admin Panel › Settings › Connections، آدرس و کلید API را اضافه کنید؛ مثلاً یک سرور vLLM داخلی برای کاربران زیاد. مقایسه در Ollama یا vLLM.
  • برای پاسخ‌گویی خوب به فارسی، چند مدل را با پرسش‌های واقعی تیم آزمایش کنید.

کاربران، نقش‌ها و دسترسی به مدل‌ها

  • ثبت‌نام آزاد را غیرفعال کنید یا کاربران جدید را در وضعیت «در انتظار تأیید» قرار دهید.
  • گروه‌ها بسازید (مثلاً فنی، پشتیبانی، مدیریت) و دسترسی هر گروه به مدل‌ها و پایگاه‌های دانش را تعیین کنید.
  • در سازمان‌های بزرگ‌تر، اتصال ورود به سیستم احراز هویت مرکزی (OAuth/OIDC یا LDAP) مدیریت کاربران را ساده می‌کند.

برای سرو یک مدل به ده‌ها کاربر همزمان، نکات ظرفیت در سرو LLM برای چند کاربر.

گفتگو با اسناد

کاربران می‌توانند فایل را مستقیم در گفتگو بارگذاری کنند یا مدیر، «Knowledge» مشترک بسازد که مدل‌های سفارشی به آن متصل شوند. Open WebUI در پشت صحنه متن را قطعه‌بندی و Embed می‌کند. برای اسناد فارسی، مدل Embedding چندزبانه را از تنظیمات Documents انتخاب کنید. برای حجم زیاد اسناد و کنترل بیشتر روی کیفیت بازیابی، معماری RAG اختصاصی را در ساخت چت‌بات RAG ببینید.

دامنه، HTTPS و امنیت

Open WebUI را پشت Nginx یا Caddy با گواهی SSL قرار دهید. نمونه Nginx:

server {
    listen 443 ssl http2;
    server_name ai.example.com;
    ssl_certificate     /etc/letsencrypt/live/ai.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ai.example.com/privkey.pem;
    client_max_body_size 50M;
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 300s;
    }
}
  • پشتیبانی WebSocket و Timeout طولانی برای پاسخ‌های استریم لازم است.
  • اگر فقط کارکنان استفاده می‌کنند، دسترسی را به IP دفتر یا VPN محدود کنید.
  • API Ollama (پورت ۱۱۴۳۴) را هرگز به اینترنت باز نگذارید؛ احراز هویت ندارد.
  • قابلیت‌هایی مثل اجرای کد و ابزارها را فقط برای کاربران مورد اعتماد فعال کنید.

به‌روزرسانی و بکاپ

docker compose pull && docker compose up -d
docker run --rm -v open-webui:/data -v "$PWD":/backup alpine tar czf /backup/open-webui-$(date +%F).tar.gz -C /data .

Volume داده شامل کاربران، گفتگوها و اسناد بارگذاری‌شده است؛ پیش از هر به‌روزرسانی از آن بکاپ بگیرید و آن را خارج از سرور نگه دارید.

سوالات متداول

Open WebUI رایگان است؟

بله، متن‌باز است و هزینه لایسنس ندارد. شرایط مجوز نسخه مورد استفاده، به‌خصوص درباره تغییر نام تجاری، را بررسی کنید. هزینه اصلی، سخت‌افزار یا API مدل زبانی است.

آیا داده‌ها از سرور خارج می‌شوند؟

با مدل‌های محلی، خیر. اگر API خارجی اضافه کنید، پرسش‌هایی که با آن مدل انجام می‌شوند به ارائه‌دهنده API ارسال می‌شوند.

چند کاربر همزمان پشتیبانی می‌کند؟

محدودیت اصلی ظرفیت سرو مدل است، نه رابط کاربری. برای کاربران زیاد، از vLLM و GPU قوی‌تر استفاده کنید.

با n8n هم قابل استفاده است؟

Open WebUI رابط گفتگوست و n8n ابزار خودکارسازی؛ هر دو می‌توانند به یک Ollama وصل شوند. نمونه در ایجنت هوش مصنوعی با n8n و Ollama.

ChatGPT خصوصی روی سرور خودتان

برای اجرای مدل‌های زبانی و Open WebUI، سرورهای GPU تراست هاست در دیتاسنتر داخل کشور را ببینید. برای راه‌اندازی و امن‌سازی هم خدمات مدیریت سرور در دسترس است.

سرور مجازی ابری تراست هاست

مشاوره تراست‌هاست​

با متخصصان و کارشناسان به صورت رایگان!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *