VPS-এর জন্য Open WebUI-এর সেরা বিকল্প কোনটি?
Public IP-সহ VPS-এ Open WebUI, LibreChat, Hollama ও OrionChat তুলনা করুন: model-এর জন্য অবশিষ্ট RAM, login, remote Ollama এবং upkeep-এর বাস্তব পার্থক্য জানুন।
VPS-এ কোন Open WebUI বিকল্প উপযুক্ত
Open WebUI-এর বিকল্পগুলোকে প্রায় সব সময় laptop-এ তুলনা করা হয়, যেখানে RAM সস্তা এবং কোনো service public address-এ listening করে না। VPS এই দুই বিষয়ই বদলে দেয়, ফলে অগ্রাধিকারের ক্রমও বদলে যায়। দ্বিতীয় কোনো ব্যক্তি লগ ইন করার সঙ্গে সঙ্গেই Open WebUI এখনও উপযুক্ত default থাকে, কারণ এতে প্রকৃত user account এবং admin panel রয়েছে। Interface যখন RAM-এর শেষ gigabyte-এর জন্য model-এর সঙ্গে প্রতিযোগিতা করে, তখন হালকা project-গুলো এগিয়ে থাকে। এই সুবিধার বিনিময়ে authentication বাদ দিতে হয়: এগুলোতে কোনো authentication নেই।
নিচের সব তথ্য প্রতিটি project-এর নিজস্ব documentation থেকে নেওয়া, যা August 2026-এ পর্যালোচনা করা হয়েছে। এখানে চারটি axis ব্যবহার করা হয়েছে। VPS Internet থেকে reach করা গেলে কেবল এই বিষয়গুলোই গুরুত্বপূর্ণ হয়ে ওঠে।
পাবলিক IP-এ প্রাসঙ্গিক মাত্র চারটি দিক
- মডেলের পাশে থাকা memory। সার্ভারে model server-ই সবচেয়ে বেশি resource ব্যবহার করা process। Interface যত megabyte ধরে রাখে, model তত megabyte কম পায়।
- Authentication। কিছু project-এ user account ও role থাকে। অন্যগুলো ধরে নেয় যে laptop-এ তারাই একমাত্র চলমান software, তাই কোনো login ব্যবস্থাই নেই।
- Remote inference। যে UI শুধু
127.0.0.1:11434-এ পৌঁছাতে পারে, সেটি model-কে interface-এর একই server-এ রাখতে বাধ্য করে। - রক্ষণাবেক্ষণ। SQLite file-সহ একটি container পরিচালনা করা এবং তার পেছনে MongoDB ও vector database-সহ ছয়টি container পরিচালনা করা এক কাজ নয়।
মডেল ইন্টারফেসের জন্য কত RAM অবশিষ্ট রাখে
এই সার্ভারে ইন্টারফেসটি সবচেয়ে বড় অংশ নয়। মডেলই প্রধান অংশ। প্রকাশিত download size আপনাকে ন্যূনতম সীমা সম্পর্কে ধারণা দেয়, কারণ মডেল উত্তর দেওয়ার সময় weights-গুলো memory-তে থাকতে হয়। context cache বরাদ্দ হওয়ার পরে প্রকৃত memory ব্যবহার download size-এর চেয়ে বেশি হয়।
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"
}
]এগুলো হলো Ollama library-এর পেজে August 2026-এ প্রদর্শিত সংখ্যা। এগুলো প্রকাশিত size, পরিমাপ করা ব্যবহার নয়। 4 GB VPS-এ qwen3:4b-এর 2.5 GB আকার operating system এবং অন্যান্য সবকিছুর জন্য 1.5 GB-এর কম memory অবশিষ্ট রাখে। কথোপকথন বড় হওয়ার সঙ্গে context cache এই অবশিষ্ট memory আরও কমিয়ে দেয়। qwen3:8b-এর 5.2 GB আকার ওই সার্ভারে মোটেই fit করে না। Laptop roundup-গুলো সাধারণত এই পরিস্থিতি দেখায় না। অথচ কয়েকশো megabyte memory ব্যবহার করা একটি chat interface-ই ঠিক করে দিতে পারে মডেলটি চলবে কি না।
কোনো roundup-এর সংখ্যাকে, এমনকি এই লেখার সংখ্যাকেও, যাচাই না করে বিশ্বাস করবেন না। docker stats --no-stream বাস্তব ব্যবহারের এক ঘণ্টা পর চালান, container শুরু হওয়ার এক মিনিট পর নয়। কারণ গুরুত্বপূর্ণ memory প্রথমবার ব্যবহারের সময় বরাদ্দ হয়।
Open WebUI: একাধিক ব্যবহারকারীর জন্যও এখনও ডিফল্ট পছন্দ
Open WebUI একটি image থেকে চলে এবং এর data একটি 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-তে থাকা command-টি -p 3000:8080 publish করে, যা সব interface-এ listen করে। 127.0.0.1: prefix এটিকে loopback-এ সীমাবদ্ধ রাখে। VPS-এ এই prefix-টির গুরুত্ব command-এর অন্য যেকোনো অংশের চেয়ে বেশি, কারণ Docker নিজস্ব iptables rule লিখে এবং published port আপনার ufw deny rule উপেক্ষা করে।
নিচে বর্ণিত tunnel বা proxy ব্যবহার করে page-এ পৌঁছান। এরপর প্রথম account তৈরি করুন। এই account-টি administrator হবে। পরবর্তী signup-গুলো pending role-এ তৈরি হয়, যা DEFAULT_USER_ROLE-এর নথিভুক্ত default। তাই কোনো অপরিচিত ব্যক্তি page-এ পৌঁছালেও admin অনুমোদন না করা পর্যন্ত সে আপনার model ব্যবহার করতে পারবে না।
Open WebUI নিচের প্রকল্পগুলোর তুলনায় বেশি memory ব্যবহার করে, কারণ এটি বেশি কাজ করে। এর নিজস্ব performance page-এ কোন অংশগুলো memory খরচ করে তা উল্লেখ করা আছে। Default embedding engine container-এর ভেতরে একটি sentence-transformers model load করে। নথি অনুযায়ী, প্রতি worker process-এর জন্য এটি প্রায় 500 MB ব্যবহার করে। RAG_EMBEDDING_ENGINE=ollama সেট করলে এই কাজটি আপনি আগে থেকেই চালু রাখা model server-কে দেওয়া হয়। AUDIO_STT_ENGINE=webapi সেট করলে local speech-to-text model load করা এড়ানো যায়। SQLite-এ DATABASE_POOL_SIZE unset থাকলে pool একটি বড় internal size-এ ফিরে যায়। প্রতিটি connection তখন নিজস্ব page cache এবং memory map বাড়ায়। তাই ছোট server-এ DATABASE_POOL_SIZE=8 এবং DATABASE_SQLITE_PRAGMA_MMAP_SIZE=0 সেট করুন। ENABLE_AUTOCOMPLETE_GENERATION=False সেট করলে কোনো user এখনও typing করার সময় interface model-এর কাছে completion চাইবে না।
LibreChat: বহু-ব্যবহারকারী, এর পেছনে একটি stack
git clone https://github.com/danny-avila/LibreChat.git
cd LibreChat
cp .env.example .env
docker compose up -dInterface-টি port 3080-এ সাড়া দেয়। Login box-এর বদলে identity system প্রয়োজন হলে LibreChat ব্যবহার করুন। এর documentation-এ LDAP এবং OAuth2 login-এর বর্ণনা আছে। এতে user ও role পরিচালনার জন্য 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 file 6টি service চালু করে: api, admin panel, MongoDB, Meilisearch, pgvector, RAG API। এগুলোর কোনোটিই model নয়। MongoDB এবং pgvector—দুটিই নিজেদের জন্য আলাদা memory চায়। 4 GB-এর server-এ সেই memory model-এর জন্য বরাদ্দ করা যেত।
Upgrade একটি git operation। সাধারণত এই অংশেই ভুল হয়।
docker compose down
git pull
docker compose pull
docker compose up -dআপনি tracked docker-compose.yml সম্পাদনা করলে git pull conflict দেখিয়ে থেমে যায়। এরপর upgrade আংশিকভাবে প্রয়োগ হয়। পরিবর্তনগুলো docker-compose.override.yml-এ রাখুন। Project এ কাজটির জন্য এই file দেয়। Secret-গুলো .env-এ রাখুন। উভয় file-ই untracked, তাই git pull এগুলো পরিবর্তন করে না।
librechat.yaml-এ একটি custom endpoint ব্যবহার করে LibreChat-কে আপনার নিজস্ব model server-এর ঠিকানা দিন।
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-এর address দিন। Ollama এই value উপেক্ষা করলেও apiKey field-টি অবশ্যই থাকতে হবে। তাই একটি placeholder ব্যবহার করা যায়। LibreChat Docker-এ এবং Ollama একই machine-এ চললে container-এর ভেতরে localhost বলতে container-টিকেই বোঝায়। সেক্ষেত্রে সেখানে host.docker.internal ব্যবহার করুন।
Hollama ও OrionChat: কাজটি browser করে
Hollama একটি ছোট container থেকে browser application সরবরাহ করে। Chat server-এ নয়, আপনার browser-এর storage-এ থাকে।
docker run -d --restart unless-stopped -p 127.0.0.1:4173:4173 --name hollama ghcr.io/fmaclen/hollama:latestএই command-এর README সংস্করণে --rm ব্যবহার করা হয়েছে। Container বন্ধ হলে এটি container মুছে দেয়। তাই reboot-এর পরে interface আর ফিরে আসে না। Reverse proxy-এর পেছনে এটি চালালে -e VITE_ALLOWED_HOSTS='chat.example.com' যোগ করুন। কারণ image কেবল host localhost অনুমোদন করে। অন্য hostname-এর অনুরোধে app-এর বদলে blocked-host error দেয়।
OrionChat আরও সরল। এতে কোনো server component নেই। Repository clone করে আপনি ইতিমধ্যে চালানো web server দিয়ে folder-টি সরবরাহ করুন, অথবা disk থেকে index.html খুলুন। API key browser-এর localStorage-এ সংরক্ষিত থাকে। Chat history browser-এই থাকে। Chat-এর সংখ্যা 512 ছাড়ালে app সবচেয়ে পুরোনো chat মুছে দেয়।
কোনো project-এই login নেই। কারণ login যাচাই করার মতো কোনো server নেই। Laptop-এ এটি সমস্যা নয়। VPS-এ এর অর্থ হলো page-টি কখনোই 0.0.0.0-এ প্রকাশ করা যাবে না। আরও একটি বিষয় সহজে চোখ এড়ায়: model-কে server নয়, browser call করে।
এই বিষয়টিই নির্ধারণ করে দুটি project কোথায় ব্যবহার করা যাবে। আপনার browser-কে সরাসরি Ollama-তে পৌঁছাতে হবে। তাই Ollama-কে loopback-এর বাইরে listen করতে হবে। Ollama-তে কোনো ধরনের authentication নেই। এর ফলে browser-এর জন্য দুটি নিয়ম প্রযোজ্য। HTTPS-এ সরবরাহ করা page plain HTTP endpoint call করতে পারে না। 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-এ call করলে has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource দিয়ে তা প্রত্যাখ্যান করা হয়, যতক্ষণ না আপনি সেই origin অনুমোদন করেন।
Ollama-র নথিভুক্ত পদ্ধতিতে systemd override ব্যবহার করে দুটি setting-ই পরিবর্তন করা যায়।
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 11434আগে যেখানে 127.0.0.1:11434 দেখাত, এখন ss সেখানে 0.0.0.0:11434 দেখানোর কথা। Firewall বা authentication করা proxy ইতিমধ্যে port-এ কারা পৌঁছাতে পারবে তা নিয়ন্ত্রণ করলে তবেই এই পরিবর্তন করুন। কারণ উন্মুক্ত 11434 মানে উন্মুক্ত model server। Mass scanner দ্রুত নতুন public port খুঁজে পায়। নিচের SSH tunnel ব্যবহার করলে এই প্রশ্নই থাকে না। তখন page একটি localhost origin-এ চলে, যা Ollama default-ভাবেই অনুমোদন করে। Port-টি কখনোই server-এর বাইরে প্রকাশিত হয় না।
প্রত্যেকটি কি remote Ollama বা vLLM endpoint ব্যবহার করতে পারে
Open WebUI পারে, এবং সংযোগটি server side-এ তৈরি হয়। OLLAMA_BASE_URL=http://model-host:11434 এটিকে Ollama-এর দিকে নির্দেশ করে। vLLM বা অন্য কোনো OpenAI-compatible server-এর জন্য non-empty OPENAI_API_KEY সহ OPENAI_API_BASE_URL=http://model-host:8000/v1 সেট করুন এবং /v1 suffix রাখুন; এটি প্রয়োজনীয়। OPENAI_API_BASE_URLS-এ semicolon দিয়ে আলাদা করা একাধিক backend গ্রহণ করা যায়।
LibreChat উপরে দেখানো custom endpoint-এর baseURL-এর মাধ্যমে এটি করতে পারে। ওই request-টিও server ছেড়ে যায়, তাই browser-এর কোনো নিয়ম প্রযোজ্য হয় না।
Hollama এবং OrionChat তাদের settings-এ টাইপ করা যেকোনো endpoint-এর দিকে নির্দেশ করা যায়, তবে request আপনার browser ছেড়ে যায়। উপরের section-এর সবকিছু তাদের ক্ষেত্রে প্রযোজ্য, এখানকার অন্য কিছুর ক্ষেত্রে নয়।
Interface-কে model থেকে আলাদা করাই remote endpoint ব্যবহারের সবচেয়ে বড় সুবিধা। Interface একটি ছোট box-এ রাখুন এবং model এমন জায়গায় রাখুন যেখানে পর্যাপ্ত memory আছে। একাধিক ব্যক্তি একই সময়ে model ব্যবহার করলে দুটির আচরণ খুব আলাদা হয়। তাই request পরিবেশন করতে Ollama নাকি vLLM ব্যবহার করা উচিত তা নির্ধারণ করার এটিই উপযুক্ত সময়। Model server এখনও না থাকলে প্রথমে একটি VPS-এ Ollama চালানো শুরু করুন। CPU-only box হলে runner বেছে নেওয়ার আগে Ollama-এর সঙ্গে llama.cpp-এর তুলনা কীভাবে হয় তা পড়ুন।
0.0.0.0-এ login ছাড়া কোনো chat UI প্রকাশ করবেন না
Open WebUI-এর hardening পৃষ্ঠায় বলা হয়েছে, প্রকল্পটি “databases, container registries এবং CI servers-এর মতো অন্যান্য self-hosted infrastructure-এর অনুরূপ private, trusted network-এর জন্য তৈরি”। সেখানে এটিকে VPN-এর পেছনে অথবা authentication-সহ reverse proxy-এর পেছনে রাখার নির্দেশও দেওয়া হয়েছে। কোনো login একেবারেই না থাকা প্রকল্পকে অন্তত একইভাবে সুরক্ষিত করা উচিত।
কোনো কিছুতে বিশ্বাস করার আগে কী listen করছে তা পরীক্ষা করুন।
sudo ss -lntp | grep -E ':(3000|3080|4173|11434)'127.0.0.1:3000 লেখা একটি লাইনই প্রত্যাশিত। 0.0.0.0:3000 লেখা একটি লাইন মানে আপনার chat interface public internet-এ প্রকাশিত। নিজের machine থেকে curl -sI http://YOUR.VPS.IP:3000-এর উত্তর HTTP/1.1 200 OK হলে একই বিষয় আরও সরাসরি বোঝা যায়।
WEBUI_AUTH=False ব্যবহার করে Open WebUI-এর login বন্ধ করা কেবল এমন machine-এর জন্য single-user setting, যেটিতে অন্য কেউ পৌঁছাতে পারে না। ইতিমধ্যে account থাকা installation-এ এটি প্রয়োগও হয় না; সেখানে You can't turn off authentication because there are existing users. বার্তা দেখায়।
প্যাটার্ন 1: loopback-এ bind করে SSH-এর মাধ্যমে প্রবেশ করুন। প্রতিটি port 127.0.0.1-এ publish করুন। এরপর প্রয়োজনীয় port forward করুন: ssh -N -L 3000:127.0.0.1:3000 you@vps.example.com, এবং laptop-এ http://localhost:3000 খুলুন। কিছুই publish করা হচ্ছে না, তাই কিছু scan করাও সম্ভব নয়। Hollama বা OrionChat-এর ক্ষেত্রে একই command-এ -L 11434:127.0.0.1:11434 দিয়ে model port-ও forward করুন এবং Ollama-কে loopback-এ রাখুন। এই প্যাটার্নের নিরাপত্তা আপনার SSH setup যতটা শক্তিশালী, ততটাই শক্তিশালী। তাই এর সঙ্গে শুধু key-ভিত্তিক SSH এবং শক্তভাবে সুরক্ষিত sshd ব্যবহার করুন।
প্যাটার্ন 2: এমন reverse proxy ব্যবহার করুন, যা app অনুরোধটি দেখার আগেই authentication সম্পন্ন করে। app-কে loopback-এ রাখুন, proxy-কে port 443 পরিচালনা করতে দিন এবং সামনে single sign-on যুক্ত করুন। Docker Compose label দ্বারা পরিচালিত Traefik-এর সঙ্গে identity provider হিসেবে Authentik ব্যবহার করলে machine-এর প্রতিটি app-এর জন্য একটি login এবং একটি certificate পাওয়া যায়। Open WebUI-কে TLS (transport layer security)-এর পেছনে রাখলে WEBUI_SESSION_COOKIE_SECURE=true এবং WEBUI_SESSION_COOKIE_SAME_SITE=strict সেট করুন। চার সপ্তাহের default মান থেকে JWT_EXPIRES_IN-এর মেয়াদও কমান। কারণ Open WebUI-এর documentation অনুযায়ী Redis ছাড়া sign-out token invalid করে না; token নিজে থেকে expire না হওয়া পর্যন্ত ব্যবহার করা যায়।
প্যাটার্ন 2 browser-only প্রকল্পগুলোর সমস্যা সমাধান করে না। page-এর সামনে থাকা proxy model endpoint-কে সুরক্ষিত করে না। ওই page থেকে ভিন্ন hostname-এ fetch করা হলে আপনার session cookie পাঠানো হয় না। ফলে Ollama-এর সামনে থাকা authentication proxy login form-এ redirect দিয়ে উত্তর দেয় এবং chat ব্যর্থ হয়। হয় model endpoint-কে page-এর একই hostname-এর অধীনে route করুন, নয়তো প্যাটার্ন 1 ব্যবহার করুন।
কোনটি বেছে নেবেন
আপনি ছাড়া অন্য কেউ এটি ব্যবহার করলে Open WebUI চালান। এতে প্রকৃত user account থাকে, নতুন user-রা approval queue-তে যায়, এবং এর maintainer-রা অনুসরণযোগ্য hardening নির্দেশনা প্রকাশ করেন। LDAP বা admin panel প্রয়োজন হলে LibreChat চালান, তবে এর ছয়টি service এবং আপনার model মিলে মোট resource চাহিদা গ্রহণ করার আগে docker stats দিয়ে নিশ্চিত করুন। ছোট কোনো box-এ একজনই ব্যবহার করলে, এবং model ইতিমধ্যে RAM-এর বেশির ভাগ দখল করে থাকলে, SSH tunnel-এর মাধ্যমে Hollama বা OrionChat serve করুন এবং browser-কে state ধরে রাখতে দিন। VPS-এ ভুল সিদ্ধান্ত হলো login ছাড়াই এগুলোর যেকোনো একটি 0.0.0.0-এ প্রকাশ করা।
FAQ
Open WebUI-কে সরাসরি public IP-তে উন্মুক্ত করা কি নিরাপদ?
এর নিজস্ব hardening page-এ Open WebUI-কে private, trusted network-এর জন্য তৈরি software বলা হয়েছে; database বা CI server-ও একই শ্রেণিতে পড়ে। এতে প্রকৃত account থাকে। প্রথম account administrator হয়, আর পরের account-গুলো অনুমোদন না পাওয়া পর্যন্ত pending থাকে। তাই login-বিহীন UI-এর তুলনায় এটি অনেক বেশি নিরাপদ। তবু এটিকে TLS-সহ reverse proxy-এর পেছনে রাখুন এবং সম্ভব হলে single sign-on ব্যবহার করুন। Container port হিসেবে 127.0.0.1:3000:8080 publish করুন, যাতে Docker-এর নিজস্ব iptables rule গোপনে এটিকে Internet-এর জন্য খুলে দিতে না পারে।
VPS-এ কোন Open WebUI বিকল্পটি সবচেয়ে কম RAM ব্যবহার করে?
Browser-based বিকল্পগুলো, অর্থাৎ Hollama এবং OrionChat, কারণ application client-এ চলে। Server শুধু static file পাঠায়। OrionChat-এর জন্য কোনো application container-ও লাগে না। Open WebUI একটি Python process, একটি database এবং ডিফল্টভাবে একটি local embedding model memory-তে রাখে। Documentation অনুযায়ী শুধু embedding model-এর জন্য প্রতি worker-এ প্রায় 500 MB লাগে। নিজের server-এ docker stats --no-stream দিয়ে মানগুলো যাচাই করুন, কারণ চালু করা feature অনুযায়ী এগুলো পরিবর্তিত হয়।
এই chat UI-গুলো কি অন্য host-এ থাকা Ollama server ব্যবহার করতে পারে?
Open WebUI এবং LibreChat তা পারে। Connection তাদের server থেকেই তৈরি হয়, তাই browser-এর cross-origin নিয়ম প্রযোজ্য হয় না। Open WebUI-এর জন্য OLLAMA_BASE_URL সেট করুন, অথবা LibreChat-এর custom endpoint-এ baseURL ব্যবহার করুন। vLLM বা অন্য কোনো OpenAI-compatible server-এর জন্য /v1 suffix-সহ OPENAI_API_BASE_URL ব্যবহার করুন এবং একটি non-empty API key দিন। Hollama এবং OrionChat-ও যেকোনো endpoint-এ নির্দেশ করা যায়। তবে request আপনার browser থেকেই পাঠানো হয়, তাই endpoint-টি browser থেকেও reachable হতে হবে।
আমার browser chat UI কেন Ollama-এ পৌঁছাতে পারছে না?
প্রায় সব ক্ষেত্রে দুটি কারণ দায়ী। Ollama ডিফল্টভাবে 127.0.0.1:11434-এ bind করে। তাই অন্য machine-এর browser OLLAMA_HOST পরিবর্তন না করা পর্যন্ত এতে পৌঁছাতে পারে না। Ollama localhost থেকেই cross-origin request গ্রহণ করে। ফলে আপনার domain থেকে serve করা page-এর request No 'Access-Control-Allow-Origin' header is present on the requested resource-সহ প্রত্যাখ্যাত হয়, যতক্ষণ না সেই origin-কে OLLAMA_ORIGINS-এ তালিকাভুক্ত করা হয়। Page-টি HTTPS এবং endpoint-টি HTTP হলে Ollama request পাওয়ার আগেই browser এটিকে mixed content হিসেবে block করে। একটি systemctl edit ollama.service override-এ দুটি variable-ই সেট করুন। অথবা SSH-এর মাধ্যমে port forward করুন; তাহলে সমস্যাটি থাকে না।