drholy 9ea190538a
All checks were successful
Build, Push and Redeploy Docker Image / build-and-push (push) Successful in 5m43s
edite iptables rules
2026-01-27 19:25:55 +07:00
2026-01-26 21:51:15 +07:00
2026-01-27 19:25:55 +07:00
2026-01-25 17:26:24 +07:00
2026-01-24 23:26:38 +07:00
2026-01-27 19:25:55 +07:00

n8n-ffmpeg-proxy

Docker-проект для запуска n8n с интеграцией ffmpeg и проксированием трафика через SOCKS5-прокси.

Особенности

  • n8n: Установлен и запущен в контейнере Alpine Linux.
  • ffmpeg: Доступен внутри контейнера, что позволяет использовать узлы n8n, требующие ffmpeg (например, для обработки аудио/видео).
  • Проксирование трафика: Весь исходящий TCP-трафик из контейнера направляется через SOCKS5-прокси, используя redsocks и iptables.
  • Безопасность: n8n запускается от непривилегированного пользователя node.
  • Конфигурация: Поведение n8n настраивается через переменные окружения в docker-compose.yml.

Установка и запуск

  1. Клонируйте репозиторий (если он находится в другом месте, или создайте структуру вручную):

    # git clone <URL_ВАШЕГО_РЕПОЗИТОРИЯ> n8n-ffmpeg-proxy
    # cd n8n-ffmpeg-proxy
    

    Убедитесь, что в директории находятся файлы Dockerfile, docker-compose.yml, и start-n8n.sh.

  2. Настройте docker-compose.yml:

    • Проверьте и при необходимости измените переменные окружения для n8n (например, WEBHOOK_URL, GENERIC_TIMEZONE).
    • Убедитесь, что имя сервиса socks и его порт 1080 соответствуют вашему SOCKS-прокси. Если SOCKS-прокси запущен на хосте, убедитесь, что extra_hosts настроен правильно (например, - "socks:192.168.31.240").
    • При необходимости добавьте cap_add: - NET_ADMIN в сервис n8n, чтобы iptables работали корректно.
  3. (Опционально) Настройте Dockerfile:

    • При необходимости измените версию n8n (ARG N8N_VERSION).
    • Если SOCKS-прокси работает на другом IP, передайте его как аргумент сборки или измените extra_hosts и Dockerfile.
  4. Запустите проект:

    docker-compose up -d
    

    Контейнер начнет запускаться. Он будет ожидать доступности SOCKS-прокси.

  5. Доступ к n8n: После успешного запуска n8n будет доступен на порту 5678 хоста (по умолчанию http://localhost:5678). Убедитесь, что ваш WEBHOOK_URL и настройки прокси (например, Nginx Proxy Manager) соответствуют вашему домену (например, https://n8n.home/).

Файлы проекта

  • Dockerfile: Определяет образ контейнера, устанавливает зависимости (ffmpeg, redsocks, n8n), настраивает redsocks.conf и пользователя.
  • docker-compose.yml: Определяет сервис n8n, его конфигурацию, сети, переменные окружения, тома и зависимости.
  • start-n8n.sh: Скрипт, выполняющийся при запуске контейнера. Он ожидает SOCKS-прокси, запускает redsocks, настраивает iptables и затем запускает n8n.

Безопасность

  • Контейнер запускается с минимально необходимыми привилегиями.
  • Для настройки iptables требуется capability NET_ADMIN. Используйте его осознанно.
  • Переменная NODE_FUNCTION_ALLOW_EXTERNAL=* в docker-compose.yml позволяет загрузку внешних зависимостей. Это может быть рискованно. Рассмотрите возможность её ограничения.
  • Переменная N8N_SECURE_COOKIE=false отключает флаг secure для cookies. Это может быть небезопасно, если n8n доступен по HTTP. Убедитесь, что n8n защищен SSL-терминированием (например, через Nginx Proxy Manager).
  • Убедитесь, что SSL-сертификат вашего Git-сервера или CA доверен среде разработки/развертывания, чтобы избежать проблем с git pull/push.

Лицензия

MIT License DrHoly.

Description
No description provided
Readme 88 KiB
2026-01-26 23:03:04 +07:00
Languages
Shell 53%
Dockerfile 47%