
настройка редактора Zed, часть 2 LJ
настройка редактора Zed, часть 2 DW
настройка редактора Zed, часть 3 LJ
настройка редактора Zed, часть 3 DW
ознакомится
https://github.com/zed-industries/zed
https://zed.dev/docs/linux
zed-linux-x86_64.tar.gz (Локальный редактор) — это полноценная графическая версия редактора Zed для ноутбука,
zed-remote-server-linux-x86_64.gz (Удаленный сервер) — это безграфический серверный движок, предназначенный исключительно для удаленной разработки (Remote Development / SSH)
bwrap-linux-x86_64.gz (песочница для ИИ)
Установка
curl -f https://zed.dev/install.sh | sh
Установка через репозитарий
# Создаем директорию для ключа
sudo install -d -m 0755 /etc/apt/keyrings
# Скачиваем GPG-ключ репозитория
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
# Добавляем репозиторий в источники
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt trixie main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list
# Обновляем списки и устанавливаем
sudo apt update
sudo apt install -y zed
Начиная с октября 2026 года этот сторонний репозиторий deb.griffo.io для автоматических обновлений может потребовать подписку. Если вы не хотите её использовать, вы всегда можете просто скачать готовый .deb файл с их страницы релизов на GitHub и установить вручную через sudo dpkg -i
ручная установка
zed-linux-x86_64.tar.gz (сам редактор).
bwrap-linux-x86_64.gz (песочница для ИИ)
Шаг 1. Распаковка редактора Zed
Все пользовательские программы в Linux принято ставить в локальную директорию ~/.local.
Создайте структуру папок в своем домашнем каталоге (если их еще нет):
mkdir -p ~/.local/bin ~/.local/libexec ~/.local/share/applications
Перейдите в папку со скачанным архивом и распакуйте его:
tar -xvf zed-linux-x86_64.tar.gz
После распаковки появится папка zed.app. Перенесите её содержимое в вашу локальную систему:
# Переносим бинарный файл запуска
cp zed.app/bin/zed ~/.local/bin/
# Переносим основные ресурсы редактора
cp -r zed.app/share/* ~/.local/share/
Шаг 2. Ручная установка Bubblewrap (bwrap)
Чтобы встроенный ИИ работал корректно и безопасно, Zed ищет утилиту bwrap строго по пути ~/.local/libexec/zed-bwrap.
Распакуйте скачанный файл bwrap-linux-x86_64.gz:
gunzip bwrap-linux-x86_64.gz
Переименуйте его и переместите в системную подпапку Zed:
mv bwrap-linux-x86_64 ~/.local/libexec/zed-bwrap
chmod +x ~/.local/libexec/zed-bwrap
Шаг 3. Интеграция в графическое меню Debian (GNOME/KDE)
Чтобы Zed отображался в списке всех приложений вашей системы и вы могли запускать его кликом мыши, нужно зарегистрировать его ярлык:
Откройте файл ярлыка текстовым редактором:
vim ~/.local/share/applications/zed.desktop
Вставьте туда стандартную конфигурацию ярлыка, указав абсолютный путь к вашему домашнему каталогу (замените имя_пользователя на ваше имя в системе):
Сохраните файл (Ctrl+O, затем Enter) и выйдите (Ctrl+X).
Шаг 4. Добавление в команду терминала
Чтобы вы могли запускать редактор из любого терминала простой командой zed, путь ~/.local/bin должен быть прописан в вашей переменной окружения PATH. В Debian он обычно включен по умолчанию.
zed --version
Удаление
zed --uninstall
zed-linux-x86_64.tar.gz (сам редактор).
bwrap-linux-x86_64.gz (песочница для ИИ)
отключение ИИ
https://zed.dev/docs/ai/quick-start#turning-ai-off-entirely
zed: open settings
найдите Disable AIи включите его
или добавить это в свой файл настроек:
Нажмите Ctrl + , чтобы открыть конфигурационный файл
Для работы Zed в Linux важна поддержка Vulkan
Поскольку редактор рендерит интерфейс через видеокарту, при отсутствии правильных драйверов он может вообще не запуститься (выдав ошибку NoSupportedDeviceFound) или сильно нагружать процессор
sudo apt update
sudo apt install mesa-vulkan-drivers vulkan-tools
и дрова для видеокарты
intel-media-va-driver-non-free
или
nvidia-driver nvidia-vulkan-icd nvidia-container-toolkit
Проверка
vkcube
Если вы видите плавно вращающийся 3D-куб, графическая подсистема готова к работе с Zed.
Особенности Wayland в Debian 13
sudo apt install xwayland
DISABLE_WAYLAND=1 zed
варианты установок
ноут + сервер
АРХИТЕКТУРА СВЯЗКИ
Ноутбук : Графический интерфейс Zed ➔ SSH-туннель.
Сервер (Хост): Изолированный сетевой мост ➔ QEMU.
Виртуалка QEMU (Debian 13): zed-remote-server + Ollama (CPU) [Полный офлайн].
ноутбук отвечает исключительно за отрисовку интерфейса (UI), а сервер берет на себя все тяжелые вычисления, включая компиляцию, работу языковых серверов (LSP) и запуск ИИ-агента.
ШАГ 1. НАСТРОЙКА НА СЕРВЕРЕ (ХОСТ-МАШИНА)
Чтобы изолировать виртуалку, создайте локальный сетевой мост без привязки к физической карте, имеющей интернет:
# 1. Создаем изолированный мост
sudo ip link add br-isolated type bridge
sudo ip link set br-isolated up
# 2. Назначаем мосту локальный IP-адрес хоста
sudo ip addr add 192.168.100.1/24 dev br-isolated
Скрипт запуска виртуалки (run_vm.sh)
Создайте скрипт запуска QEMU на сервере. Он выделяет виртуалке 8 ГБ ОЗУ, 4 ядра CPU и пробрасывает её SSH-порт (22) на порт 2222 сервера.
ШАГ 2. НАСТРОЙКА ВНУТРИ ВИРТУАЛКИ QEMU
Зайдите в виртуалку (пока у неё есть интернет или настроив IP 192.168.100.2), установите зависимости и разверните файлы, перенесенные вручную.
Перенос языкового сервера (LSP) для Python
В обычной ситуации Zed при открытии .py файла пытается автоматически скачать анализатор кода Pyright или Ruff из сети. На изолированном сервере это вызовет ошибку
Поэтому вам нужно заранее перенести интерпретатор Python и сам плагин автодополнения (LSP) на сервер через флешку
Популярные LSP-серверы для Python
Pyright / Basedpyright: строгая проверка типов, быстрое автодополнение, поддержка крупных проектов.
Ruff: сверхбыстрый анализ кода, импортов и ошибок на Rust, заменяющий flake8, isort и black.
Pylyzer: статический анализатор и LSP-сервер на Rust, ориентированный на высокую скорость работы.
Jedi-language-server: классический и легкий сервер на базе библиотеки Jedi, удобный для небольших скриптов
Установите на сервер Python и пакетный менеджер (перенеся их в виде офлайн .deb пакетов или исходников).
Установите языковой сервер, например, Ruff (очень быстрый линтер и автодополнение на Rust) или глобальный Pyright:
pip install ruff --no-index --find-links=/путь/к/флешке/с/wheel-пакетами
Убедитесь, что команда запуска (например, ruff) доступна в глобальном PATH вашего сервера
1. Системные зависимости (Debian 13)
sudo apt update
sudo apt install -y openssh-server python3 gcc build-essential clang-format curl
2. Ручная установка Ollama (CPU) и Zed Server
# Распаковываем предварительно скачанный архив Ollama для Linux
tar -C ~/.local -xzf ollama-linux-amd64.tgz
# Создаем папку для удаленного сервера Zed (замените ВЕРСИЯ на версию вашего клиента)
mkdir -p ~/.zed_server
gunzip zed-remote-server-linux-x86_64.gz
mv zed-remote-server-linux-x86_64 ~/.zed_server/zed-remote-server-ВЕРСИЯ
chmod +x ~/.zed_server/zed-remote-server-ВЕРСИЯ
3. Скачивание модели (Офлайн)
Поскольку интернета внутри ВМ не будет, скачайте модель qwen2.5-coder:7b на машине с интернетом и скопируйте содержимое папки кэша модели (~/.ollama) внутрь виртуалки по тому же пути.
4. Изолированная служба Ollama (~/.config/systemd/user/ollama-isolated.service)
Создайте пользовательскую службу в ВМ, которая запускает Ollama внутри сетевого вакуума (unshare -n):
Включите её:
systemctl --user daemon-reload
systemctl --user enable --now ollama-isolated.service
# Включаем работу службы в фоне без активных сессий
sudo loginctl enable-linger user
Проброс видеокарты в QEMU (VFIO)
Если на сервере стоит карта Nvidia, вы можете принудительно «отдать» её внутрь виртуальной машины. Хост-система (сервер) полностью перестанет её видеть, а виртуалка получит к ней прямой нативный доступ.
ИИ начнет генерировать код со скоростью 50–80 слов в секунду.
Шаг 1. Включите виртуализацию в ядре сервера
Откройте конфигурацию загрузчика Grub на самом сервере:
sudo nano /etc/default/grub
Найдите строку GRUB_CMDLINE_LINUX_DEFAULT и добавьте туда параметры включения IOMMU (для процессоров Intel):
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
Обновите конфигурацию: sudo update-grub и перезагрузите сервер.
Шаг 2. Найдите ID видеокарты
Выполните команду lspci -nn | grep -i nvidia. Вы увидите идентификаторы вашей карты, например: [10de:1b80].
Шаг 3. Заблокируйте карту на хосте
Создайте файл конфигурации для драйвера VFIO:
sudo nano /etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:1b80,10de:10f0
Шаг 4. Пробросьте карту в команду запуска QEMU
Теперь при запуске виртуальной машины добавьте в скрипт QEMU устройство вашей видеокарты (указав её PCI-адрес, например 01:00.0):
Внутри виртуалки вам останется лишь установить стандартный драйвер sudo apt install nvidia-driver nvidia-vulkan-icd,
и Ollama автоматически подхватит видеокарту, перенеся 100% тяжелых вычислений ИИ-агента на графический чип.
Запуск в Docker-контейнере
1. Создайте файл docker-compose.yml в папке проекта на сервере:
Чтобы полностью отрезать контейнеры от интернета, мы создадим внутреннюю изолированную сеть internal_net без внешнего шлюза (параметр internal: true).
docker-compose.yml
подключение видеокарты к изолированной Ollama в Docker на сервере
Вот пошаговое руководство, как подключить вашу Tesla P100 к изолированной Ollama в Docker на сервере Debian 13.
Шаг 1. Подготовка сервера хоста ( Debian 13 )Убедитесь, что на самом сервере установлен официальный драйвер NVIDIA и утилита контейнеризации NVIDIA Container Toolkit (она позволяет пробрасывать графические ядра внутрь Docker).
Добавьте официальный репозиторий NVIDIA для вашего пакетного менеджера (или используйте пакеты из ветки non-free Debian 13).Установите инструментарий одной командой:
sudo apt update && sudo apt install -y nvidia-container-toolkit
Перезапустите службу Docker, чтобы она увидела новую среду выполнения (runtime):
sudo systemctl restart docker
Проверьте, что Docker видит вашу карту Tesla P100, запустив тестовый контейнер:
docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu22.04 nvidia-smi
Если на экране появилась таблица со спецификациями Tesla P100 и объемом памяти 16 ГБ, значит, хост-система полностью готова.
Как запустить и перенести модель в первый раз
Поскольку контейнер изолирован от интернета (internal: true), команда ollama run qwen2.5-coder:7b внутри него выдаст ошибку, так как он не сможет скачать 4.7 ГБ файлов модели с серверов Ollama.
Как решить эту проблему (Офлайн-перенос):
Временно закомментируйте строчку internal: true в docker-compose.yml или запустите один раз временный контейнер с интернетом на сервере, чтобы скачать модель в общую локальную папку:
docker run --rm -v ./ollama_data:/root/.ollama --gpus all ollama/ollama run qwen2.5-coder:7b
Как только скачивание завершится (в консоли появится строка ввода >>>), закройте его командой /exit. Файлы модели весом 4.7 ГБ надежно сохранятся в вашей локальной папке ./ollama_data на жестком диске сервера.
Теперь смело запускайте основную изолированную сборку:
docker compose up -d
Вот точные команды, чтобы настроить беспарольный и безопасный вход по SSH-ключу с вашего ноутбука прямо внутрь созданного Docker-контейнера разработки.
Поскольку в нашем файле docker-compose.yml мы пробросили порт контейнера наружу как 2222, настройка выполняется очень легко.Выполните следующие шаги на вашем ноутбуке
Шаг 1. Сгенерируйте отдельный ключ для контейнера
Для безопасности лучше создать отдельный изолированный ключ конкретно для этой среды разработки (даже если у вас уже есть основной ключ для самого сервера):
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_docker -C "lenovo-zed-container"
(На запросы парольной фразы нажмите Enter для полностью автоматического входа, либо введите пароль, если хотите защитить ключ, как мы настраивали ранее через ssh-agent).
Шаг 2. Закиньте публичный ключ внутрь контейнераТак как контейнер имеет IP-адрес вашего основного сервера, но слушает порт 2222, отправьте публичную часть ключа (.pub) одной командой с ноутбука:
ssh-copy-id -i ~/.ssh/id_ed25519_docker.pub -p 2222 root@[IP_Вашего_Сервера]
Система попросит ввести пароль от контейнера. Введите тот, который мы указали в файле docker-compose.yml в строке chpasswd (в примере это был your_secure_password).
Скрипт сам зайдет в контейнер, создаст там нужную папку /root/.ssh/ и пропишет ключ в файл authorized_keys.
Шаг 3. Добавьте контейнер в SSH-конфиг ноутбукаЧтобы Zed мог подключаться одной кнопкой, откройте файл конфигурации SSH на ноутбуке:
nano ~/.ssh/config
Добавьте в него отдельный блок для контейнера разработки (с сохранением туннеля для нашей изолированной на Tesla P100 модели Ollama):
(Замените [IP_Вашего_Сервера] на реальный IP-адрес вашей мощной машины).
Как теперь зайти в проект через Zed?
Убедитесь, что контейнеры запущены на сервере (docker compose up -d).
На ноутбуке откройте Zed.Нажмите комбинацию клавиш Alt + Ctrl + Shift + O (Remote Projects).
Выберите Connect New Server и просто введите наш короткий алиас:
textzed-container
Zed мгновенно подключится внутрь изолированного контейнера Debian 13 без пароля, развернет там серверную часть zed-remote-server и откроет файлы из папки /workspace.
По нажатию Ctrl + \ ваш ИИ-агент будет отправлять запросы в туннель, а закрытый контейнер с Ollama задействует всю мощь серверной видеокарты Tesla P100 для генерации кода.
ШАГ 3. НАСТРОЙКА НА СЛАБОМ НОУТБУКЕ
1. Конфигурация SSH (~/.ssh/config)
Пропишите доступ к порту 2222 сервера и настройте автоматический проброс порта ИИ:
2. Глобальные настройки Zed на ноутбуке (settings.json)
Нажмите Ctrl + , на ноутбуке и укажите ИИ-панели смотреть в проброшенный туннель:
3. Настройки проекта внутри виртуалки (.zed/settings.json)
Создайте этот файл на стороне виртуалки в папке с кодом. Он принудительно запретит сетевую активность встроенному агенту и включит локальный clang-format:
КАК ПОЛЬЗОВАТЬСЯ:
Запускаете виртуалку на сервере: ./run_vm.sh.
Открываете Zed на ноутбуке, нажимаете Alt + Ctrl + Shift + O (Remote Projects).
Вводите имя подключения: zed-kvm и нажимаете Enter.
Вы внутри изолированной среды. По нажатию Ctrl + \ запускается ИИ-агент, вычисления идут на CPU сервера, а сеть полностью заблокирована с обеих сторон.
Для настройки и проверки изолированного сетевого моста br-isolated на сервере (хост-машине) и правильного проброса портов в QEMU вам может понадобиться следующая системная информация:
1. Проверка состояния моста и интерфейсов
Чтобы убедиться, что мост создался и активен, используются команды пакета iproute2 (встроен в Debian 13):
ip link show br-isolated — показывает статус интерфейса (должен быть UP).
ip addr show br-isolated — проверяет, успешно ли закрепился за мостом локальный IP-адрес хоста (192.168.100.1/24).
2. Права доступа для QEMU (Пакет qemu-bridge-helper)
По умолчанию QEMU из соображений безопасности не может сам подключаться к сетевым мостам без прав sudo. Чтобы запускать скрипт run_vm.sh от обычного пользователя, вам понадобятся:
Проверить путь к системному помощнику (обычно в Debian это /usr/lib/qemu/qemu-bridge-helper).
Разрешить мост в конфигурационном файле. Для этого нужно создать файл /etc/qemu/bridge.conf и внести туда строку:
allow br-isolated
Задать правильные права на сам хелпер:
sudo chmod 4755 /usr/lib/qemu/qemu-bridge-helper.
3. Настройка IP-адреса внутри самой виртуалки
Так как мост изолирован, внутри него нет DHCP-сервера, который бы автоматически выдавал IP-адреса. Вам понадобится настроить статический IP внутри гостевой ОС Debian 13.
Внутри виртуалки в файле /etc/network/interfaces нужно будет прописать:
4. Проверка проброса портов (Port Forwarding)
Чтобы убедиться, что QEMU успешно слушает порт 2222 на хост-машине и туннелирует его на порт 22 виртуалки, на самом сервере пригодится команда контроля сокетов:
ss -tlnp | grep 2222 — она должна показать, что процесс qemu-system успешно занял (слушает) этот порт на сервере.
5. Логирование и диагностика
Если ноутбук выдает ошибку Connection refused при попытке подключиться к zed-kvm, на хост-сервере полезно заглянуть в системный лог ядра, чтобы понять, не заблокировал ли трафик встроенный межсетевой экран (iptables/nftables):
sudo dmesg | grep -i br-isolated
работа с агентом
https://github.com/ollama/ollama/releases
https://docs.ollama.com/linux
https://huggingface.co/docs/huggingface_hub/main/en/guides/upload
https://pinggy.io/blog/how_to_self_host_any_llm_step_by_step_guide/
скачать qwen2.5-coder-7b
Qwen2.5-Coder:7B
Назначение: Написано специально для программирования, отладки и работы с алгоритмами.
Llama 3.1:8B
Назначение: Универсальная модель общего назначения от Meta.
https://huggingface.co/Qwen/Qwen2.5-Coder-7B-Instruct-GGUF/tree/main
https://huggingface.co/bartowski/Meta-Llama-3.1-8B-Instruct-GGUF/tree/main
https://huggingface.co/bartowski/Mistral-7B-Instruct-v0.3-GGUF/tree/main
https://huggingface.co/bartowski/DeepSeek-R1-Distill-Qwen-7B-GGUF/tree/main
========================================================================================
МОДЕЛЬ ВЕС ФАЙЛА МИН. ПАМЯТЬ РЕКОМЕНДУЕМАЯ ПАМЯТЬ КОНТЕКСТ СКОРОСТЬ
========================================================================================
Gemma 2 (2B) - It ~1.6 ГБ 4 ГБ ОЗУ 8 ГБ ОЗУ / VRAM 8k 🚀 Молния
Gemma 3 (4B) - It ~2.6 ГБ 6 ГБ ОЗУ 8-12 ГБ ОЗУ / VRAM 32k ⚡ Быстро
Gemma 4 (E4B) - It ~4.5 ГБ 6 ГБ ОЗУ 12-16 ГБ ОЗУ / VRAM 128k+ 🐢 Средне
========================================================================================
скромные требования
https://huggingface.co/google/gemma-2-2b-it-GGUF/tree/main
на ПК со слабыми параметрами выставляйте в настройках (Ollama / LM Studio) размер контекста в 2048 или 4096
Используйте SSD. Если у вас нет мощной видеокарты (VRAM) и модель будет работать за счет обычной оперативной памяти (ОЗУ), файл модели должен лежать на SSD-диске. На старых HDD модель будет думать по минуте над каждым словом.
Ищите QAT-кванты. При скачивании с Hugging Face ищите файлы с пометкой qat-q4_0 (Quantization-Aware Training). Google обучает их по специальной технологии, благодаря чему они весят как сильно сжатые файлы, но выдают точность как полноценные «тяжелые» модели
скачать Meta-Llama-3.1-8B
.gguf — это название единого бинарного формата файлов, специально созданного для локального запуска нейросетей на обычных процессорах (CPU) и видеокартах (GPU) через программы вроде Ollama или llama.cpp. Внутри этого одного файла упакованы абсолютно все слои нейросети, её архитектура и текстовый токенизатор
.Q4_K_M — это тип квантования (степень сжатия весов). «Чистая» модель без сжатия весит около 16 ГБ и требует огромной видеопамяти.
Версия Q4_K_M сжата до 4 бит с использованием умного алгоритма, который уменьшает размер файла до ~4.7 ГБ практически без потери качества ответов. Буква M означает «Medium» (средний, самый сбалансированный размер).
Приставка -it означает Instruction-Tuned. Модель обучена понимать команды человека, общаться в формате «вопрос-ответ» и строго выполнять технические задания.
Для запуска Ollama на ноутбуке ребования зависят исключительно от размера (количества параметров) модели, которую вы выберете.
Для комфортного программирования не нужны гигантские модели. Достаточно легковесных и умных кодинг-моделей вроде Qwen 2.5 Coder (1.5B или 7B) или DeepSeek Coder (1.5B или 6.7B).
Сценарий 1. Модели класса 1.5B (Рекомендуется для слабых и средних ноутбуков)
Примеры: qwen2.5-coder:1.5b, deepseek-coder:1.5b
Это идеальный вариант для вашего ноутбука, если вы хотите, чтобы ИИ работал мгновенно, не шумел вентиляторами и не тормозил систему.
Оперативная память (RAM): нужно всего около 2 ГБ свободного места в ОЗУ.
Вместе с запущенным Zed общие затраты составят менее 2.5 ГБ.
Место на диске: модель занимает всего ~1.1 ГБ.
Нагрузка на CPU: минимальная. Процессор Intel Raptor Lake будет генерировать текст со скоростью человеческого чтения или даже быстрее, практически не нагревая ноутбук.
Сценарий 2. Модели класса 7B (Для более сложных задач и развернутых ответов)
Примеры: qwen2.5-coder:7b, llama3.1:8b
Эти модели думают глубже и пишут более сложные алгоритмы, но требуют больше ресурсов.
Оперативная память (RAM):
требуется минимум 6–8 ГБ свободной ОЗУ строго под модель. Если на вашем ноутбуке всего 8 ГБ оперативной памяти, то системе станет тяжело. Если 16 ГБ — будет работать отлично.
Место на диске: файлы модели занимают от 4.5 до 5 ГБ.
Нагрузка на CPU: высокая. Процессор будет загружен на 100% во время генерации ответа, ноутбук начнет активно охлаждаться, а скорость вывода текста составит примерно 10–15 слов в секунду (что вполне комфортно для чтения, но медленнее, чем 1.5B).
Требования к памяти для Gemma-2-9B (квант Q4_K_M)
Для комфортной работы вам понадобится:
Оперативная память (ОЗУ/VRAM): Минимум 8 ГБ свободной памяти (лучше 12–16 ГБ, чтобы оставался запас под операционную систему и браузер).
Вес самого файла: Около 5.5 – 6.0 ГБ на жестком диске (SSD крайне рекомендован, на HDD модель будет сильно «заикаться» при генерации).
Общие требования к самому движку Ollama
Сам фоновый сервис Ollama в режиме ожидания (когда вы ничего не спрашиваете у ИИ) потребляет 0% CPU и всего около 50–100 МБ оперативной памяти. Она автоматически выгружает модель из ОЗУ в кэш через 5 минут бездействия, чтобы освободить память для вашей системы.
Шаг 1. Ручная установка Ollama (Без скриптов)
Поскольку вы настороженно относитесь к автоскриптам, установим Ollama самым прозрачным ручным способом через официальный бинарный файл.
Скачайте официальный архив движка для Linux в терминале:
curl -L https://ollama.com -o ollama-linux-amd64.tgz
Распакуйте его в уже созданную ранее локальную директорию ~/.local:
tar -C ~/.local -xzf ollama-linux-amd64.tgz
Проверьте, что утилита доступна:
ollama --version
Шаг 2. Запуск сервиса Ollama
Для работы ИИ утилита должна работать в фоновом режиме. Запустите сервер вручную в отдельной вкладке терминала (или в фоне):
ollama serve
(Оставьте этот терминал открытым. Сервер будет слушать локальный порт 127.0.0.1:11434).
Шаг 3. Скачивание лучшей модели для Python
Откройте новое окно терминала и скачайте специализированную модель qwen2.5-coder:7b (на данный момент это лучшая открытая модель для написания кода, превосходящая многие коммерческие аналоги):
ollama run qwen2.5-coder:7b
Начнется скачивание файла размером около 4.7 ГБ.
По завершении появится строка ввода >>>. Можете написать туда любой тестовый вопрос по Python, чтобы проверить скорость работы вашего процессора Intel Raptor Lake.
Для выхода из режима диалога введите /exit.
Шаг 4. Подключение Ollama к редактору Zed
Теперь заставьте встроенного агента Zed отправлять запросы в запущенную Ollama вместо облака.
Нажмите Ctrl + , чтобы открыть настройки settings.json.
Добавьте в конфигурационный JSON-файл блок интеграции с Ollama:
Пример промпта
Шаг 1. Отправляем запрос в панель ассистента ZedНажмите Ctrl + \ (откроется панель Assistant) и введите следующий запрос (модель отлично понимает русский язык):
«Напиши небольшую программу на языке Си, которая считывает данные из /proc/stat и высчитывает реальный процент загрузки процессора (CPU) раз в секунду.
Также напиши Bash-скрипт, который автоматически скомпилирует этот Си-файл через gcc, запустит его и проверит, установлена ли в системе утилита gcc. Если gcc нет, скрипт должен вывести ошибку.»
Шаг 2. Что сгенерирует модельМодель выдаст два независимых блока кода прямо в окно чата.
Блок 1. Код на Си (cpu_monitor.c)
Блок 2. Скрипт автоматизации на Bash (run.sh)
Шаг 3. Как запустить этот пример в Zed?
Поскольку модель выдаст готовые блоки, вы можете применить магию Zed AI:
Создайте в проекте пустой файл cpu_monitor.c и run.sh.
В окне чата ИИ нажмите кнопку «Insert into file» (или значок стрелочки поверх кода), и модель сама вставит текст в нужные вкладки.
Откройте встроенный терминал в Zed (Ctrl + ~), сделайте скрипт исполняемым (chmod +x run.sh) и запустите его: ./run.sh.
Модель полностью закроет вашу задачу: от логики работы с памятью в Си до системных проверок в Debian на Bash.
Точечное управление контекстом (Слеш-команды)
Чтобы модель не тратила лишние токены и не путалась в огромном проекте, вы можете явно «скармливать» ей нужные куски системы с помощью быстрых слеш-команд в чате:
https://datalakehousehub.com/blog/2026-03-context-management-zed/
/file [путь] — передать агенту содержимое конкретного файла
/tab — прикрепить код из всех открытых сейчас вкладок
/diagnostics — автоматически передать агенту все текущие ошибки компиляции или предупреждения от вашего Python LSP, чтобы он их исправил
/search [запрос] — запустить поиск по проекту и отдать ИИ результаты.
Для вызова агента используется панель Assistant Panel (хоткей Ctrl + Shift + ? или Ctrl + \).
изоляция агента
Безопасность (за счет утилиты Bubblewrap)
Поскольку агент имеет доступ к терминалу и может выполнять команды, бинарник zed-bwrap изолирует агента в «песочнице».
Вы можете гибко настраивать профили безопасности (Profiles):
Write — агенту разрешено всё (читать, писать, запускать тесты).
Ask — режим «только чтение» (агент видит код, отвечает на вопросы, но физически не может изменить ни одного файла на диске).
Minimal — режим обычного чата без доступа к вашей системе
Если ваш сервер имеет выход в интернет, но вы хотите полностью заблокировать агенту Zed доступ в сеть, это можно сделать со стопроцентной гарантией.
Так как вы устанавливаете бинарные файлы вручную, мы можем задействовать встроенный в ядро Linux механизм пространств имен (Namespaces).
Утилита bubblewrap (zed-bwrap), которую мы настроили на сервере, создана как раз для этого.
По умолчанию она изолирует ИИ, но если запустить её со специальным флагом, ядро Linux создаст для процесса агента персональную сетевую заглушку, полностью отрезав его от реальных сетевых интерфейсов сервера.
Вот как это настроить в зависимости от того, как вы запускаете задачи и Ollama:
Вариант 1. Автоматическая блокировка сети через настройки Zed
Разработчики Zed встроили управление сетевым доступом агента прямо в конфигурацию.
Чтобы запретить встроенному агенту (zed-bwrap) на сервере выходить в интернет, откройте файл настроек проекта на сервере .zed/settings.json и добавьте туда строгий профиль безопасности:
Флаг --unshare-net — это системная команда для ядра Linux. Она создает для агента пустое сетевое пространство имен (внутри которого есть только виртуальная петля lo без маршрутов наружу).
Агент физически не сможет отправить в интернет ни один байт вашего кода.
Вариант 2. Изоляция самого движка Ollama на сервере
Даже если агент заблокирован, сама модель Ollama на сервере теоретически может иметь доступ в сеть (например, для проверки обновлений моделей).
Если вы хотите, чтобы Ollama на сервере тоже была полностью слепа к интернету, запускайте её через системную утилиту unshare:
unshare -n -r ollama serve
Флаг -n (--net) полностью изолирует сетевой стек процесса.
Флаг -r (--map-root-user) позволит запустить процесс без прав sudo.
В таком режиме Ollama будет доступна строго локально для вашего текстового редактора Zed (через внутренний сокет/петлю 127.0.0.1), но не сможет связаться ни с одним внешним сайтом в интернете.
Вариант 3. Если агент запускает Bash-скрипты через Tasks
Если вы боитесь, что агент напишет Bash-скрипт (например, через нашу систему задач tasks.json) и этот скрипт попытается что-то скачать из сети,
добавьте утилиту unshare прямо в команду запуска вашей задачи на сервере:
При такой конфигурации, даже если ИИ-агент сгенерирует вредоносный Python-код с инструкцией urllib.request.urlopen(),
при нажатии Super + Z этот код запустится в сетевом вакууме и упадет с ошибкой Network is unreachable, защитив ваши данные на 100%.
Какой из вариантов защиты вы хотите применить — ограничить только встроенного агента через настройки Zed или полностью изолировать службу Ollama на сервере с помощью команды unshare?
Напишите, и если выберете unshare, я помогу оформить её в виде удобного ярлыка запуска для сервера.
Шаг 1. Настройка встроенного агента Zed (через настройки)
Добавьте флаг песочницы --unshare-net в конфигурационный файл проекта на сервере.
Откройте или создайте файл .zed/settings.json на сервере и пропишите:
Этот параметр заставит системный бинарник zed-bwrap полностью отключить сеть для ИИ-агента в момент его инициализации.
Шаг 2. Изоляция службы Ollama (через Systemd)
Поскольку Ollama должна постоянно работать на сервере в фоновом режиме, лучше всего оформить её запуск без сети через системную службу Systemd.
Это гарантирует, что даже после перезагрузки сервера ИИ запустится автоматически и будет на 100% отрезан от интернета.
Поскольку мы настраиваем всё вручную и без лишних системных прав, создадим пользовательскую службу (User Service):
Создайте папку для пользовательских служб на сервере:
mkdir -p ~/.config/systemd/user/
Создайте файл конфигурации службы:
vim ~/.config/systemd/user/ollama-isolated.service
(Замените /home/имя_пользователя/ на ваш реальный путь к домашней директории на сервере, где лежит бинарник ollama).
Перезапустите менеджер служб и включите автозапуск:
# Обновляем конфигурацию системного демона
systemctl --user daemon-reload
# Включаем и запускаем изолированную Ollama
systemctl --user enable ollama-isolated.service
systemctl --user start ollama-isolated.service
Как проверить, что всё сработало?
Проверка Ollama: Выполните на сервере команду просмотра статуса службы:
systemctl --user status ollama-isolated.service
Если служба активна (running), попробуйте изнутри её процесса постучаться в сеть. Для этого посмотрите её лог.
Ollama при старте всегда пытается проверить наличие обновлений.
В логах вы увидите ошибки вроде dial tcp: lookup ollama.com: Temporary failure in name resolution. Это значит, что изоляция работает успешно.
Проверка связи с ноутбуком:
Несмотря на то, что Ollama полностью изолирована от интернета, ваш ноутбук по-прежнему сможет общаться с ней благодаря нашему SSH-туннелю (LocalForward),
так как SSH подключается к вашему пользователю, у которого есть доступ к локальному сокету службы.
Команда loginctl enable-linger исправляет стандартное поведение Debian, при котором система автоматически завершает все фоновые процессы и службы пользователя (включая запущенную нами Ollama),
как только вы закрываете SSH-сессию или отключаетесь от сервера.
Когда вы включаете режим «задерживания» (lingering), система выделяет вашему пользователю постоянный независимый менеджер служб.
Ollama продолжит работать и отвечать на запросы ИИ-агента Zed, даже если ваш ноутбук выключен, а SSH-соединение разорвано.
Выполните эту команду на вашем мощном сервере:
sudo loginctl enable-linger имя_пользователя
Как проверить, что режим активирован?
Чтобы убедиться, что сервер теперь не закроет Ollama после вашего ухода, выполните диагностическую команду:
loginctl user-status имя_пользователя
В выводе терминала найдите строчку Linger: yes. Если она присутствует, настройка завершена.
Теперь вы можете смело закрывать терминал на ноутбуке — изолированный искусственный интеллект на сервере будет работать непрерывно в режиме 24/7.
Запуск серверной части Zed и Ollama внутри Docker или виртуалки QEMU/KVM на сервере даст вам максимальный уровень изоляции (даже выше, чем утилиты unshare и bwrap на голом железе).
Вы сможете полностью контролировать сетевые интерфейсы на уровне виртуального коммутатора и гарантировать, что код проекта не покинет контейнер.