VibeCoderzVibeCoderz
Все статьи
2026/09/0410 мин чтения

AI-агент 24/7 на VPS в 2026 через Docker, systemd и PM2

Содержание (10)+

AI-агент на VPS запускают тремя способами: через Docker-контейнер, через systemd-сервис или через PM2. Docker подходит, если агент упакован в образ и должен переезжать между серверами. Systemd лучше для скриптов на Python и Go, которые уже лежат на сервере. PM2 забирает Node.js-процессы: ботов, API-обвязки агентов, воркеры очередей. Ниже пошагово разбираем все три варианта, автоперезапуск при падении и логирование.

В статье: сравнение Docker, systemd и PM2 для AI-агента, три готовых конфига с автоперезапуском, настройка логов через journalctl и pm2 logs, а также реальные цены на VPS в 2026 году. Дочитаете за 12 минут и запустите агента за вечер.

Зачем AI-агенту вообще нужен VPS, а не мой компьютер

Локальный запуск AI-агента ломается на первом же сне ноутбука. VPS держит процесс живым круглосуточно, даже когда экран выключен и вы спите.

Агент на домашнем компьютере умирает при перезагрузке, засыпании и разрыве Wi-Fi. Он теряет память задач, обрывает подключение к Telegram-боту и требует, чтобы вы каждое утро вручную нажимали "запустить". На VPS процесс работает непрерывно: сервер не спит, не перегревается и не выключается, когда вы закрываете крышку ноутбука.

Разница ощущается уже на второй день. Локальный запуск живёт до первого перезапуска роутера. Серверный процесс переживает и перезагрузку хоста, и падение самого агента, если настроить автоперезапуск. Дальше в статье покажем, как это выглядит на трёх разных инструментах: Docker, systemd и PM2.

Изображение

Отдельный момент для агентов с доступом к зарубежным моделям. Если агент работает через Kimi, GPT или Claude API, а вы находитесь в России, локация сервера тоже важна. Европейский VPS без блокировок часто оказывается стабильнее, чем попытка достучаться до API с домашнего IP.

Docker, systemd или PM2 что выбрать для AI-агента на VPS

Выбор зависит от того, во что упакован ваш агент. Готовый Docker-образ берите Docker, самописный Python-скрипт systemd, Node.js-бота PM2.

Три инструмента решают одну задачу по-разному. Docker AI агент разворачивает как изолированный контейнер со всеми зависимостями внутри. Systemd сервис бота встраивает процесс прямо в операционную систему Linux. PM2 Node.js настройка занимает 5 минут и добавляет веб-панель мониторинга бесплатно.

Изображение
КритерийDockersystemdPM2
Подходит дляГотовых образов, микросервисовPython, Go, любых бинарниковNode.js, npm-проектов
Автоперезапускrestart: alwaysRestart=on-failurepm2 startup + save
Сложность стартаСредняя, нужен DockerfileСредняя, нужен unit-файлНизкая, одна команда
Изоляция окруженияПолнаяНет, общая с ОСНет, общая с ОС
Логиdocker logsjournalctlpm2 logs
Мониторинг из коробкиDocker Desktop, cAdvisorНетpm2 monit, pm2.io

Часто эти три штуки комбинируют. Node.js-часть агента крутится под PM2, а тяжёлая модель или векторная база сидит в Docker-контейнере рядом. Ничего страшного, если на одном VPS уживаются все три подхода одновременно.

Как задеплоить AI-агента в Docker-контейнере

Docker упаковывает агента вместе с зависимостями в один образ. Запуск с флагом restart: always гарантирует, что контейнер поднимется сам после падения сервера.

Изображение

Готовые платформы для AI-агентов вроде Paperclip или n8n распространяются именно как Docker-образы, и деплой сводится к одной команде. Для собственного агента процесс похож: пишете Dockerfile, собираете образ, запускаете контейнер.

docker build -t my-ai-agent .
docker run -d \
  --name ai-agent \
  --restart always \
  --env-file .env \
  -v $(pwd)/data:/app/data \
  my-ai-agent

Флаг --restart always перезапускает контейнер и после падения процесса, и после перезагрузки VPS. Отдельно стоит вынести переменные окружения в .env и не зашивать API-ключи в образ. Это правило безопасности, а не рекомендация "для галочки": ключи в образе утекают вместе с ним при любой публикации в реестр.

