Под «сервером для нейросетей» понимают две совершенно разные задачи, и путаница между ними — причина большинства неудачных покупок.
Первая задача — оркестрация. Сервер принимает вебхуки, дёргает API нейросетей, складывает результаты в базу, отправляет ответы в мессенджер. Вся тяжёлая работа происходит на стороне OpenAI или Anthropic, а ваш сервер только ходит по сети и обрабатывает JSON. Ресурсов такому серверу нужно немного.
Вторая задача — запуск моделей у себя. Здесь всё считается на вашем железе, и требования вырастают на порядок.
Разбираем обе — и сразу с реальными цифрами, чтобы не пришлось разочаровываться после оплаты.
Почему не на домашнем компьютере
Автоматизацию часто начинают собирать локально, и упираются в одно и то же:
- Вебхуки. Чтобы Telegram, CRM или платёжный сервис могли постучаться к вашему сценарию, нужен постоянный публичный адрес с HTTPS. Туннели вроде ngrok меняют адрес при каждом перезапуске.
- Расписание. Сценарий «каждый день в 9 утра» не работает, если ноутбук в это время закрыт.
- Стабильный IP. Часть сервисов привязывает ключи к адресу, и домашний динамический IP для этого не подходит.
Отсюда простое правило: как только в автоматизации появляется слово «автоматически», ей нужен сервер.
Сценарий 1. n8n и вызовы API
n8n — визуальный конструктор сценариев: блоки соединяются стрелками, между ними ходят данные. Типичный сценарий — «пришло сообщение в Telegram → отправить в модель → сохранить ответ в таблицу → ответить пользователю».
Сколько ресурсов нужно
n8n сам по себе нетребователен — основная нагрузка это ожидание ответов от внешних API.
| Нагрузка | Тариф |
|---|---|
| До 10 сценариев, десятки запусков в день | Лёгкий — 2 ядра, 4 ГБ |
| Десятки сценариев, очереди, отдельная база | Оптимальный — 4 ядра, 8 ГБ |
| Сотни запусков в час, обработка файлов | Бизнес — 8 ядер, 16 ГБ |
На «Старте» с 2 ГБ n8n запускается, но памяти впритык: Node.js под нагрузкой легко выбирает гигабайт, а рядом должна жить база. Для боевых сценариев берите от 4 ГБ.
Установка
n8n ставится контейнером — так проще обновлять и не тянуть Node.js в систему. Перед этим установите Docker и общий reverse proxy: Docker на VPS.
mkdir -p /opt/n8n && cd /opt/n8n
nano docker-compose.yml
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
environment:
- N8N_HOST=n8n.example.com
- WEBHOOK_URL=https://n8n.example.com/
- N8N_PROTOCOL=https
- GENERIC_TIMEZONE=Europe/Moscow
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=n8n-db
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
volumes:
- n8n_data:/home/node/.n8n
networks:
- web
- internal
depends_on:
- n8n-db
n8n-db:
image: postgres:16
container_name: n8n-db
restart: unless-stopped
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- n8n_db:/var/lib/postgresql/data
networks:
- internal
volumes:
n8n_data:
n8n_db:
networks:
web:
external: true
internal:
Пароли — в отдельный файл:
nano .env
N8N_PASSWORD=длинный_пароль
DB_PASSWORD=другой_длинный_пароль
chmod 600 .env
docker compose up -d
Добавьте домен в Caddyfile вашего proxy:
n8n.example.com {
reverse_proxy n8n:5678
}
docker exec caddy caddy reload --config /etc/caddy/Caddyfile
Через минуту интерфейс открывается по https://n8n.example.com.
Про базу отдельно: по умолчанию n8n хранит всё в SQLite, и это нормально для десятка сценариев. Но при активных запусках история выполнений быстро раздувает файл, и интерфейс начинает тормозить. PostgreSQL из примера выше снимает этот вопрос сразу.
Не выставляйте n8n наружу без защиты
Открытый интерфейс n8n — это ваши ключи от API, CRM, почты и базы в чужих руках. Минимум — базовая авторизация из конфига выше плюс длинный пароль.
Если сценарии не принимают вебхуки снаружи, ещё надёжнее вообще не публиковать интерфейс в интернет и ходить в него через SSH-туннель:
ssh -L 5678:localhost:5678 deploy@ВАШ_IP
После этого n8n доступен на http://localhost:5678 у вас на компьютере — и больше ни для кого.
И общая гигиена сервера, на котором лежат все ключи: 7 шагов безопасности.
Ключи от API
Ключи вносятся в n8n через раздел Credentials — они шифруются и не попадают в экспортируемые сценарии. Не вставляйте их прямо в ноды кода: экспортированный сценарий легко уходит в чат или репозиторий вместе с ключом.
Полезная деталь: у большинства провайдеров API ключ можно ограничить лимитом расходов. Поставьте его сразу — это спасает от сценария, зациклившегося в бесконечном вызове.
Сценарий 2. Локальные модели на процессоре
Здесь нужна честность, которой обычно не хватает в статьях на эту тему.
Наши серверы — без видеокарт. Модели на них запускаются только на процессоре. Это работает, но медленнее, чем на GPU, — и годится не для всякой задачи.
Что реально получается
Замеры на конфигурации с Ryzen 9 7950X, модели в квантовании Q4:
| Модель | Нужно памяти | Скорость на CPU | Для чего годится |
|---|---|---|---|
| 3B (Llama 3.2, Qwen 2.5) | ~4 ГБ | 10–15 токенов/с | классификация, короткие ответы |
| 7–8B (Llama 3.1, Qwen 2.5) | ~8 ГБ | 4–7 токенов/с | фоновая обработка текста |
| 14B | ~12 ГБ | 2–3 токена/с | терпимо только для пакетных задач |
| 30B и больше | 20 ГБ+ | меньше 1 токена/с | на CPU непрактично |
Для ориентира: 5 токенов в секунду — это примерно абзац текста за полминуты.
Вывод простой. Для интерактивного чата, где ответ ждут здесь и сейчас, CPU не подходит — пользователь устанет ждать. Для фоновых задач, где ответ нужен «когда-нибудь в ближайшие минуты», всё отлично работает.
Что хорошо идёт на процессоре
Не всякая работа с ИИ — это генерация текста. На CPU отлично себя чувствуют задачи, где модель маленькая или работает пакетами:
- Эмбеддинги для поиска по документам — быстро даже на слабом сервере
- Векторная база (Qdrant, ChromaDB) — обычная работа с памятью и диском, GPU не нужен вовсе
- Распознавание речи через Whisper в небольших моделях — файл на 10 минут обрабатывается за пару минут
- Классификация и разметка — короткий ответ модели на 3B получается почти мгновенно
- Ночная пакетная обработка — тысяча описаний товаров, сгенерированных за ночь, никого не торопит
Установка Ollama
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5:7b
ollama run qwen2.5:7b
Модели хранятся в /usr/share/ollama/.ollama/models и весят от 2 до 20 ГБ. На тарифах с диском 10–20 ГБ разместится одна небольшая модель, не больше — считайте место заранее.
Из n8n или своего кода Ollama доступна по HTTP:
curl http://localhost:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "Составь короткое описание товара: беспроводные наушники",
"stream": false
}'
Важно: у Ollama нет встроенной авторизации. Порт 11434 не должен быть открыт наружу — держите его только на
localhostи не добавляйте в правила firewall. Открытая в интернет Ollama — это бесплатный вычислительный ресурс для всех желающих, и счёт за трафик придёт вам.
Когда локальная модель оправдана
Считайте по деньгам и по требованиям.
Облачные API дешевле, быстрее и умнее — если объёмы небольшие. Сервер под локальную модель стоит фиксированные 40–80 € в месяц, и эту сумму имеет смысл платить, когда:
- данные нельзя отдавать наружу по требованиям заказчика
- объёмы стабильно большие, и счета за API давно перевалили за стоимость сервера
- нужна полная независимость от лимитов и изменений в тарифах провайдера
- задача фоновая, и скорость в несколько токенов в секунду устраивает
Во всех остальных случаях связка «лёгкий VPS + API» выйдет дешевле и работать будет лучше.
Гибридная схема — то, что чаще всего нужно
На практике оптимальный вариант выглядит так: небольшой сервер держит всю автоматизацию, а тяжёлые вычисления уходят в облако.
Тариф «Оптимальный» (4 ядра, 8 ГБ, 20 €):
- n8n с базой PostgreSQL — сценарии и расписания
- Telegram-бот как точка входа для пользователей — как запустить бота 24/7
- Qdrant с эмбеддингами для поиска по своим документам
- вызовы API моделей для генерации
- локальная модель на 3B для мелочи: классификация запроса, определение языка, разметка
Такой сервер работает круглосуточно, стоит фиксированную сумму и не требует ни видеокарты, ни постоянного присмотра.
Что ещё учесть
Трафик. Вызовы API — это в основном текст, и объёмы незаметные. А вот если сценарий гоняет видео или большие файлы, счёт пойдёт на сотни гигабайт — смотрите на канал и включённый трафик.
Дисковое место. История выполнений n8n растёт постоянно. Настройте автоочистку через переменную EXECUTIONS_DATA_MAX_AGE (в часах), иначе через полгода упрётесь в диск.
Бэкапы. Сценарии, которые собирались неделями, теряются вместе с томом n8n_data. Копия делается за десять минут: Бэкапы VPS.
Лимиты расходов. Ставьте потолок на каждом API-ключе. Зацикленный сценарий способен потратить за ночь месячный бюджет.
Частые вопросы
Можно ли на вашем VPS запустить Stable Diffusion? Технически да, практически — нет смысла: без видеокарты одна картинка считается несколько минут. Генерация изображений — единственная задача, где GPU действительно обязателен.
Какой тариф взять под n8n? «Лёгкий» с 4 ГБ — для старта и десятка сценариев. «Оптимальный» с 8 ГБ — когда сценариев много, они работают параллельно и рядом живёт база.
Сколько сценариев потянет один сервер? Дело не в количестве, а в одновременности. Сотня сценариев по расписанию раз в день — нагрузки почти нет. Пять сценариев, обрабатывающих вебхуки непрерывно, нагрузят сервер сильнее.
Нужен ли домен для n8n? Да, если сценарии принимают вебхуки — сервисы требуют HTTPS-адрес. Если всё работает по расписанию, можно обойтись SSH-туннелем без домена вовсе.
Что лучше: n8n или свой код? n8n быстрее собрать и проще менять без программиста. Свой код на Python выигрывает, когда логика нестандартная или нагрузка высокая. Их часто совмещают: n8n как диспетчер, свой сервис для тяжёлых кусков.
Модель занимает всю память, что делать? Берите квантование поменьше (Q4 вместо Q8) или модель поменьше. Ориентир простой: модели нужно примерно столько гигабайт памяти, сколько у неё миллиардов параметров при квантовании Q4 — плюс запас на систему.
Сохранятся ли данные при перезапуске сервера?
Да, если сервисы описаны в docker compose с томами и строкой restart: unless-stopped. Тогда после перезагрузки всё поднимается автоматически.
Итог
Если сервер нужен под автоматизацию и вызовы API — берите 4–8 ГБ и не переплачивайте: вся тяжёлая работа происходит не у вас.
Если планируете крутить модели локально — считайте память под конкретную модель и заранее примите, что на процессоре это 3–7 токенов в секунду. Для фоновых задач этого достаточно, для живого чата — нет.
Начать проще всего с «Оптимального» за 20 €: на нём помещается полноценная связка из n8n, бота, векторной базы и небольшой локальной модели. Расширить конфигурацию можно позже, не перенося ничего заново.

