
n8n self-hosted в production: docker-compose, nginx, ретраи и три грабли
viktdo 59 минут назад n8n self-hosted в production: docker-compose, nginx, ретраи и три грабли Средний 13 мин 2.1K DevOps * Системное администрирование * Виртуализация * PostgreSQL * Open source * Туториал n8n...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. viktdo 59 минут назад n8n self-hosted в production: docker-compose, nginx, ретраи и три грабли Средний 13 мин 2. 1K DevOps * Системное администрирование * Виртуализация * PostgreSQL * Open source * Туториал n8n self-hosted в production: docker-compose, nginx, ретраи и три граблиn8n запускается одной командой docker run и через пять минут вы видите логин-форму. Это маркетинговый ролик.
Реальный production-конфиг - с persistent storage, корректными webhook-URL, ретраями, бэкапами PostgreSQL и мониторингом - выглядит сильно иначе. В этой статье - конфигурация, которую я держу на 12 проектах в течение полутора лет. Плюс три грабли, на которые наступал лично.
Технические детали
Все примеры - community-edition, без коммерческой лицензии. На проде у меня сейчас крутится 2. 5, но в image: стоит n8nio/n8n:latest плюс Watchtower (про него ниже) - он подтягивает свежий образ ночью.
x API/env-переменные стабильны, рекомендую :latest + Watchtower на проектах где простой 5 минут утром не критичен, и закреплённый минор (:2. 5) - на проектах где даунтайм нельзя. Полный production-стекЯ не пишу ручной nginx-конфиг.
Не из лени, а потому что nginxproxy/nginx-proxy + nginxproxy/acme-companion делают то же самое сильно проще: новый контейнер с правильными VIRTUAL_HOST / LETSENCRYPT_HOST метками - сам подхватывается, сам получает сертификат, сам обновляется. Плюс Watchtower для авто-обновления образов ночью, Portainer для веб-GUI Docker, Redis для queue mode. Маленькая историческая ремарка: если открываете старые туториалы и видите там jwilder/nginx-proxy и jrcs/letsencrypt-nginx-proxy-companion - это те же образы, проект просто переехал в namespace nginxproxy/* и теперь поддерживается ZeroSSL.
Отраслевые последствия
Старые имена технически ещё работают (как и у меня в одном legacy-проекте), но активный maintain и свежие релизы там, куда я указал. На новой инсталляции берите nginxproxy/*. yml целиком (минимальный для статьи):services: # ──────────── Реверс-прокси + HTTPS (auto-config через labels) proxy: image: nginxproxy/nginx-proxy:alpine container_name: nginx-proxy restart: unless-stopped ports: - "80:80" - "443:443" volumes: - /var/run/docker.
sock:ro - nginx_certs:/etc/nginx/certs - nginx_vhost:/etc/nginx/vhost. d - nginx_html:/usr/share/nginx/html networks: letsencrypt: image: nginxproxy/acme-companion container_name: nginx-le restart: unless-stopped env_file: . env environment: - NGINX_PROXY_CONTAINER=nginx-proxy volumes: - /var/run/docker.
sock:/var/run/docker. sock:ro - nginx_certs:/etc/nginx/certs - nginx_vhost:/etc/nginx/vhost. d - nginx_html:/usr/share/nginx/html depends_on: networks: # ──────────── PostgreSQL (доступен локально для SSH-туннеля) postgres: image: postgres:15-alpine container_name: n8n-postgres restart: unless-stopped env_file: .
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