Для нескольких сервисов сразу (сам агент, база данных, векторное хранилище) удобнее docker-compose. Один файл docker-compose.yml с политикой restart: unless-stopped поднимает всю связку одной командой docker compose up -d и переживает перезагрузку сервера без ручного вмешательства.

Как запустить бота через systemd сервис на VPS

Systemd превращает Python-скрипт или бинарник в фоновую службу Linux с автозапуском при загрузке сервера. Unit-файл на 15 строк заменяет screen и nohup.

Systemd сервис бота настраивается через unit-файл в /etc/systemd/system/. Вот рабочий шаблон для Telegram-бота на Python:

[Unit]
Description=Telegram AI Agent
After=network.target

[Service]
Type=simple
User=agent
WorkingDirectory=/home/agent/bot
Environment=PYTHONUNBUFFERED=1
ExecStart=/home/agent/bot/venv/bin/python main.py
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Строка After=network.target важна отдельно: без неё systemd может попытаться поднять бота раньше, чем сервер получит сеть, и агент упадёт с ошибкой подключения. WorkingDirectory обязателен, если код обращается к файлам по относительным путям, а PYTHONUNBUFFERED=1 включает вывод логов в реальном времени, без буферизации.

Изображение

После сохранения файла сервис активируют тремя командами:

sudo systemctl daemon-reload
sudo systemctl enable ai-agent
sudo systemctl start ai-agent

Команда enable привязывает автозапуск бота на сервере к загрузке ОС, а start поднимает процесс прямо сейчас. Если после systemctl status ai-agent видите статус failed, почти всегда дело в неправильном пути к интерпретатору Python или в правах доступа к рабочей папке.

На Fedora и других дистрибутивах с включённым SELinux systemd может блокировать доступ приложения к файлам даже с корректными правами. Правильное решение не отключать SELinux целиком, а настроить контекст безопасности для папки бота через restorecon или chcon.

Как настроить PM2 для Node.js AI-агента

PM2 Node.js настройка занимает одну команду для запуска и одну для автозапуска при загрузке сервера. Плюс встроенная веб-панель для мониторинга CPU и памяти.

PM2 остаётся самым быстрым способом поднять Node.js-агента на VPS без демона Docker и без unit-файлов systemd.

npm install -g pm2
pm2 start index.js --name ai-agent
pm2 startup
pm2 save

Команда pm2 startup генерирует systemd-юнит под капотом и печатает команду для его активации, а pm2 saveсохраняет текущий список процессов, чтобы PM2 поднял их заново после перезагрузки VPS. Без этого шага агент переживёт краш процесса, но не переживёт ребут сервера.

Изображение

Дальше полезны три команды на каждый день:

  • pm2 ls показывает таблицу со статусом, uptime и числом рестартов для всех процессов сразу
  • pm2 logs ai-agent открывает поток логов конкретного бота в реальном времени
  • pm2 monit даёт живой график CPU и памяти прямо в терминале

Если после обновления .env агент продолжает работать по старым переменным, обычная причина в том, что PM2 кеширует окружение при первом старте. Перезапускать нужно с флагом --update-env:

pm2 restart ai-agent --update-env
Максим: «У меня был случай, когда бот падал раз в пару часов и я не понимал почему. Сидел до пяти утра, правил одну функцию, которая крашилась только на реальном трафике. В моменте хотелось всё бросить, но проблема была решаемая, и я досидел до конца. Оказалось, банальная утечка памяти в цикле опроса API.»

Как настроить автоперезапуск при падении агента

Автоперезапуск при падении настраивается по-разному в каждом инструменте, но суть одна: процесс не должен требовать ручного вмешательства после ошибки.

В Docker это флаг политики перезапуска при запуске контейнера: --restart always поднимает контейнер и после краша, и после ребута VPS, а --restart on-failure:5 ограничивает число попыток пятью, если процесс падает в бесконечном цикле.

В systemd за это отвечает пара строк в unit-файле: Restart=on-failure плюс RestartSec=5, где вторая цифра задаёт паузу перед повторным стартом. Без паузы сервис может уйти в быстрый цикл падений и перегрузить сервер бесконечными попытками запуска.

В PM2 автоперезапуск включён по умолчанию сразу после pm2 start, дополнительно настраивать ничего не нужно. Отдельно PM2 умеет перезапускать процесс по превышению памяти:

pm2 start index.js --name ai-agent --max-memory-restart 500M

Это спасает от ситуации, когда агент постепенно съедает всю оперативку сервера из-за утечки и в итоге роняет весь VPS, а не только себя.

