Перейти к содержанию
modelium.
Начать с задачи
←

Ollama CORS: открыть локальный интерфейс в браузере, не открывая сервер в сеть

Если браузерный интерфейс на вашем компьютере не видит Ollama, сначала проверьте адрес API: по умолчанию Ollama слушает 127.0.0.1:11434, а браузерным страницам с localhost и 127.0.0.1 уже разрешены межсайтовые запросы. Добавлять `OLLAMA_ORIGINS` для такого случая обычно не нужно. CORS регулирует браузер, но не заменяет сетевую защиту или авторизацию.

Статус: инструкция по документации, не собственный запуск Modelium. Ниже пример для локального браузерного интерфейса и Ollama на одном компьютере. Нужны установленная Ollama, открытая в браузере локальная страница и доступ к инструментам разработчика; конкретный сторонний UI здесь не устанавливаем. Интернет для этой проверки API не требуется, но установку приложения и загрузку моделей выполняют отдельно. s1 s3

Почему локальная страница не подключается?

Представьте, что интерфейс открыт по http://127.0.0.1:3000, а Ollama — по http://127.0.0.1:11434. Адреса с разными портами — разные origins (источники страницы в браузере). CORS — правило, по которому браузер разрешает странице читать ответ другого origin. Если адрес API недоступен или указан неверно, изменение CORS ничего не исправит. Ollama по умолчанию слушает только 127.0.0.1:11434; это не адрес компьютера соседа в локальной сети. s1 s2 s4

Важно: Ollama уже разрешает браузерные origins localhost и 127.0.0.1 (также разные их порты). Параметр OLLAMA_ORIGINS добавляет, а не сужает этот список. Не ставьте *, не открывайте OLLAMA_HOST=0.0.0.0:11434 «чтобы заработал CORS»: последнее меняет сетевую доступность API и не служит безопасной настройкой браузера. Даже успешный CORS-тест не доказывает, что доступ к модели защищён от других программ на вашем компьютере. s1 s2 s3 s4

Как проверить доступность сервера без изменения настроек?

  1. На том же компьютере откройте в браузере http://127.0.0.1:11434/api/tags. Ожидайте JSON с полем models — список скачанных моделей может быть пустым. Если соединение не устанавливается, сперва запустите Ollama и проверьте её адрес, а не меняйте CORS. Это проверка списка, не запуск модели. s2 s3 s5
  2. Откройте вашу локальную страницу интерфейса, затем инструменты разработчика браузера → Network/Сеть. Отправьте запрос к API из интерфейса. Сверьте точный URL запроса: в примере это http://127.0.0.1:11434/api/tags, а не адрес удалённого сервера. Если нет запроса или ошибка соединения, проверьте настройки именно интерфейса. Если в консоли написано об отказе CORS, сравните origin страницы с разрешённым списком; порт и схема (http/https) важны. s2 s3 s4 s5
  3. Для учебной проверки без модели из консоли инструментов разработчика на локальной странице http://127.0.0.1:3000 выполните fetch('http://127.0.0.1:11434/api/tags').then(r => r.json()).then(x => console.log(x.models)). Ожидаемый результат — массив, возможно []; не запускайте скопированный код на чужой странице. В этом примере страницы на 127.0.0.1 находятся в разрешённом списке Ollama. s2 s3 s5

Как проверить другой origin и не перепутать CORS с защитой?

Если вы пользуетесь терминалом, запросите только заголовки предварительной проверки: curl -i -X OPTIONS 'http://127.0.0.1:11434/api/tags' -H 'Origin: http://127.0.0.1:3000' -H 'Access-Control-Request-Method: GET'. Проверьте в ответе Access-Control-Allow-Origin для этого origin. Затем повторите команду с Origin: https://example.invalid вместо локального origin: этот внешний адрес не входит во встроенный список; для него не должно быть разрешающего заголовка. Не делайте вывод по одному HTTP-коду: в реальном браузере правило применяет сам браузер. curl не подчиняется CORS и по-прежнему может напрямую читать локальный API. s2 s3 s4

Если UI открывается с другого домена, Ollama FAQ описывает OLLAMA_ORIGINS для добавления конкретного origin. Для начала убедитесь, что этому UI можно доверять: точный адрес страницы получит доступ к локальному API из браузера. Широкие маски разрешений и публикация Ollama в интернет не нужны для обычной страницы на 127.0.0.1. Если UI находится на другом устройстве, это уже другая сетевая архитектура с отдельным контролем доступа, а не исправление локального CORS. s1 s2 s4

Что делать, если результат отличается?

  • /api/tags не открывается: проверьте, запущена ли Ollama и не изменён ли OLLAMA_HOST; пока не отвечает локальный API, CORS не при чём. s1 s2 s5
  • Прямой URL отвечает, но UI падает: сравните точный origin страницы, запрос API и сообщение Network/Console. http://localhost:3000 и http://127.0.0.1:3000 — разные origins, хотя обе формы входят во встроенный список Ollama. s2 s4
  • Сторонняя страница не получила разрешающий заголовок: это ожидаемая браузерная граница, не доказательство сетевой изоляции. Не разрешайте чужой origin ради устранения ошибки. s2 s3 s4

Основной следующий шаг — проверить доступность Ollama отдельно от браузерного интерфейса. Сама инструкция не подтверждена реальным запуском Modelium; ответ модели, безопасность чужого UI и изоляцию сети редакция здесь не испытывала.

Источники

  1. Ollama FAQ — bind address и дополнительные web origins — revision d3c846f8b0279e79b0e3a960a7575fde6920e9df. Получено 07.10.2026.
  2. Ollama envconfig — встроенный список origins и OLLAMA_HOST — revision d3c846f8b0279e79b0e3a960a7575fde6920e9df. Получено 07.10.2026.
  3. Ollama server routes — CORS middleware и /api/tags — revision d3c846f8b0279e79b0e3a960a7575fde6920e9df. Получено 07.10.2026.
  4. MDN — Cross-Origin Resource Sharing. Получено 07.10.2026.
  5. Ollama API — List models (/api/tags). Получено 07.10.2026.