AI-агент на Ubuntu: как запустить на VPS без хаоса и дыр в безопасности

AI-агент на Ubuntu: как запустить на VPS без хаоса и дыр в безопасности

Да, AI-агента удобно и вполне безопасно запускать на Ubuntu, если сразу собрать базовый стек: Ubuntu 24.04 LTS, Docker, обратный прокси, HTTPS, firewall, автозапуск и мониторинг. Для большинства команд это самый понятный путь, потому что Ubuntu легко администрировать, под неё есть нормальная документация, а нужные инструменты вроде Docker, Nginx, Caddy, UFW и Certbot давно стали стандартом.

Ниже разберём, как развернуть AI-агента на Ubuntu без магии и без типичной ошибки «подняли демо, а через неделю оно умерло после первого рестарта сервера».

🖥️ Почему именно Ubuntu подходит для AI-агента?

Ubuntu остаётся самым практичным вариантом для self-hosted AI-agent stack на VPS или выделенном сервере. Причина простая: экосистема уже готова. Docker официально поддерживает Ubuntu 24.04 LTS, UFW закрывает базовые вопросы с firewall, а reverse proxy и SSL поднимаются без экзотики.

  • ⚙️ Быстрый старт, потому что почти все инструкции и образы тестируются именно на Ubuntu.
  • 🔐 Проще держать безопасность под контролем, чем в хаотичных сборках «что было под рукой».
  • 📦 Удобно запускать агента в Docker и обновлять без ручной сборки всего окружения.
  • 🌐 Легко подключить домен, HTTPS и прокинуть агент наружу через Nginx или Caddy.
  • 📈 Есть понятный путь к мониторингу, backup и автостарту через systemd.

Если нужен первый production-like запуск, Ubuntu обычно выигрывает у «домашнего мини-ПК без дисциплины» и у случайного VPS с непонятным образом.

🚀 Что нужно подготовить перед запуском?

Минимальный набор зависит от того, как именно работает агент, но для 90% сценариев нужен один и тот же фундамент.

Компонент Зачем нужен Минимум
Ubuntu Стабильная серверная база 24.04 LTS
Docker / Docker Compose Контейнеризация агента и зависимостей 1 сервис + volume
Reverse proxy Домен, HTTPS, маршрутизация Nginx или Caddy
Firewall Ограничение внешнего доступа UFW + SSH only
Мониторинг Проверка, что агент не умер молча healthcheck + логирование

По ресурсам ориентир простой: для текстового AI-агента без локальной модели обычно хватает 2 vCPU, 4 GB RAM и SSD. Если хотите гонять локальные модели через Ollama, планируйте память и CPU уже без самообмана. Маленький VPS здесь быстро начинает кашлять.

Ещё один практический совет: сначала определите, агент будет обслуживать внутреннюю команду, публичный чат, отдел продаж или один узкий процесс. От этого зависит всё, от объёма логов до потребности в очередях задач, Redis, отдельной базе и лимитах на внешние API.

🧩 Как развернуть AI-агента на Ubuntu пошагово?

Ниже схема, которая подходит для OpenClaw, кастомного AI-агента, webhook-бота или internal assistant API.

  1. 🛠️ Обновите сервер и установите базовые пакеты: curl, ca-certificates, gnupg, unzip, git.
  2. 🐳 Установите Docker из официального репозитория Docker, а не из случайного старого пакета.
  3. 👤 Создайте отдельного пользователя или хотя бы отделите рабочую директорию агента от системного мусора.
  4. 📁 Подготовьте структуру: /opt/agent или /srv/agent, отдельно храните .env, compose-файл и volume для данных.
  5. 🔒 Откройте только нужные порты. Обычно это 22 для SSH и 80/443 для reverse proxy. Внутренний порт агента наружу лучше не светить.
  6. 🌍 Подключите домен через A-запись на IP сервера.
  7. 🪪 Поднимите reverse proxy, выпустите HTTPS-сертификат и проксируйте трафик на внутренний порт контейнера.
  8. 📊 Добавьте healthcheck, логирование и автостарт после перезагрузки сервера.
  9. 💾 Настройте backup конфигов и данных, иначе ваш «production» живёт до первого неудачного обновления.

Если агент работает через внешние LLM API, храните ключи в .env, но не коммитьте этот файл в git. Сюрпризов и так хватает.

services:
  agent:
    image: your-agent-image:latest
    restart: unless-stopped
    env_file:
      - .env
    ports:
      - "127.0.0.1:3000:3000"
    volumes:
      - ./data:/app/data
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 5s
      retries: 3

Ключевая мысль тут простая: привязывайте сервис к 127.0.0.1, а наружу отдавайте только через proxy. Это сразу снижает площадь атаки.