Изображение

Как настроить логирование чтобы не терять данные при сбое

Без нормального логирования диагностика падения агента превращается в гадание. У каждого инструмента свой встроенный способ смотреть логи без сторонних сервисов.

Docker пишет логи контейнера в свой драйвер, и посмотреть их можно командой docker logs -f ai-agent --tail 100. Для продакшена стоит ограничить размер логов заранее через параметр --log-opt max-size=10m, иначе логи разрастутся и займут весь диск за несколько недель непрерывной работы.

Systemd отправляет вывод сервиса в журнал systemd, и достать его помогает journalctl -xu ai-agent -f. Флаг -f держит поток открытым, как tail -f, а -x добавляет пояснения к кодам ошибок систем. Именно поэтому переменная PYTHONUNBUFFERED=1 из предыдущего раздела так важна: без неё Python буферизует вывод, и journalctl показывает логи с задержкой или вообще не показывает print().

PM2 хранит логи в ~/.pm2/logs/ отдельными файлами для stdout и stderr на каждый процесс. Команда pm2 logsсобирает их все в единый поток в терминале, а pm2 flush чистит накопленные логи, если они разрослись.

Изображение

Сколько стоит VPS для AI-агента в 2026 году

Минимальный VPS под одного AI-агента стоит от 400 до 700 рублей в месяц. Под многоагентную систему с несколькими процессами нужен план мощнее, от 1500 рублей.

Для одного Telegram-бота или простого AI-агента хватает младшего тарифа: 1 vCPU и 1-2 ГБ RAM. Для системы из нескольких агентов с оркестрацией, как в связке Hermes или OpenClaw, нужен запас по памяти, потому что каждый агент держит свой контекст и очередь задач одновременно.

Тип нагрузкиКонфигурацияПримерная цена в месяц
Один бот на PM21 vCPU, 1 ГБ RAM400-530 руб
Один AI-агент с моделью через API1-2 vCPU, 2 ГБ RAM700-1000 руб
Несколько агентов, оркестрация2-4 vCPU, 4-8 ГБ RAM1500-3000 руб
Docker с базой и векторным хранилищем4 vCPU, 8 ГБ RAMот 3000 руб

Российские провайдеры вроде Timeweb Cloud держат вход в VPS от 477 до 530 рублей в месяц с почасовой тарификацией, что удобно для тестового запуска агента на пару дней перед полноценным деплоем. Для агентов, завязанных на зарубежные модели, часто берут сервер в европейской локации, чтобы не упираться в блокировки при обращении к API.

Изображение

Отдельно стоит закладывать бюджет не только на сервер, но и на подписку к модели. По опыту авторов вайбкодинг-сообщества, связка VPS плюс подписка на "мозги" агента обходится примерно в 3000 рублей в месяц, что заметно дешевле найма человека на аналогичные задачи.

Какие ошибки чаще всего убивают AI-агента на VPS

Большинство падений агента на сервере не связаны с самим AI, а с базовой настройкой окружения: правами, переменными и отсутствием паузы между рестартами.

Первая частая ошибка: агент запущен в обычном терминале через python main.py без screen, tmux, Docker, systemd или PM2. Закрыли SSH-сессию, процесс умер вместе с ней. Это самая частая причина, почему бот "работал вчера, а сегодня не отвечает".

Вторая: секреты и API-ключи зашиты прямо в коде или в Docker-образе вместо .env-файла. Это не только риск безопасности, но и боль при обновлении: чтобы поменять ключ, приходится пересобирать весь образ заново.

Третья: нет паузы между попытками рестарта. Если агент падает мгновенно из-за ошибки конфигурации, а RestartSec не задан, systemd или Docker уходят в цикл из десятков рестартов в минуту и забивают журнал логами вместо реальной диагностики.

Четвёртая: никто не смотрит логи, пока агент не перестанет отвечать. Настройте хотя бы простой мониторинг: UptimeRobot бесплатно пингует сервер каждые 5 минут и присылает уведомление, если агент перестал отвечать на запросы.

Изображение

Частые вопросы про запуск AI-агента на VPS

Что делать, если VPS перезагрузился, а агент не поднялся сам? Проверьте, включён ли автозапуск: для Docker нужен флаг --restart always или unless-stopped, для systemd команда systemctl enable, для PM2 связка pm2 startup плюс pm2 save. Без этих шагов процесс переживёт краш, но не переживёт перезагрузку сервера.

