June 4, 2025

N8N на Railway

Сначала я не хотел делать урок о (бесплатном или очень дешевом) размещении N8N в облаке. Но вскоре нашелся удобный способ склеивать видосы бесплатно, а не за $49 в месяц – через программу FFmpeg (вместо Creatomate).

Поэтому сегодня мы не только сэкомим $20 в месяц на подписке на N8N, так как будем использовать Railway, но и впихнем туда программу, которая нам нужна для создания видео-контента, что сэкономит дополнительные $49.

Примерное время установки: 15-25 минут.
Стоимость: на Railway рекомендуется Hobby Plan (~$5/месяц + плата за ресурсы сверх лимита, но лимиты довольно щедрые, и не факт что будут тобой превышены).

─────── ✦ ─────── ✦ ───────

💻 Сервисы и интеграции:

  • Railway.com — облачная платформа, на которой можно разворачивать и запускать приложения без гемора, например N8N. Всё работает из коробки: ты загружаешь проект, и платформа сама запускает его, следит за работой и держит в онлайне 24/7. Это удобно, если ты не хочешь настраивать сервер вручную.
  • GitHub — сайт, где хранятся файлы проектов. Там лежат инструкции, код и всё, что нужно для запуска приложений, например N8N. Эти файлы называются "репозитории" (по сути, это просто папка с файлами).
  • FFmpeg — прога, которая умеет монтировать видео. Она не имеет интерфейса как обычные видеоредакторы, типа CapCut или Adobe Premiere. Вместо этого мы управляем ей текстовыми командами.

⚙️ Установка и настройка

  1. Регистрация и выбор тарифа
  2. Подготовка "рецепта" N8N с FFmpeg
  3. Развертывание сервисов на Railway
  4. Настройка (переменных окружения)
  5. Первый вход и проверка FFmpeg

✦ ⋯⋯⋯ ✦ ⋯⋯⋯ ✦ ⋯⋯⋯ ✦

1️⃣ Регистрация и выбор тарифа

  1. Зайди на https://railway.com
  2. Зарегистрируйся
    Нажми "Login". Самый простой способ — использовать GitHub аккаунт (давно пора его сделать). Railway попросит дать доступ к твоим репозиториям (это нужно для развертывания).
  3. Перейди на Hobby Plan
    В настройках аккаунта (кликни на свой аватар -> Account Settings -> Plans) выбери Hobby Plan. Он стоит $5 в месяц и дает гораздо больше ресурсов, чем бесплатный, плюс снимает некоторые ограничения. Пока что нам этого хватит.

✅ Аккаунт готов.

✦ ⋯⋯⋯ ✦ ⋯⋯⋯ ✦ ⋯⋯⋯ ✦

2️⃣ Подготовка "рецепта" N8N с FFmpeg

Railway удобнее всего разворачивает приложения из GitHub-репозиториев, особенно если нам нужно немного доработать Docker-образ. Проще говоря: щас мы сделаем файл-инструкцию, прочитав который Railway запустит нужные программы.

  1. Создай (импортируй) репозиторий на GitHub:

Придумай название и вставь его в "Repository name"

Begin Import

Теперь ждём.


  1. Ты можешь также создать свой репозиторий с нуля.Для этого:FROM docker.n8n.io/n8nio/n8n:latest USER root RUN apk add --no-cache ffmpeg curl RUN chown -R node:node /home/node/.n8n USER node
    • В созданном репозитории нажми -> "Create new file".
    • Назови файл Dockerfile (именно так, с большой буквы, без расширения).
    • Вставь в него следующий код:

ЧТО ЭТО ДЕЛАЕТ:

  • FROM ...: Берет официальный образ n8n.
  • USER root: Временно становится главным администратором внутри контейнера.
  • RUN apk add ...: Устанавливает программы ffmpeg и curl.
  • RUN chown ...: Убеждается, что у n8n есть права на свою папку.
  • USER node: Возвращается к обычному пользователю n8n.
  • Нажми "Commit new file".

Теперь нажав на аватарку справа вверху и выбрав Your repositories, ты можешь посмотреть свои репозитории. Поздравляю!

✅ Рецепт написан.

✦ ⋯⋯⋯ ✦ ⋯⋯⋯ ✦ ⋯⋯⋯ ✦

