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.
- 🛠️ Обновите сервер и установите базовые пакеты: curl, ca-certificates, gnupg, unzip, git.
- 🐳 Установите Docker из официального репозитория Docker, а не из случайного старого пакета.
- 👤 Создайте отдельного пользователя или хотя бы отделите рабочую директорию агента от системного мусора.
- 📁 Подготовьте структуру:
/opt/agentили/srv/agent, отдельно храните.env, compose-файл и volume для данных. - 🔒 Откройте только нужные порты. Обычно это 22 для SSH и 80/443 для reverse proxy. Внутренний порт агента наружу лучше не светить.
- 🌍 Подключите домен через A-запись на IP сервера.
- 🪪 Поднимите reverse proxy, выпустите HTTPS-сертификат и проксируйте трафик на внутренний порт контейнера.
- 📊 Добавьте healthcheck, логирование и автостарт после перезагрузки сервера.
- 💾 Настройте 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 конфигов и данных
- 📡 Есть хотя бы базовый мониторинг и алерт
🔗 Что почитать дальше по теме
Чтобы собрать связную картину, полезно открыть эти материалы:
- защиту AI-агента на VPS — после базового запуска на Ubuntu.
- подключение домена к AI-агенту — когда нужен нормальный HTTPS и reverse proxy.
- self-hosted AI agent vs SaaS — если выбираете между своим сервером и облаком.
- OpenClaw vs Make — если нужно выбрать платформу автоматизации.
💬 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.