Почему лучше использовать собственный сервер
Самостоятельное размещение n8n имеет несколько преимуществ:- полный контроль над данными;
- отсутствие ограничений облачной версии;
- возможность установки собственных модулей;
- использование любого количества рабочих процессов;
- простое масштабирование;
- резервное копирование базы данных;
- повышенная безопасность.
Минимальные требования к VPS
| Ресурс | Минимум | Рекомендуется |
|---|---|---|
| CPU | 1 ядро | 2–4 ядра |
| RAM | 2 ГБ | 4 ГБ и более |
| Диск | 20 ГБ SSD | 40–80 ГБ NVMe |
| ОС | Ubuntu 24.04 LTS | Ubuntu 24.04 LTS |
Подключение к серверу
После создания VPS подключитесь по SSH:ssh root@YOUR_SERVER_IP
Обновление системы
sudo apt update sudo apt upgrade -y
Установка Docker
sudo apt install docker.io -y sudo systemctl enable docker sudo systemctl start docker
Проверка установки:
docker --version
Установка Docker Compose
sudo apt install docker-compose-plugin -y
Проверить можно командой:
docker compose version
Создание структуры проекта
mkdir ~/n8n cd ~/n8n
Создание файла .env
N8N_HOST=n8n.example.com N8N_PORT=5678 N8N_PROTOCOL=https WEBHOOK_URL=https://n8n.example.com/ GENERIC_TIMEZONE=Europe/Moscow DB_TYPE=postgresdb DB_POSTGRESDB_HOST=postgres DB_POSTGRESDB_DATABASE=n8n DB_POSTGRESDB_USER=n8n DB_POSTGRESDB_PASSWORD=StrongPassword123
Создание docker-compose.yml
services: postgres: image: postgres:16 restart: always environment: POSTGRES_USER: n8n POSTGRES_PASSWORD: StrongPassword123 POSTGRES_DB: n8n volumes: - postgres_data:/var/lib/postgresql/data n8n: image: n8nio/n8n:latest restart: always ports: - "5678:5678" env_file: - .env depends_on: - postgres volumes: - n8n_data:/home/node/.n8n volumes: postgres_data: n8n_data:
Запуск контейнеров
docker compose up -d
Проверить работу контейнеров:
docker ps
Просмотр логов
docker compose logs -f
Установка Nginx
sudo apt install nginx -y
Настройка Reverse Proxy
Создайте файл конфигурации:sudo nano /etc/nginx/sites-available/n8n
Пример содержимого:
server { listen 80; server_name n8n.example.com; location / { proxy_pass http://127.0.0.1:5678; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } }
Активируйте конфигурацию:
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
Установка SSL
Установите Certbot:sudo apt install certbot python3-certbot-nginx -y
Получите сертификат:
sudo certbot --nginx
После завершения мастер автоматически настроит HTTPS и переадресацию с HTTP.
Создание пользователя администратора
При первом открытии веб-интерфейса n8n предложит создать учетную запись администратора. Используйте сложный пароль и включите двухфакторную аутентификацию, если она доступна.Резервное копирование данных
Для сохранения рабочих процессов и базы данных регулярно выполняйте резервное копирование. Экспорт базы PostgreSQL:docker exec postgres pg_dump -U n8n n8n > backup.sql
Архивация данных n8n:
tar -czf n8n-data.tar.gz ~/n8n
Обновление n8n
Чтобы установить новую версию:docker compose pull docker compose up -d
Автоматический запуск после перезагрузки
Параметр:restart: always
в файле docker-compose.yml обеспечивает автоматический запуск контейнеров после перезагрузки VPS.
Защита сервера
После установки рекомендуется выполнить базовую настройку безопасности. Настройка UFW:sudo ufw allow OpenSSH sudo ufw allow 80 sudo ufw allow 443 sudo ufw enable
Отключение входа под root:
sudo nano /etc/ssh/sshd_config
Измените параметр:
PermitRootLogin no
После этого перезапустите SSH:
sudo systemctl restart ssh
Мониторинг работы
Полезные команды:docker stats docker ps docker compose logs systemctl status nginx
Типичные ошибки
- не настроен домен для WEBHOOK_URL;
- отсутствует SSL-сертификат;
- используется SQLite вместо PostgreSQL для рабочих проектов;
- не настроено резервное копирование;
- открыт доступ к панели управления без авторизации;
- контейнеры запускаются без автоматического рестарта.
Полезные рекомендации
- Используйте PostgreSQL вместо SQLite для долгосрочных проектов.
- Размещайте n8n только через HTTPS.
- Регулярно обновляйте Docker-образы.
- Настройте автоматическое резервное копирование базы данных.
- Используйте сложные пароли и SSH-ключи.
- Следите за использованием памяти и процессора.
- Перед обновлением создавайте резервную копию проекта.
Метки: Docker Compose