Как запустить OpenCode на VPS
Инструкция по установке OpenCode на VPS. Узнайте, как настроить tmux, создать непривилегированного пользователя и безопасно сохранить ваш API key.
Что такое OpenCode и что вы настраиваете
OpenCode — это open source AI агент для написания кода, предназначенный для работы в терминале. Вы запускаете его внутри директории проекта. Он анализирует ваш код, предлагает изменения, редактирует файлы и выполняет команды через терминальный пользовательский интерфейс (TUI). Проект распространяется под лицензией MIT и поддерживает более 75 провайдеров моделей. По состоянию на середину 2026 года проект имеет около 165 000 звезд на GitHub, что делает его самым популярным open source агентом для кодинга. Для запуска 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 работает в интерактивном режиме, поэтому пользователю необходимы полноценная shell и домашний каталог:
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 key в приватный файл
OpenCode требует ключ для используемого вами провайдера моделей. Этот ключ может быть использован для списания средств, поэтому обращайтесь с ним как с паролем. Создайте файл с правами доступа 600, доступный только пользователю opencode. Храните ключ в этом файле, а не вводите его в командах, чтобы он не сохранился в истории shell:
install -m 600 /dev/null ~/opencode.env
nano ~/opencode.envЗапишите в файл переменную вашего провайдера, например ANTHROPIC_API_KEY=... или аналогичную для вашего провайдера, так как OpenCode использует стандартные переменные окружения провайдеров. Загрузите файл в ваш shell перед запуском агента:
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 тем же способом.
Подключите модель
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 только после утверждения плана. При работе на сервере первый проход в режиме «только чтение» является надежным способом предотвращения ошибок.
Область поражения
Агент для написания кода не является пассивным. Четко определите, что данная конфигурация позволяет, а что — нет. Она допускает повреждение файлов: пользователь opencode владеет только своей домашней директорией, поэтому изменения и удаления ограничены этим пределом. Она допускает утечку учетных данных: ключ хранится в одном файле с правами 600 в одной учетной записи. Она не ограничивает легитимные возможности учетной записи; если в директории проекта находятся учетные данные для деплоя в production, агент сможет их использовать. Полностью исключите такие данные из учетной записи агента.
В отличие от шлюзовых агентов, таких как OpenClaw, OpenCode является интерактивной терминальной программой, а не демоном. Программа не открывает порты для прослушивания и не является долгоживущим сервисом. Для самого агента не требуется создавать unit-файл systemd или настраивать правила firewall для портов. Изоляция обеспечивается учетной записью пользователя и директорией проекта. Именно поэтому первый раздел данного руководства является наиболее важным.
Сервер все равно требует стандартного обслуживания, так как VPS для кодинга остается публичным сервером. Необходимо настроить SSH только по ключам с отключенным входом для root, как описано в SSH hardening on a 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 после закрытия ноутбука?
Запускайте OpenCode внутри tmux на VPS. Запустите агент в именованной сессии с помощью tmux new -s opencode. Отключитесь от сессии нажатием Ctrl-b, затем d. Сессия продолжит работу на сервере после разрыва SSH-соединения. Вы можете вернуться к ней в любое время с помощью tmux attach -t opencode; диалог и текущие задачи будут сохранены. Перезагрузка сервера завершает сессию, поэтому после перезагрузки нужно запустить новую.
Безопасно ли разрешать OpenCode выполнять команды на моем VPS?
Это безопасно при соблюдении ограничений. Создайте для OpenCode отдельного непривилегированного пользователя без прав sudo. Храните проекты в git, чтобы иметь возможность отменить любые изменения. Установите права 600 для файла с API-ключом. Сначала используйте агент Plan для ознакомления с кодом в режиме чтения, и только затем разрешайте агенту Build вносить изменения. В таком случае агент сможет повредить только файлы, принадлежащие его учетной записи, а остальная часть сервера останется защищенной.
В чем разница между OpenCode и Claude Code?
OpenCode — это решение с открытым исходным кодом (лицензия MIT), не зависящее от конкретного провайдера. Через один интерфейс доступно более 75 провайдеров моделей, включая локальные. Claude Code — это терминальный агент от Anthropic, оптимизированный для работы с моделями Anthropic. Если вам нужен единый инструмент для множества провайдеров или полностью автономный стек с локальной моделью, выбирайте OpenCode. Оба решения эффективно работают на VPS внутри tmux с использованием непривилегированного пользователя.