3️⃣ Развертывание сервисов на Railway

  1. Создай проект на Railway:
    • Вернись в свою панель Railway.
    • Нажми "+ New Project".
    • Выбери "Deploy from GitHub repo".
    • Настрой доступ к GitHub, если еще не сделал, и выбери репозиторий с твоим названием, который только что создал. Если файл не будет виден, попробуй обновить страницу, или даже удалить подключение GitHub и врубить его заново.
    • Если все четко, Railway автоматически обнаружит Dockerfile и начнет сборку и развертывание сервиса N8N. Это может занять несколько минут.
  2. Добавь базу данных PostgreSQL:
    • Пока N8N разворачивается, нажми "+ Create" (внутри твоего проекта).
    • Выбери "Database".
    • Выбери "Add PostgreSQL". Railway создаст базу данных и покажет переменные для подключения к ней.
  3. Добавь Redis:
    • Снова нажми "+ New".
    • Выбери "Database".
    • Выбери "Add Redis".

Теперь у тебя в проекте три сервиса: твой N8N, PostgreSQL и Redis.

✅ Проект запущен.

✦ ⋯⋯⋯ ✦ ⋯⋯⋯ ✦ ⋯⋯⋯ ✦

4️⃣ Настройка (переменных окружения)

  1. Кликни на развёрнутый N8N (у меня он назван n8n-on-railway) в проекте.
  2. Перейди на вкладку "Variables".
  3. Добавь переменные через кнопку "+ New Variable" вручную для каждой строки.
    • DB_TYPE: postgresdb
    • DB_POSTGRESDB_HOST: Используй переменную Railway! Нажми. "Show More" и выбери {{Postgres.PGHOST}} из подсказок. Не вводи IP вручную!
    • DB_POSTGRESDB_PORT: аналогично, {{Postgres.PGPORT}}.
    • DB_POSTGRESDB_DATABASE: аналогично, {{Postgres.PGDATABASE}}.
    • DB_POSTGRESDB_USER: аналогично, {{Postgres.PGUSER}}.
    • DB_POSTGRESDB_PASSWORD: аналогично, {{Postgres.PGPASSWORD}}.
    • N8N_HOST: Сначала можешь вставить сюда публичный домен, который Railway предоставил твоему n8n-сервису.
      Его можно найти во вкладке Settings -> Networking -> Public Networking. Он будет вида n8n-railway-ffmpeg-production-XXXX.up.railway.app. Если не появился, нажми сгенерировать. Немного позже ты сможешь привязать свой домен и обновить эту переменную.
    • WEBHOOK_URL: https://<тот_же_адрес_из_N8N_HOST>/
      ( на место скобок < > вставь тот же домен, что копировал на предыдущем шаге, а в конце обязательно должна быть черточка / )
    • N8N_PROTOCOL: https
    • EXECUTIONS_MODE: regular
    • QUEUE_BULL_REDIS_HOST: Используй переменную Railway! Выбери вручную, как делали с Postgress, только $ {{Redis.REDISHOST}}
    • QUEUE_HEALTH_CHECK_ACTIVE: true
    • N8N_ENCRYPTION_KEY: СГЕНЕРИРУЙ НАДЕЖНЫЙ СЛУЧАЙНЫЙ КЛЮЧ! Используй менеджер паролей или онлайн-генератор. Обязательно сохрани этот ключ в надежном месте! Без него ты потеряешь доступ ко всем сохраненным кредам в N8N. Пример: MySecretKey123!@#ButMakeItMuchLongerAndRandom.
    • N8N_DEFAULT_BINARY_DATA_MODE: filesystem
    • N8N_PAYLOAD_SIZE_MAX: 512
    • NODE_OPTIONS: --max-old-space-size=4096
    • N8N_FILESYSTEM_MAX_SIZE: 512
    • N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: false

4. Дождись переразвертывания:
После добавления/изменения переменных Railway, нажми Deploy и Railway автоматически переразвернет сервис N8N с новыми настройками. Следи за статусом во вкладке "Deployments".

✅ Настройка завершена.

✦ ⋯⋯⋯ ✦ ⋯⋯⋯ ✦ ⋯⋯⋯ ✦

5️⃣ Первый вход и проверка FFmpeg

  1. Открой n8n:
    Перейди по публичному адресу твоего n8n (который ты указал в N8N_HOST, вида https://n8n-railway-ffmpeg-production-XXXX.up.railway.app).
  2. Создай аккаунт владельца:
    Ты увидишь страницу настройки пользователя N8N. Задай email, имя, пароль.
  3. Проверь FFmpeg (Рекомендуется):
    • Создай новый пустой воркфлоу.
    • Добавь узел Execute Command.
    • В поле Command введи: ffmpeg -version
    • Запусти узел.
    • Во вкладке " O U T P U T" ты должен увидеть информацию о версии FFmpeg, а не ошибку "command not found". Если видишь версию – значит, FFmpeg успешно установлен в контейнере!

✅ Красава!