SSD Nodes Learn Hosting plans →
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-26

Как установить OpenCode на VPS: пошаговое руководство

Узнайте, как безопасно развернуть AI-агент OpenCode на удаленном сервере. Инструкция включает создание непривилегированного пользователя, настройку tmux и защиту API-ключей.

Что такое OpenCode и что именно вы настраиваете

OpenCode — это AI-агент для написания кода с открытым исходным кодом, предназначенный для работы в терминале. Вы запускаете его внутри директории проекта, после чего он анализирует код, предлагает изменения, редактирует файлы и выполняет команды — всё это через терминальный пользовательский интерфейс (TUI). Проект распространяется по лицензии MIT, поддерживает подключение к более чем 75 провайдерам моделей и, имея около 165,000 звезд на GitHub по состоянию на середину 2026 года, является самым популярным AI-агентом для программирования с открытым кодом. Чтобы запустить OpenCode на VPS, его необходимо установить от имени отдельного непривилегированного пользователя, сохранить API-ключ модели в защищенном файле и запустить агент внутри tmux, чтобы сессия сохранялась при разрыве соединения. Данное руководство описывает именно этот процесс в указанном порядке.

Одно уточнение по названиям поможет избежать путаницы. Канонический репозиторий находится по адресу anomalyco/opencode, его сопровождает команда Anomaly (ранее известная как SST), а ранее проект располагался по адресу sst/opencode. На GitHub также существует более старый и не связанный с этим проект под названием opencode-ai/opencode, поэтому убедитесь, что вы читаете документацию нужного проекта. Официальный сайт — opencode.ai.

Зачем запускать OpenCode на VPS

Сессия агента для написания кода длится долго. OpenCode может тратить много минут на рефакторинг или прогон набора тестов, и если агент запущен на вашем ноутбуке, закрытая крышка или разрыв Wi-Fi прервут сессию в процессе выполнения задачи. На VPS внутри tmux агент продолжает работу после вашего отключения, а вы можете подключиться позже, чтобы ознакомиться с результатами. Это тот же подход, что и при запуске Claude Code на VPS с использованием tmux, и это самое значительное улучшение условий работы при переносе агента с локального ноутбука.

Вторая причина — размещение. VPS находится близко к коду, который вы разворачиваете: репозиторий, инструменты сборки, тестовая база данных и часто среда staging уже находятся там или по соседству. Агент, который редактирует код и запускает тесты, работает эффективнее всего на той машине, где эти тесты действительно выполняются. А поскольку сервер находится под вашим контролем, вы можете намеренно предоставить агенту изолированную среду, что и описывается в следующем разделе.

Если вы всё ещё выбираете инструмент, в статье запуск AI-агента для написания кода на VPS приводится сравнение более широкого спектра решений, включая Aider и Goose.

Создание отдельного пользователя для OpenCode

Честный подход к безопасности: агент для написания кода редактирует файлы и выполняет команды. Это его прямая задача, но в этом же кроется и риск. OpenCode будет запускать сборки, тесты и любые shell-команды, которые потребуются для выполнения задачи; суждения модели хороши, но не идеальны. Учетная запись, от имени которой работает агент, ограничивает область воздействия вредоносной команды, поэтому не запускайте его от имени root и не используйте для этого учетную запись администратора сервера.

В отличие от фонового агента, OpenCode является интерактивным, поэтому его пользователю требуются полноценная оболочка и домашний каталог:

sudo useradd --create-home --shell /bin/bash opencode
sudo -iu opencode

Храните проекты, с которыми должен работать агент, в /home/opencode, выполнив их клонирование от имени этого пользователя. Не предоставляйте этой учетной записи прав sudo. Если агент выполнит деструктивную команду, он сможет повредить только то, что принадлежит этой учетной записи. Это тот же принцип, что и при запуске сервисов от имени непривилегированного пользователя. Работайте внутри git-репозитория: он превращает любое неудачное изменение в git revert, а не в безвозвратную потерю данных.

Установка OpenCode

Проект предлагает два способа установки. Скрипт установки — самый быстрый вариант, а его запуск от имени пользователя opencode позволяет хранить все файлы в домашнем каталоге этого пользователя:

curl -fsSL https://opencode.ai/install | bash

Здесь действует обычное правило curl | bash, как и везде: на сервере, который вы обслуживаете, сначала скачайте скрипт, изучите его содержимое, а затем запустите. После завершения установки откройте новую оболочку (shell), чтобы изменения в переменной PATH, внесенные установщиком, вступили в силу, затем проверьте работу бинарного файла:

