# Подключение Codex к удалённой машине через Ollama --- ## 1. Узнаём IP сервера Первым делом нужно узнать IP выбранного сервера. **Linux:** ```bash hostname -I ``` Первый адрес в выводе — это ваш IP. **Windows:** ```cmd ipconfig ``` Ищешь строку: ``` IPv4 Address: 192.168.x.x ``` --- ## 2. Устанавливаем Ollama **Linux:** ```bash curl -fsSL https://ollama.com/install.sh | sh ``` **Windows:** самый удобный способ установки — через [официальный сайт](https://ollama.com) через установщик (.exe). > **ВАЖНО:** Если у сервера недостаточно мощная GPU или её вообще нет, то отвечать модели будут очень долго. --- ## 3. Скачиваем модель Заходим на сайт https://ollama.com/library и выбираем любую/любые модели для установки. Внимательно смотрите на её объём (он измеряется в миллиардах параметров) и на то, совместима ли она с Codex (это можно узнать, кликнув на модель и внизу под **Applications** будет написан `codex`, если совместима, и ничего если нет). Копируем название модели (для примера я взял `qwen3:0.6b`). Теперь на сервере пишем: ```bash ollama pull qwen3:0.6b ``` Пойдёт установка модели на сервер. --- ## 4. Настройка переменных окружения (самое важное) ### Зачем это нужно По умолчанию Ollama: - слушает только `localhost` (другие устройства не видят) - может выгружать модель из памяти - может обрабатывать несколько запросов и падать (на слабых устройствах) ### Переменные | Переменная | Значение | Описание | |---|---|---| | `OLLAMA_HOST` | `0.0.0.0` | **ОБЯЗАТЕЛЕН.** Открывает доступ к серверу по сети. | | `OLLAMA_KEEP_ALIVE` | `30m` или `-1` | **ОБЯЗАТЕЛЕН.** Держит модель в памяти. `30m` — выгрузит через 30 минут, если запросов не будет, `-1` — не выгружает вообще. Без этого модель будет постоянно перезагружаться. | | `OLLAMA_NUM_PARALLEL` | `1`, `2`, `3` или `4` | Количество одновременных запросов. Можно не ставить, если не нужны параллельные запросы. | | `OLLAMA_FLASH_ATTENTION` | `1` | Ускоряет инференс на GPU (если поддерживается). Полезен, если есть GPU. | | `OLLAMA_KV_CACHE_TYPE` | `q8_0` / `f16` / `q4_0` | Кэш ключ-значение (KV cache), который модель использует для контекста. | **Типы KV-кэша:** | Значение | Память | Скорость | |---|---|---| | `f16` | много | быстрее | | `q8_0` | средне | нормально | | `q4_0` | мало | чуть медленнее | --- ### Как задать переменные #### Linux ```bash sudo systemctl edit ollama ``` Появится панель в `nano` — что-то вроде такой: ``` ### Editing /etc/systemd/system/ollama.service.d/override.conf ### Anything between here and the comment below will become the contents of the drop-in file ### Edits below this comment will be discarded ### /etc/systemd/system/ollama.service # [Unit] # Description=Ollama Service # ... ``` Необходимо **между** строками `Anything between here and the comment below...` и `Edits below this comment will be discarded` вставить: ```ini [Service] Environment="OLLAMA_HOST=0.0.0.0" Environment="OLLAMA_KEEP_ALIVE=30m" ``` (ну и другие Environment если нужно) Сохраняем и выходим: `Ctrl+O` → `Enter` → `Ctrl+X`. Далее перезагружаем Ollama, чтобы она запускалась как "сервер": ```bash sudo systemctl daemon-reload sudo systemctl restart ollama ``` #### Windows PowerShell **(от имени администратора)**: ```powershell setx OLLAMA_HOST "0.0.0.0" /M setx OLLAMA_KEEP_ALIVE "30m" /M ``` И в **новой** консоли запускаем: ```bash ollama serve ``` --- ## 5. Проверка, что Ollama запущена На самом сервере: ```bash curl http://localhost:11434/api/tags ``` И с другого ноутбука или ПК пишем в терминале: ```bash curl http://:11434/api/tags ``` Так мы узнаем, запущен ли сервер. --- ## 6. Настройка Codex на клиентском устройстве Переходим к другому устройству. Предварительно необходимо установить [Node.js](https://nodejs.org) и Codex. После установки нужно изменить конфиг Codex'а, чтобы Codex отправлял запросы не к `openai.com`, а к нам на сервер. На **Linux** просто пишем в терминал: ```bash nano ~/.codex/config.toml ``` **Windows:** файл находится в директории: ``` C:\Users\\.codex\config.toml ``` Далее написан пример конфига с обязательными переменными для заполнения (но можете сами корректировать названия моделей): ```toml model = "qwen3:0.6b" # по умолчанию стоит auto, теперь при запуске будет запускаться наша установленная модель model_provider = "ollama_direct" [model_providers.ollama_direct] name = "Ollama" base_url = "http://192.168.1.50:11434/v1" # указываем ip сервера - http://ip:11434/v1 wire_api = "responses" # Поле для дополнительных моделей — чтобы можно было работать с множеством моделей. # Название "small" можно заменить на какое угодно. [profiles.small] model = "qwen2.5-coder:0.5b" # или любая другая, главное — заранее установить на сервер (ollama pull) model_provider = "ollama_direct" ``` > **ВАЖНО:** если в конфиге есть поле `OPENAI_API_KEY`, то удалите его. --- ## 7. Запуск Всё, теперь пишем в терминале: ```bash codex ``` И работаем с выбранной нами по умолчанию моделью. Можно также выбрать другую модель, которую написали в доп поле как [profiles.]: ```bash codex --profile small ``` Тогда будете работать с, как у меня в примере, `qwen2.5-coder:0.5b` или своей другой скачанной моделью.