VPS-ல் Open WebUI-க்கு சிறந்த மாற்றீடுகள் எவை?
VPS-ல் Open WebUI, LibreChat, Hollama மற்றும் OrionChat ஆகியவற்றை ஒப்பிடுகிறோம். RAM பயன்பாடு, பொது IP பாதுகாப்பு, பயனர் அங்கீகாரம் மற்றும் பராமரிப்பு குறித்த விரிவான ஒப்பீடு இங்கே.
VPS-ல் எந்த Open WebUI மாற்றீட்டைப் பயன்படுத்த வேண்டும்
Open WebUI மாற்றீடுகள் பெரும்பாலும் மடிக்கணினிகளில் ஒப்பிடப்படுகின்றன; அங்கு RAM விலை குறைவு மற்றும் பொது முகவரியில் (public address) எந்த சேவையும் இயங்குவதில்லை. ஒரு VPS இந்த இரண்டு உண்மைகளையும் மாற்றுகிறது, இதனால் தரவரிசையும் மாறுகிறது. இரண்டாவது நபர் உள்நுழையும் தருணத்தில் Open WebUI சரியான தேர்வாகிறது, ஏனெனில் இது உண்மையான பயனர் கணக்குகள் மற்றும் நிர்வாகக் குழுவை (admin panel) வழங்குகிறது. RAM-ன் கடைசி ஒரு gigabyte-க்காக இடைமுகம் (interface) மற்றும் மாதிரி (model) போட்டியிடும்போது, இலகுவான திட்டங்கள் வெற்றி பெறுகின்றன. அந்த வெற்றியின் விலை அங்கீகாரம் (authentication): அவற்றில் அத்தகைய வசதி இல்லை.
கீழே உள்ள அனைத்தும் ஆகஸ்ட் 2026-ல் அந்தந்த திட்டங்களின் சொந்த ஆவணங்களிலிருந்து பெறப்பட்டவை. இணையத்திலிருந்து ஒரு server-ஐ அணுகும்போது மட்டுமே தோன்றும் நான்கு காரணிகள் இங்கே கொடுக்கப்பட்டுள்ளன.
Public IP-ல் கவனிக்க வேண்டிய நான்கு முக்கிய அம்சங்கள்
- Model-க்கு அருகிலுள்ள Memory. இந்த box-ல் model server தான் அதிக செலவு பிடிக்கும் process ஆகும். Interface பயன்படுத்தும் ஒவ்வொரு megabyte-ம் model-க்கு கிடைக்காமல் போகும்.
- Authentication. சில திட்டங்களில் user accounts மற்றும் roles உள்ளன. மற்றவை உங்கள் laptop-ல் அவை மட்டுமே இயங்குவதாகக் கருதி, எந்தவிதமான login வசதியையும் கொண்டிருப்பதில்லை.
- Remote inference.
127.0.0.1:11434-ஐ மட்டுமே அணுகக்கூடிய UI, model-ஐ interface இருக்கும் அதே box-ல் இருக்கக் கட்டாயப்படுத்துகிறது. - Upkeep. SQLite file-ஐக் கொண்ட ஒரு container-ஐ நிர்வகிப்பதற்கும், MongoDB மற்றும் vector database-ஐப் பின்னணியில் கொண்ட ஆறு container-களை நிர்வகிப்பதற்கும் பெரிய வித்தியாசம் உள்ளது.
interface-க்கு இந்த model எவ்வளவு RAM-ஐ விட்டுவைக்கிறது
இந்த server-ல் interface என்பது மிகப்பெரிய காரணி அல்ல. Model-தான் மிகப்பெரியது. பதிவிறக்க அளவுகள் (download sizes) ஒரு குறைந்தபட்ச அளவை மட்டுமே குறிக்கின்றன. ஏனெனில், model பதிலளிக்கும்போது அதன் weights நினைவகத்தில் இருக்க வேண்டும். மேலும், context cache ஒதுக்கப்பட்ட பிறகு, உண்மையான நினைவகப் பயன்பாடு பதிவிறக்க அளவை விட அதிகமாக இருக்கும்.
The data behind this chart
[
{
"label": "llama3.2:3b",
"download_gb": "2.0"
},
{
"label": "qwen3:4b",
"download_gb": "2.5"
},
{
"label": "gemma3:4b",
"download_gb": "3.3"
},
{
"label": "qwen3:8b",
"download_gb": "5.2"
}
]இவை ஆகஸ்ட் 2026-ல் Ollama library பக்கங்களில் அச்சிடப்பட்ட புள்ளிவிவரங்கள். இவை வெளியிடப்பட்ட அளவுகள், அளவீடுகள் அல்ல. 4 GB VPS-ல், qwen3:4b ஆனது 2.5 GB-ல் இயங்கும்போது, operating system மற்றும் பிற பயன்பாடுகளுக்கு 1.5 GB-க்கும் குறைவான இடமே மிஞ்சுகிறது. உரையாடல் வளர வளர context cache இந்த இடத்தையும் எடுத்துக்கொள்ளும். இதனால்தான் நீங்கள் அமைக்கும் num_ctx என்பது தரத்தைப் பொறுத்தது மட்டுமல்ல, நினைவகத்தைப் பொறுத்த முடிவும் கூட. qwen3:8b ஆனது 5.2 GB அளவில் அந்த server-ல் இயங்கவே இயலாது. இதுவே laptop-களை மையமாகக் கொண்ட கட்டுரைகளில் விவாதிக்கப்படாத சூழல். ஒரு சில நூறு megabytes-ஐப் பயன்படுத்தும் chat interface, model இயங்குமா இல்லையா என்பதைத் தீர்மானிக்கும் இடமும் இதுவே. இந்த அளவுகளை விட அதிகமான திறன் கொண்ட server-ஐ நீங்கள் தேர்வு செய்கிறீர்கள் என்றால், CPU-மட்டும் கொண்ட VPS-ல் 27B model-க்கான கணக்கீடு மூலம், interface-ன் நினைவகப் பயன்பாடு எவ்வளவு விரைவாக முக்கியத்துவத்தை இழக்கிறது என்பதைப் புரிந்துகொள்ளலாம்.
எந்தவொரு கட்டுரையில் உள்ள எண்களையும் அப்படியே நம்பாமல், நீங்களே அளவிடுங்கள். Container தொடங்கிய ஒரு நிமிடத்திற்குப் பிறகு அல்லாமல், ஒரு மணிநேரம் உண்மையான பயன்பாட்டிற்குப் பிறகு docker stats --no-stream கட்டளையை இயக்கவும். ஏனெனில், முக்கியமான நினைவகம் முதல் பயன்பாட்டின்போதே ஒதுக்கப்படுகிறது. மேலும், ஐந்து நிமிடங்கள் செயலற்று இருந்தால் Ollama weights-ஐ விடுவித்துவிடும். எனவே, உரையாடல்களுக்கு இடையில் எடுக்கப்படும் அளவீடு உச்சகட்ட பயன்பாட்டைக் காட்டாது. keep_alive மூலம் model-ஐ நினைவகத்தில் வைத்திருக்கவில்லை என்றால், அடுத்த செய்தி வரும்போது மீண்டும் முழுச் சுமையையும் அது ஏற்கும்.
Open WebUI: ஒன்றுக்கும் மேற்பட்ட பயனர்களுக்கு இதுவே இயல்புநிலை
Open WebUI ஒரே image-லிருந்து இயங்குகிறது மற்றும் அதன் தரவுகளை ஒரே volume-ல் சேமிக்கிறது.
docker run -d -p 127.0.0.1:3000:8080 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:mainதிட்டத்தின் README-ல் உள்ள கட்டளை -p 3000:8080-ஐ வெளியிடுகிறது, இது அனைத்து interface-களிலும் கேட்கிறது (listen). 127.0.0.1: முன்னொட்டு (prefix) அதை loopback-ல் மட்டுமே வைத்திருக்கும். ஒரு VPS-ல், அந்த வரியில் உள்ள மற்ற அனைத்தையும் விட இந்த முன்னொட்டு முக்கியமானது, ஏனெனில் Docker தனது சொந்த iptables விதிகளை எழுதுகிறது மற்றும் வெளியிடப்பட்ட port உங்கள் ufw deny விதிகளைப் புறக்கணிக்கும்.
கீழே விவரிக்கப்பட்டுள்ள tunnel அல்லது proxy மூலம் பக்கத்தை அணுகி, முதல் கணக்கை உருவாக்கவும். அந்த கணக்கு நிர்வாகி (administrator) கணக்காக மாறும். பிற்காலத்தில் உருவாக்கப்படும் கணக்குகள் pending என்ற பாத்திரத்தைப் (role) பெறும், இது DEFAULT_USER_ROLE-ன் ஆவணப்படுத்தப்பட்ட இயல்புநிலை ஆகும். எனவே, உங்கள் பக்கத்தை அணுகும் ஒரு அந்நியர், நிர்வாகி அவர்களை அங்கீகரிக்கும் வரை உங்கள் model-ஐப் பயன்படுத்த முடியாது.
Open WebUI மற்ற திட்டங்களை விட அதிக நினைவகத்தை (memory) பயன்படுத்துகிறது, ஏனெனில் இது கூடுதல் செயல்பாடுகளைக் கொண்டுள்ளது. அதன் சொந்த performance பக்கத்தில் அதிக நினைவகத்தை எடுத்துக்கொள்ளும் பகுதிகள் குறிப்பிடப்பட்டுள்ளன. இயல்புநிலை embedding engine, container-க்குள் ஒரு sentence-transformers model-ஐ ஏற்றுகிறது; இது ஒரு worker process-க்கு சுமார் 500 MB என ஆவணப்படுத்தப்பட்டுள்ளது. RAG_EMBEDDING_ENGINE=ollama-ஐ அமைப்பதன் மூலம், அந்த வேலையை நீங்கள் ஏற்கனவே இயக்கும் model server-க்கு மாற்றலாம். AUDIO_STT_ENGINE=webapi ஒரு local speech-to-text model-ஐ ஏற்றுவதைத் தவிர்க்கிறது. DATABASE_POOL_SIZE அமைக்கப்படாத நிலையில் SQLite-ஐப் பயன்படுத்தும்போது, pool ஒரு பெரிய internal size-க்கு மாறுகிறது மற்றும் ஒவ்வொரு connection-ம் தனது சொந்த page cache மற்றும் memory map-ஐ உருவாக்குகிறது. எனவே, சிறிய server-களில் DATABASE_POOL_SIZE=8 மற்றும் DATABASE_SQLITE_PRAGMA_MMAP_SIZE=0 ஆகியவற்றை அமைக்கவும். பயனர் தட்டச்சு செய்து கொண்டிருக்கும்போதே, model-இடம் completion கேட்கும் இடைமுகத்தின் செயல்பாட்டை ENABLE_AUTOCOMPLETE_GENERATION=False நிறுத்துகிறது.
LibreChat: பல பயனர்களைக் கொண்ட, ஒரு stack-ஐப் பின்பற்றும் அமைப்பு
git clone https://github.com/danny-avila/LibreChat.git
cd LibreChat
cp .env.example .env
docker compose up -dஇதன் இடைமுகம் 3080 port-ல் இயங்குகிறது. ஒரு எளிய login பெட்டியை விட, ஒரு identity அமைப்பு தேவைப்படும்போது LibreChat-ஐப் பரிசீலிக்கலாம்: இது LDAP மற்றும் OAuth2 login முறைகளை ஆவணப்படுத்துகிறது, மேலும் பயனர்கள் மற்றும் பொறுப்புகளுக்கான (roles) நிர்வாகக் குழுவை (admin panel) உள்ளடக்கியுள்ளது. இந்த வசதி ஒரு stack-உடன் வருகிறது.
The data behind this chart
[
{
"label": "OrionChat",
"containers": 0,
"notes": "static files, served by a web server you already run"
},
{
"label": "Hollama",
"containers": 1,
"notes": "one container serving a browser app"
},
{
"label": "Open WebUI",
"containers": 1,
"notes": "application and SQLite in one image"
},
{
"label": "LibreChat",
"containers": 6,
"notes": "api, admin panel, MongoDB, Meilisearch, pgvector, RAG API"
}
]இதன் இயல்பான compose கோப்பு 6 சேவைகளைத் தொடங்குகிறது: api, admin panel, MongoDB, Meilisearch, pgvector, RAG API. இதில் எதுவுமே AI model கிடையாது. MongoDB மற்றும் pgvector ஆகிய இரண்டுக்கும் தனித்தனியாக நினைவகம் (memory) தேவைப்படுகிறது; 4 GB அளவுள்ள server-ல், இந்த நினைவகம் model-க்குத் தேவையானதாக இருக்கும்.
இதனை upgrade செய்வது ஒரு git செயல்பாடாகும், இதுவே பலரால் தவறாகப் புரிந்துகொள்ளப்படும் பகுதி.
docker compose down
git pull
docker compose pull
docker compose up -dநீங்கள் கண்காணிக்கப்படும் docker-compose.yml கோப்பை மாற்றியிருந்தால், git pull ஒரு conflict-உடன் நின்றுவிடும், இதனால் upgrade பாதியிலேயே நின்றுவிடும். உங்கள் மாற்றங்களை இதற்கென வழங்கப்பட்டுள்ள docker-compose.override.yml கோப்பில் செய்யவும், ரகசியங்களை .env கோப்பில் வைக்கவும். இவை இரண்டுமே கண்காணிக்கப்படாத (untracked) கோப்புகள் என்பதால், git pull அவற்றை மாற்றாது.
LibreChat-ஐ உங்கள் சொந்த model server-உடன் இணைக்க, librechat.yaml கோப்பில் ஒரு custom endpoint-ஐக் குறிப்பிடவும்.
endpoints:
custom:
- name: "Ollama"
apiKey: "ollama"
baseURL: "http://model-host:11434/v1/"
models:
default: ["llama3.2"]
fetch: true
titleConvo: true
titleModel: "current_model"
modelDisplayLabel: "Ollama"model-host-க்கு பதிலாக Ollama இயங்கும் server-ன் முகவரியைக் குறிப்பிடவும். Ollama அதன் மதிப்பை கவனிக்காது என்றாலும், apiKey புலம் (field) கட்டாயம் இருக்க வேண்டும், எனவே ஒரு placeholder-ஐப் பயன்படுத்தலாம். LibreChat Docker-லும், Ollama அதே machine-லும் இயங்கினால், container-க்குள் localhost என்பது அந்த container-ஐயே குறிக்கும், எனவே அதற்குப் பதிலாக host.docker.internal என்பதைப் பயன்படுத்தவும்.
Hollama மற்றும் OrionChat: உலாவியே வேலையைச் செய்கிறது
Hollama ஒரு சிறிய container மூலம் browser application-ஐ வழங்குகிறது. உரையாடல்கள் server-ல் சேமிக்கப்படாமல், உங்கள் browser-ன் storage-ல் சேமிக்கப்படுகின்றன.
docker run -d --restart unless-stopped -p 127.0.0.1:4173:4173 --name hollama ghcr.io/fmaclen/hollama:latestஇந்தக் கட்டளையின் README பதிப்பு --rm-ஐப் பயன்படுத்துகிறது. இது container நிறுத்தப்படும்போது அதை நீக்கிவிடும், எனவே reboot செய்த பிறகு interface மீண்டும் வராது. ஒரு reverse proxy-க்கு பின்னால் இயக்கும்போது, -e VITE_ALLOWED_HOSTS='chat.example.com'-ஐச் சேர்க்கவும். ஏனெனில், இந்த image host localhost-ஐ மட்டுமே அனுமதிக்கிறது; வேறு ஏதேனும் hostname-க்கான கோரிக்கைக்கு, app-க்கு பதிலாக blocked-host பிழையை இது அளிக்கும்.
OrionChat இன்னும் ஒரு படி மேலே சென்று, எந்தவொரு server component-ம் இல்லாமல் இயங்குகிறது. Repository-ஐ clone செய்து, நீங்கள் ஏற்கனவே இயக்கும் web server மூலம் அந்த folder-ஐ வழங்கவும், அல்லது disk-லிருந்து index.html-ஐத் திறக்கவும். API keys browser-ன் localStorage-ல் சேமிக்கப்படுகின்றன, உரையாடல் வரலாறு browser-லேயே இருக்கும், மேலும் உரையாடல்களின் எண்ணிக்கை 512-ஐத் தாண்டினால், app பழைய உரையாடல்களை நீக்கிவிடும்.
இந்த இரண்டு திட்டங்களிலும் login வசதி இல்லை, ஏனெனில் பயனரைச் சரிபார்க்கும் server வசதி இதில் இல்லை. ஒரு laptop-ல் இது சரியாக இருக்கும். ஒரு VPS-ல், இந்தப் பக்கத்தை ஒருபோதும் 0.0.0.0-ல் வெளியிடக்கூடாது என்று அர்த்தம். மேலும் கவனிக்கத் தவறிய ஒரு முக்கியமான விஷயம்: server அல்ல, browser தான் model-ஐ அழைக்கிறது.
இந்த ஒரு உண்மைதான் இவை இரண்டையும் எங்கு பயன்படுத்தலாம் என்பதைத் தீர்மானிக்கிறது. உங்கள் browser நேரடியாக Ollama-வை அடைய வேண்டும், எனவே Ollama loopback-ஐத் தாண்டி மற்றவற்றிலும் listen செய்ய வேண்டும். Ollama-வில் எந்தவிதமான authentication-ம் இல்லை. இதிலிருந்து இரண்டு browser விதிகள் உருவாகின்றன. HTTPS மூலம் வழங்கப்படும் ஒரு பக்கம், plain HTTP endpoint-ஐ அழைக்க முடியாது. console-ல் Mixed Content: The page at 'https://chat.example.com/' was loaded over HTTPS, but requested an insecure resource 'http://203.0.113.10:11434/api/tags'. This request has been blocked. என்று அச்சிடப்படும். வேறு எந்த origin-லிருந்து வரும் அழைப்பும் has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource மூலம் நிராகரிக்கப்படும், நீங்கள் அந்த origin-ஐ அனுமதிக்கும் வரை.
Ollama-வின் ஆவணங்களின்படி, இந்த அமைப்புகளை மாற்ற systemd override-ஐப் பயன்படுத்த வேண்டும்.
sudo systemctl edit ollama.service[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=https://chat.example.com"sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo ss -lntp | grep 11434ss இப்போது 0.0.0.0:11434 என்று காட்ட வேண்டும், முன்பு அது 127.0.0.1:11434 என்று காட்டியது. Firewall அல்லது authentication செய்யும் proxy மூலம் அந்த port-ஐ யார் அணுகலாம் என்பது ஏற்கனவே கட்டுப்படுத்தப்பட்டிருந்தால் மட்டுமே இந்த மாற்றத்தைச் செய்யவும். ஏனெனில், திறந்திருக்கும் 11434 என்பது ஒரு திறந்த model server ஆகும், mass scanners புதிய public port-ஐ விரைவாகக் கண்டறிந்துவிடும். கீழே உள்ள SSH tunnel இந்தச் சிக்கலைத் தவிர்க்கிறது: அப்போது அந்தப் பக்கம் localhost origin-ல் இயங்கும், அதை Ollama இயல்பாகவே அனுமதிக்கும், மேலும் அந்த port ஒருபோதும் box-ஐ விட்டு வெளியேறாது.
ஒவ்வொன்றும் தொலைதூர Ollama அல்லது vLLM endpoint-ஐப் பயன்படுத்த முடியுமா?
Open WebUI-ஆல் முடியும், மேலும் இந்த இணைப்பு server பக்கத்திலேயே ஏற்படுத்தப்படுகிறது. OLLAMA_BASE_URL=http://model-host:11434 அதை Ollama-வை நோக்கிச் சுட்டிக்காட்டுகிறது. vLLM அல்லது OpenAI-உடன் இணக்கமான பிற server-களுக்கு, OPENAI_API_BASE_URL=http://model-host:8000/v1-ஐ ஒரு காலியாக இல்லாத OPENAI_API_KEY உடன் அமைக்கவும், மேலும் அதற்குத் தேவையான /v1 suffix-ஐத் தக்கவைக்கவும். OPENAI_API_BASE_URLS செமிகோலன்களால் பிரிக்கப்பட்ட பல backends-களை ஏற்கும்.
LibreChat-ஆல் மேலே காட்டப்பட்டுள்ள custom endpoint-ன் baseURL வழியாக இதைச் செய்ய முடியும். அந்த கோரிக்கையும் server-ஐ விட்டு வெளியேறுகிறது, எனவே எந்த browser விதியும் அதற்குப் பொருந்தாது. அதே base URL மற்றும் அதே placeholder key ஆகியவை chat window-க்கு வெளியேயும் செயல்படும், நீங்கள் ஏற்கனவே host செய்துள்ள model-ஐ ஒரு coding agent-க்கு சுட்டிக்காட்ட இதுவே போதுமானது.
Hollama மற்றும் OrionChat ஆகியவை அவற்றின் அமைப்புகளில் நீங்கள் தட்டச்சு செய்யும் எந்த endpoint-க்கும் சுட்டிக்காட்ட முடியும், ஆனால் அந்த கோரிக்கை உங்கள் browser-ஐ விட்டு வெளியேறுகிறது. மேலே உள்ள பகுதியில் உள்ள அனைத்தும் அவற்றுக்குப் பொருந்தும், இங்குள்ள மற்ற எதற்கும் பொருந்தாது.
Interface-ஐ model-லிருந்து பிரிப்பது, ஒரு தொலைதூர endpoint உங்களுக்கு வழங்கும் மிக பயனுள்ள விஷயமாகும். Interface-ஐ ஒரு சிறிய box-ல் வைத்துவிட்டு, memory வசதி உள்ள இடத்தில் model-ஐ வைக்கவும். Ollama அல்லது vLLM ஆகியவற்றில் எது கோரிக்கைகளை வழங்க வேண்டும் என்பதைத் தீர்மானிக்க வேண்டிய இடமும் இதுவே, ஏனெனில் பல பயனர்கள் ஒரே நேரத்தில் model-உடன் உரையாடும்போது இவை இரண்டும் மிக வித்தியாசமாகச் செயல்படுகின்றன. Model server இன்னும் உருவாக்கப்படவில்லை என்றால், VPS-ல் Ollama-வை இயக்குவதன் மூலம் தொடங்கவும், மேலும் CPU மட்டுமே உள்ள box-ல், நீங்கள் ஒரு runner-ஐத் தேர்ந்தெடுக்கும் முன் Ollama மற்றும் llama.cpp ஆகியவற்றுக்கு இடையேயான ஒப்பீட்டை வாசிக்கவும்.
Login வசதி இல்லாத chat UI-ஐ ஒருபோதும் 0.0.0.0-ல் வெளியிட வேண்டாம்
Open WebUI-ன் பாதுகாப்புப் பக்கத்தில், இந்தத் திட்டம் "databases, container registries, மற்றும் CI servers போன்ற பிற self-hosted உள்கட்டமைப்புகளைப் போலவே, தனிப்பட்ட மற்றும் நம்பகமான நெட்வொர்க்குகளுக்காக உருவாக்கப்பட்டது" என்று குறிப்பிடப்பட்டுள்ளது. இதை ஒரு VPN-க்கு பின்னாலோ அல்லது authentication வசதி கொண்ட reverse proxy-க்கு பின்னாலோ வைக்க வேண்டும் என்று அது அறிவுறுத்துகிறது. எந்தவிதமான login வசதியும் இல்லாத ஒரு திட்டத்திற்கு, குறைந்தபட்சம் அதே அளவிலான பாதுகாப்பு அவசியம்.
எந்தவொரு சேவையையும் நம்புவதற்கு முன்பு, அது எதைக் கேட்கிறது (listening) என்பதைச் சரிபார்க்கவும்.
sudo ss -lntp | grep -E ':(3000|3080|4173|11434)'127.0.0.1:3000 என்று இருக்கும் வரியே நீங்கள் எதிர்பார்க்கும் சரியான அமைப்பாகும். 0.0.0.0:3000 என்று ஒரு வரி இருந்தால், உங்கள் chat interface பொது இணையத்தில் (public internet) உள்ளது என்று அர்த்தம். உங்கள் சொந்த கணினியிலிருந்து, curl -sI http://YOUR.VPS.IP:3000 கட்டளையை இயக்கும்போது HTTP/1.1 200 OK என்று பதில் வந்தால், அது இன்னும் தெளிவாக அதே விஷயத்தை உறுதிப்படுத்துகிறது.
WEBUI_AUTH=False மூலம் Open WebUI-ன் login வசதியை முடக்குவது, வேறு யாரும் அணுக முடியாத கணினிக்கான single-user அமைப்பாகும். ஏற்கனவே கணக்குகள் உள்ள ஒரு installation-ல் இதைச் செய்ய முயன்றால், You can't turn off authentication because there are existing users. என்ற செய்தியுடன் அது நிராகரிக்கப்படும்.
முறை ஒன்று: loopback-ல் bind செய்து SSH மூலம் அணுகுதல். ஒவ்வொரு port-ஐயும் 127.0.0.1-ல் வெளியிடுங்கள், பிறகு உங்களுக்குத் தேவையானதை மட்டும் forward செய்யுங்கள்: ssh -N -L 3000:127.0.0.1:3000 you@vps.example.com, மற்றும் உங்கள் laptop-ல் http://localhost:3000-ஐத் திறக்கவும். எதுவும் பொதுவெளியில் வெளியிடப்படாததால், எதையும் scan செய்ய முடியாது. Hollama அல்லது OrionChat-க்கு, அதே கட்டளையில் -L 11434:127.0.0.1:11434 மூலம் model port-ஐ forward செய்து, Ollama-வை loopback-லேயே விட்டுவிடுங்கள். இந்த முறையின் வலிமை உங்கள் SSH அமைப்பைப் பொறுத்தது, எனவே இதை key-only SSH மற்றும் பாதுகாப்பான sshd உடன் இணைத்துப் பயன்படுத்துங்கள்.
முறை இரண்டு: பயன்பாட்டிற்கு முன்பே authentication செய்யும் reverse proxy. பயன்பாட்டை loopback-லேயே வைத்துக்கொண்டு, port 443-ஐ proxy-யிடம் ஒப்படைத்து, அதற்கு முன்னால் single sign-on வசதியைச் சேர்க்கவும். Docker Compose labels மூலம் இயங்கும் Traefik மற்றும் identity provider-ஆக Authentik ஆகியவற்றைப் பயன்படுத்தினால், அந்த server-ல் உள்ள ஒவ்வொரு பயன்பாட்டிற்கும் ஒரே login மற்றும் ஒரே certificate கிடைக்கும். Open WebUI-ஐ TLS (transport layer security)-க்கு பின்னால் வைக்கும்போது, WEBUI_SESSION_COOKIE_SECURE=true மற்றும் WEBUI_SESSION_COOKIE_SAME_SITE=strict ஆகியவற்றை அமைக்கவும். JWT_EXPIRES_IN-ன் இயல்புநிலை காலமான நான்கு வாரங்களை விடக் குறைக்கவும், ஏனெனில் Redis இல்லாமல் sign-out செய்தால் token செல்லாததாகாது என்று Open WebUI ஆவணப்படுத்துகிறது: அது தானாக காலாவதியாகும் வரை பயன்பாட்டில் இருக்கும்.
முறை இரண்டு browser-மட்டும் கொண்ட திட்டங்களுக்கு உதவாது. பக்கத்திற்கு முன்னால் இருக்கும் proxy, model endpoint-ஐப் பாதுகாக்காது. அந்தப் பக்கத்திலிருந்து வேறு hostname-க்கு செய்யப்படும் fetch, உங்கள் session cookie-ஐ எடுத்துச் செல்லாது. எனவே, Ollama-க்கு முன்னால் இருக்கும் authenticating proxy, login படிவத்திற்கு redirect செய்யும், இதனால் chat தோல்வியடையும். Model endpoint-ஐ அதே பக்கத்தின் hostname-க்கு அடியிலேயே route செய்யுங்கள், அல்லது முறை ஒன்றைப் பயன்படுத்துங்கள்.
எதைத் தேர்ந்தெடுப்பது
உங்களைத் தவிர வேறு யாராவது இதைப் பயன்படுத்தப் போகிறார்கள் என்றால், Open WebUI-ஐ இயக்கவும். இதில் உண்மையான கணக்குகள் (real accounts) உள்ளன, புதிய பயனர்கள் ஒப்புதல் வரிசையில் (approval queue) சேர்வார்கள், மேலும் அதன் பராமரிப்பாளர்கள் நீங்கள் பின்பற்றக்கூடிய பாதுகாப்பு வழிகாட்டுதல்களை வெளியிடுகிறார்கள். உங்களுக்கு LDAP அல்லது நிர்வாகக் குழு (admin panel) தேவைப்பட்டால், LibreChat-ஐ இயக்கவும். அதன் ஆறு சேவைகளும் (services) உங்கள் மாடலும் சேர்ந்து, நீங்கள் அதைச் சார்ந்திருப்பதற்கு முன்பாக, docker stats மூலம் உங்கள் கணினியில் சரியாகப் பொருந்துகிறதா என்பதை உறுதிப்படுத்தவும். மாடல் ஏற்கனவே பெரும்பாலான RAM-ஐ எடுத்துக்கொண்ட ஒரு சிறிய கணினியில் நீங்கள் மட்டும் பயன்படுத்துகிறீர்கள் என்றால், Hollama அல்லது OrionChat-ஐ SSH tunnel வழியாக இயக்கவும்; browser-ஐ அதன் நிலையை (state) வைத்திருக்க அனுமதிக்கவும். ஒரு VPS-ல், முன்னால் எந்த உள்நுழைவும் (login) இல்லாமல், 0.0.0.0-ல் எதையாவது வெளியிடுவது தவறான அணுகுமுறையாகும்.
FAQ
Open WebUI-ஐ நேரடியாக public IP-ல் வெளியிடுவது பாதுகாப்பானதா?
இதன் சொந்த hardening பக்கத்தில், இது ஒரு database அல்லது CI server போன்ற, நம்பகமான private network-களுக்காக உருவாக்கப்பட்ட மென்பொருள் என்று குறிப்பிடப்பட்டுள்ளது. இதில் முறையான கணக்குகள் உள்ளன; முதல் கணக்கு administrator ஆகிறது, மற்றவை அங்கீகரிக்கப்படும் வரை pending நிலையிலேயே இருக்கும். எனவே, login வசதி இல்லாத UI-களை விட இது பாதுகாப்பானது. இருப்பினும், இதை TLS வசதியுடன் கூடிய reverse proxy-க்கு பின்னால் வையுங்கள்; முடிந்தால் single sign-on வசதியையும் பயன்படுத்துங்கள். Docker-ன் சொந்த iptables விதிகள் உங்கள் அனுமதியின்றி இணையத்தில் port-ஐத் திறந்துவிடாதபடி, container port-ஐ 127.0.0.1:3000:8080-ல் மட்டும் publish செய்யுங்கள்.
VPS-ல் குறைந்த RAM-ஐப் பயன்படுத்தும் Open WebUI மாற்று எது?
Hollama மற்றும் OrionChat ஆகியவை browser-ஐ அடிப்படையாகக் கொண்டவை, ஏனெனில் இவை client-ல் இயங்குகின்றன. server வெறும் static கோப்புகளை மட்டுமே அனுப்புகிறது; OrionChat-க்கு எந்த application container-ம் தேவையில்லை. Open WebUI ஒரு Python process, database மற்றும் இயல்பாகவே ஒரு local embedding model-ஐ நினைவகத்தில் வைத்திருக்கும். embedding model-க்கு மட்டும் ஒரு worker-க்கு சுமார் 500 MB தேவைப்படும் என்று ஆவணப்படுத்தப்பட்டுள்ளது. நீங்கள் இயக்கும் அம்சங்களைப் பொறுத்து இந்த அளவு மாறுபடும் என்பதால், உங்கள் server-ல் docker stats --no-stream மூலம் இதை உறுதிப்படுத்திக் கொள்ளுங்கள்.
இந்த chat UI-கள் வேறொரு host-ல் உள்ள Ollama server-ஐப் பயன்படுத்த முடியுமா?
Open WebUI மற்றும் LibreChat ஆகியவற்றால் முடியும். இவற்றின் server-தான் இணைப்பை ஏற்படுத்துவதால், browser விதிகள் இதற்குப் பொருந்தாது. Open WebUI-க்கு OLLAMA_BASE_URL-ஐயும், LibreChat-ன் custom endpoint-ல் baseURL-ஐயும் அமைக்கவும். vLLM அல்லது பிற OpenAI-compatible server-களுக்கு, /v1 suffix மற்றும் காலியாக இல்லாத API key-உடன் OPENAI_API_BASE_URL-ஐப் பயன்படுத்தவும். Hollama மற்றும் OrionChat ஆகியவையும் எங்கு வேண்டுமானாலும் இணைக்கப்படலாம், ஆனால் கோரிக்கைகள் உங்கள் browser-லிருந்து வருவதால், அந்த endpoint உங்கள் browser-க்கு அணுகக்கூடியதாக இருக்க வேண்டும்.
எனது browser chat UI ஏன் Ollama-வை அடைய முடியவில்லை?
பெரும்பாலான சிக்கல்களுக்கு இரண்டு காரணங்களே உள்ளன. Ollama இயல்பாகவே 127.0.0.1:11434-ல் இயங்குகிறது, எனவே OLLAMA_HOST மாற்றப்படும் வரை வேறொரு கணினியில் உள்ள browser-ஆல் அதை அடைய முடியாது. மேலும், Ollama localhost-லிருந்து வரும் cross-origin கோரிக்கைகளை மட்டுமே ஏற்கும். எனவே, உங்கள் domain-லிருந்து வரும் பக்கம் OLLAMA_ORIGINS-ல் குறிப்பிடப்படாத வரை No 'Access-Control-Allow-Origin' header is present on the requested resource பிழையுடன் நிராகரிக்கப்படும். பக்கம் HTTPS-ஆகவும், endpoint HTTP-ஆகவும் இருந்தால், Ollama பார்ப்பதற்கு முன்பே browser அதை mixed content எனக் கருதித் தடுத்துவிடும். இரண்டு மாறிகளையும் (variables) ஒரு systemctl edit ollama.service override-ல் அமைக்கவும், அல்லது SSH மூலம் port-ஐ forward செய்யவும்; சிக்கல் தீர்ந்துவிடும்.