PM2 или systemd что лучше для одного Telegram-бота на Node.js? Для Node.js-бота PM2 обычно быстрее в настройке: одна команда для старта и встроенный мониторинг без дополнительных утилит. Systemd выигрывает, если на сервере уже крутятся другие сервисы и вы хотите унифицировать управление через один инструмент ОС.

Нужен ли Docker, если бот уже работает через PM2? Не обязательно. Docker добавляет изоляцию окружения и упрощает перенос на другой сервер, но для одного бота это часто избыточно. Docker имеет смысл, когда вокруг агента есть база данных, векторное хранилище или несколько сервисов, которые нужно поднимать вместе.

Сколько стоит VPS для AI-агента в месяц? Для одного простого бота хватает тарифа от 400 до 700 рублей в месяц. Многоагентная система с оркестрацией и несколькими процессами требует сервера мощнее, обычно от 1500 рублей в месяц.

Как посмотреть логи агента, если он упал ночью? Для Docker команда docker logs -f ai-agent, для systemd journalctl -xu ai-agent, для PM2 pm2 logs ai-agent. Все три показывают историю вывода процесса и помогают найти момент падения без переустановки агента.

Можно ли запустить несколько AI-агентов на одном VPS? Да, и PM2, и Docker, и systemd поддерживают параллельный запуск нескольких независимых процессов на одном сервере. Ограничение только в ресурсах: чем больше агентов, тем больше нужно оперативной памяти.

Что означает статус failed у systemd-сервиса? Обычно неправильный путь к интерпретатору в ExecStart, отсутствие прав на рабочую папку или ошибка в самом коде агента при старте. Первым делом смотрите systemctl status имя-сервиса и journalctl -xu имя-сервиса для деталей ошибки.


Запустить AI-агента на VPS реально за один вечер, если выбрать правильный инструмент под задачу и не забыть про автоперезапуск и логи. Для вдохновения по инструментам разработки заглядывайте в каталог AI IDE на vibecoderz.ru/ide, а обзор Claude Code как основы для агентных сценариев смотрите на странице https://vibecoderz.ru/item/claude-code.

Если ваш агент решает задачи devops-специалиста, посмотрите подборку под эту нишу на https://vibecoderz.ru/agents/devops.

Если хочется не разбираться со всем этим самостоятельно, а собрать связку под ключ, запишитесь на консультацию к Максиму: https://t.me/maxnagovitsyn.

Обновлено: октябрь 2026.

Автор

Максим Наговицын
Максим Наговицын

Маркетинг-стратег, IT-предприниматель, ментор по вайбкодингу

2026/09/04

10+ лет в маркетинге, 300+ клиентских проектов: сайты, реклама, боты. Создатель GoBanana (228K+ пользователей, 11.6 млн ₽ выручки) и VibeCoderz. Делаю AI-продукты сам через Claude Code, Cursor, Windsurf и консультирую тех, кто хочет так же.

Об авторе →
All Posts

Читать далее

📢 Новость

Claude Code: новый CLI-агент от Anthropic

Anthropic выпустила Claude Code — терминальный AI-агент для разработчиков. Инструмент работает прямо в командной строке и умеет писать, редактировать и запускать код.

2026/02/27
📝 Конспект

Zcode AI: Полный гид по визуальному интерфейсу для Claude Code и AI-агентов

Узнайте, как использовать Zcode для управления Claude Code, Gemini и Codex в едином GUI. Настройка провайдеров, MCP-серверов и визуальный вайбкодинг.

2026/02/28
📝 Конспект

YouTube-канал с монетизацией из любой точки мира: Пошаговый гайд 2026

Инструкция по созданию YouTube-канала: обход блокировок SMS, настройка расширенных функций через виртуальные номера и правила безопасности для монетизации.

2026/02/28
📝 Конспект

Windsurf Code Maps: Как глубоко понимать архитектуру проекта перед написанием кода

Полный гайд по Windsurf Code Maps, модели Sway 1.5 и Sway Grep. Узнайте, как визуализировать архитектуру кода и ускорить разработку в 13 раз.

2026/02/28
📝 Конспект

Vk Fast Cash Strategy

Аудитория ВКонтакте — это те же люди, что и в Instagram, но 'социальный контракт' площадки другой. Если Instagram — это 'дорогой ресторан' с демонстрацией успеха, то VK — это 'душевная шашлычная'. Здесь не работает глянцевый 'успешный успех

2026/02/28