🛡️ Как не превратить Ubuntu-сервер в проходной двор?

Большинство проблем не в Ubuntu, а в привычке выкатывать AI-агента «на скорую руку». Безопасный baseline выглядит так:

  • 🔑 Отключите парольный SSH-вход, если есть возможность перейти на ключи.
  • 🚪 Не публикуйте порт приложения напрямую в интернет, если можно отдать всё через Nginx или Caddy.
  • 🧱 Настройте UFW и проверьте, какие порты реально слушают снаружи.
  • 🪫 Ограничьте права контейнера, не запускайте всё подряд от root без причины.
  • 🕵️ Храните секреты вне репозитория и не вставляйте их в docker-compose как обычный текст для скриншотов и будущих приключений.
  • 📜 Смотрите логи после каждого обновления, а не только когда всё уже сломалось.

Важно: документация Docker отдельно предупреждает, что при неправильной конфигурации опубликованные контейнерные порты могут обходить правила firewall. Поэтому просто «включить UFW» недостаточно. Нужно ещё понимать, какие порты реально проброшены Docker и зачем.

Для production-сценария полезно сразу включить простую дисциплину обновлений: сначала тестируете новый образ на копии окружения, потом выкатываете ночью или в низкую нагрузку, после этого проверяете healthcheck, логи и только потом выдыхаете. Да, звучит не романтично, зато экономит часы на откатах.

📉 Какие ошибки чаще всего ломают запуск?

Вот где чаще всего теряют время и нервы:

  • ❌ Ставят Docker из старого пакета дистрибутива, а потом ловят странности с compose и совместимостью.
  • 🔁 Запускают контейнер без restart, и после ребута агент тихо исчезает.
  • 🌍 Открывают наружу внутренний порт приложения, а потом удивляются сканерам и мусорному трафику.
  • 🧪 Не делают health endpoint или хотя бы примитивную проверку живости сервиса.
  • 💥 Хранят данные только внутри контейнера без volume и теряют всё при пересоздании.
  • 📦 Тянут локальную модель на слабый VPS, где и без того памяти впритык.

Отдельно стоит подумать о мониторинге. Минимум, это проверка /health, алерт при падении процесса и сохранение логов вне контейнера. Чуть серьёзнее, это Uptime Kuma, Healthchecks, Grafana или любой сервис, который первым заметит падение, а не последним.

Если нужен короткий чеклист перед публикацией сервера наружу, вот он:

  • ✅ Docker установлен из официального репозитория
  • 🛰️ Домен смотрит на сервер
  • 🔒 HTTPS работает
  • 📌 Приложение не торчит наружу на произвольном порту
  • 🧰 Есть backup конфигов и данных
  • 📡 Есть хотя бы базовый мониторинг и алерт

🔗 Что почитать дальше по теме

Чтобы собрать связную картину, полезно открыть эти материалы:

💬 FAQ: что ещё важно знать про AI-агента на Ubuntu?

1. Нужен ли Docker, если можно запустить AI-агента прямо на Ubuntu?

Можно и без Docker, но контейнер обычно упрощает обновления, откаты и перенос на другой сервер. Для первого production-запуска Docker почти всегда удобнее.

2. Какая версия Ubuntu лучше для AI-агента?

Обычно лучший выбор, это Ubuntu 24.04 LTS. Она стабильная, долго поддерживается и под неё много актуальных инструкций.

3. Можно ли запускать локальную модель прямо на том же сервере?

Да, но только если ресурсов хватает. Для лёгких сценариев подойдёт Ollama с небольшой моделью, но для серьёзной нагрузки слабый VPS быстро упрётся в RAM и CPU.

4. Что лучше для домена и HTTPS, Nginx или Caddy?

Caddy быстрее в первом запуске, Nginx гибче и привычнее многим администраторам. Если цель, это быстрее поднять и не копаться в конфиге, Caddy часто приятнее.

5. Как понять, что агент уже готов к production?

Когда у вас есть автозапуск, логи, healthcheck, backup, HTTPS, ограничения по портам и понятный процесс обновления. Один работающий контейнер, это ещё не production.

6. Подходит ли Ubuntu для корпоративного AI-агента?

Да, особенно если нужен self-hosted стек, контроль над данными и интеграции через Docker, reverse proxy и внутренние API. Но для бизнеса важны не только запуск, а ещё роли доступа, резервные копии и мониторинг.

Если хотите собрать AI-агента на Ubuntu без хаоса, можно начать с простого стека: Docker, reverse proxy, HTTPS, backup и мониторинг, а уже потом усложнять архитектуру. Это скучнее, чем героически тушить пожар ночью, но заметно полезнее. Если нужен разбор под ваш стек, напишите в Telegram: t.me/aaakalsin.