opencode --version

Если вы предпочитаете использовать менеджер пакетов и Node.js уже установлен в системе, способ через npm позволит установить тот же инструмент глобально. Это добавит бинарный файл opencode в PATH для всех пользователей:

sudo npm install -g opencode-ai

В любом случае проверка одинакова: opencode --version выводит номер версии. Ошибка command not found после запуска скрипта установки означает, что текущая оболочка еще не обновила PATH, поэтому выйдите из системы и войдите снова под пользователем opencode.

Размещение API-ключа в защищенном файле

OpenCode требует ключ для используемого провайдера моделей. Этот ключ позволяет расходовать ваши средства, поэтому относитесь к нему как к паролю. Создайте файл, доступный для чтения только пользователю opencode, с правами доступа 600. Храните ключ в этом файле, а не вводите его в командах, где он сохранится в истории оболочки:

install -m 600 /dev/null ~/opencode.env
nano ~/opencode.env

Добавьте в файл переменную вашего провайдера, например ANTHROPIC_API_KEY=... или её аналог, так как OpenCode считывает стандартные переменные окружения провайдеров. Загрузите файл в оболочку перед запуском агента:

set -a; source ~/opencode.env; set +a

В OpenCode также предусмотрен интерактивный способ: команда /connect внутри TUI поможет вам добавить провайдера и сохранит учетные данные в ~/.local/share/opencode/auth.json в домашнем каталоге пользователя. Если вы используете этот метод, убедитесь в приватности файла с помощью chmod 600 ~/.local/share/opencode/auth.json. Оба способа позволяют избежать появления ключа в командной строке; выберите один и придерживайтесь его.

Запуск OpenCode внутри tmux

tmux делает настройку VPS по-настоящему полезной, так как сессия tmux продолжает работать после завершения SSH-соединения. Запустите сессию, перейдите в каталог проекта и запустите агент:

tmux new -s opencode
cd ~/my-project
opencode

Вы увидите интерфейс TUI с командной строкой внизу и названием проекта. Дайте агенту задачу на обычном языке, и он начнет читать файлы и предлагать изменения. Чтобы выйти, отсоединитесь комбинацией клавиш Ctrl-b, а затем d — агент продолжит работу, даже если вы закроете ноутбук. Позже можно вернуться к сессии командой:

tmux attach -t opencode

Сессия, история диалога и все запущенные задачи останутся в том же состоянии, в котором вы их оставили. Это сохраняется при разрывах соединения, но не при перезагрузке сервера, поэтому после перезагрузки нужно запустить новую сессию tmux тем же способом. Ничто не мешает вам открыть второе окно tmux и запустить еще один агент параллельно с первым. Сессии OpenCode остаются независимыми друг от друга, в то время как сессии Claude Code на одном сервере могут обмениваться сообщениями, что является другим способом разделения задачи на части.

Укажите модель

OpenCode не зависит от конкретного провайдера. Он использует AI SDK и каталог Models.dev для поддержки более 75 провайдеров, поэтому один и тот же инструмент работает с Anthropic, OpenAI, Google и десятками других, включая локальные серверы. Самый быстрый путь — команда /connect внутри TUI, которая выводит список провайдеров и обрабатывает учетные данные. Для настройки, которую можно зафиксировать в системе контроля версий и воспроизвести, создайте файл opencode.json в корне проекта и укажите модель в параметре provider/model-id:

{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-20250514"
}

Локальная модель работает через тот же файл, так как любой сервер, совместимый с OpenAI, можно объявить в качестве провайдера. Если вы запускаете модель через Ollama на том же VPS, конфигурация указывает на его локальный API, а имя модели соответствует тому, что выводит ollama list на вашей машине:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (local)",
      "options": { "baseURL": "http://127.0.0.1:11434/v1" },
      "models": { "your-model-name": { "name": "Local coding model" } }
    }
  }
}

Стоит с первого дня выработать одну встроенную привычку. OpenCode поставляет два агента, между которыми можно переключаться клавишей Tab: Build — агент по умолчанию с полным доступом, и Plan — агент, который отключает возможность внесения изменений. Начинайте новую задачу в режиме Plan, позвольте агенту прочитать код и предложить подход, и переключайтесь в режим Build только тогда, когда вы согласны с планом. На сервере первый проход в режиме «только чтение» — это недорогая страховка. Claude Code оформляет аналогичное решение как режимы разрешений, а не как агентов, и его переход на автоматический режим по умолчанию стоит изучить, если вы используете оба инструмента, поскольку режим, в котором начинается сессия, определяет, насколько сильно агент может менять систему без вашего присмотра.

Радиус поражения

Агент для написания кода не является пассивным инструментом, поэтому четко определим, что входит, а что не входит в данную конфигурацию. Она включает риск повреждения файлов: пользователь opencode владеет только своей домашней директорией, поэтому любые изменения или удаления ограничены этой границей. Она включает риск раскрытия учетных данных: ключ хранится в одном файле с правами 600 в рамках одной учетной записи. Конфигурация не ограничивает легитимные действия учетной записи, поэтому, если в директории проекта находятся учетные данные для развертывания в production, агент сможет их использовать; держите такие данные вне учетной записи агента.

В отличие от шлюзового агента, такого как OpenClaw, OpenCode — это интерактивная терминальная программа, а не демон. Она не открывает порты для прослушивания и не является долгоживущим сервисом, поэтому для самого агента не нужно создавать unit-файл systemd или настраивать firewall для портов. Изоляция обеспечивается учетной записью пользователя и директорией проекта, поэтому первый раздел этого руководства является наиболее важным.

Сервер по-прежнему требует стандартных мер защиты, так как VPS для разработки остается публичным сервером: используйте SSH только по ключам с отключенным входом для root, как описано в укрепление SSH на VPS, настройте firewall с политикой default-deny и регулярно устанавливайте обновления. Также проверяйте то, что создает агент. Читайте diff-файлы перед отправкой изменений (push), точно так же, как вы проверяли бы pull request от нового участника проекта, поскольку именно вы отвечаете за развертывание результата.

Наконец, поддерживайте актуальность самого инструмента. OpenCode выпускает обновления часто, и они содержат исправления, важные для программы, которая выполняет команды на вашем сервере. Обновление выполняется тем же способом, что и установка: повторно запустите скрипт установки от имени пользователя opencode или выполните sudo npm update -g opencode-ai, если вы устанавливали через npm, а затем подтвердите новую версию с помощью opencode --version. Минута обслуживания время от времени обходится дешевле, чем отладка поведения, которое уже исправлено в сборке месячной давности.

FAQ

Может ли OpenCode использовать локальную модель вместо платного API?

Да. OpenCode воспринимает любой сервер, совместимый с OpenAI, как провайдер. Поэтому модель, запущенная через Ollama на том же VPS, будет работать: укажите провайдера в opencode.json с локальным baseURL и именем модели, которое сообщает Ollama. Основная сложность заключается в аппаратных ресурсах: для полноценной работы с кодом требуется значительный объем оперативной памяти, поэтому подбирайте конфигурацию сервера под модель до её загрузки.

Как поддерживать работу OpenCode после закрытия ноутбука?

Запускайте его внутри tmux на VPS. Запустите агент в именованной сессии с помощью tmux new -s opencode, отсоединитесь комбинацией клавиш Ctrl-b, а затем d. Сессия продолжит работу на сервере после завершения вашего SSH-соединения. Вы можете вернуться к ней в любое время через tmux attach -t opencode, и история диалога вместе с запущенными задачами останется на месте. Перезагрузка сервера завершает сессию, поэтому после перезагрузки нужно запускать новую.

Безопасно ли разрешать OpenCode выполнять команды на моем VPS?

Это безопасно при условии изоляции. Создайте для OpenCode отдельного непривилегированного пользователя без прав sudo, храните проекты в git для возможности отката любых изменений, сохраняйте API key в файле с правами доступа 600 и используйте агент Plan для предварительного анализа в режиме «только чтение», прежде чем позволять агенту Build вносить изменения. В этом случае агент сможет повредить только то, что принадлежит его учетной записи, а остальная часть сервера останется в безопасности.

В чем разница между OpenCode и Claude Code?

OpenCode — это проект с открытым исходным кодом (лицензия MIT), не привязанный к конкретному поставщику. Он подключается к более чем 75 провайдерам моделей, включая локальные, через единый интерфейс. Claude Code — это собственный терминальный агент от Anthropic, созданный для работы с моделями Anthropic. Если вам нужен один инструмент для работы с множеством провайдеров или полностью автономный стек с локальной моделью, OpenCode — подходящий выбор. Оба инструмента хорошо работают на VPS внутри tmux при одинаковой настройке с непривилегированным пользователем.