Notefix/2.Areas/n8n/Install n8n to Ubuntu 24.md

8 KiB
Raw Permalink Blame History

Оновлюємо систему

sudo apt update && sudo apt upgrade -y

Встановлюємо залежності

sudo apt install -y ca-certificates curl gnupg lsb-release

Додаємо ключ Docker

sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Додаємо репозиторій Docker

echo
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Оновлюємо apt і показуємо доступні версії (для перевірки)

sudo apt update apt-cache madison docker-ce | awk '{print $3}'

Встановлюємо конкретну версію Docker CE (тут 28.5.2 для Portainer)

sudo apt install -y
docker-ce=5:28.5.2-1ubuntu.25.10questing
docker-ce-cli=5:28.5.2-1ubuntu.25.10questing
containerd.io
docker-buildx-plugin
docker-compose-plugin

Блокуємо версію, щоб apt не оновлював Docker автоматично

sudo apt-mark hold docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Перевіряємо встановлення

docker --version docker compose version

Установка webmin

curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh

sudo sh webmin-setup-repo.sh

sudo apt-get install --install-recommends webmin usermin

sudo reboot

Логин и пароль в webmin это пароль рута. Он должен быть сложный и длинный но желательно без спец символов бывали с этим глюки.

Portainer

Создаем директорию на сервере

sudo docker volume create portainer_data

Установка Portainer с необходимыми параметрами

sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Проверка запущенных контейнеров

sudo docker ps

У вас есть 5 минут на настройку.

https://support.boxpizza.com.ua:9443/ Portainer висит портом в интернет пароль должен быть очень сложный и на 32 символа. Это важно так как только через него можно управлять контейнерами.

Your Portainer instance timed out for security purposes. To re-enable your Portainer instance, you will need to restart Portainer.

Якщо ви отримуєте наведене вище повідомлення про помилку, ви можете вирішити це, зупинивши та перезапустивши контейнер Portainer. Це дасть вам ще 5 хвилин для завершення початкового налаштування.

docker stop portainer
docker start portainer

--- БАЗА ДАНИХ (Згенеровано новий пароль) ---

POSTGRES_PASSWORD=GenX_99!SuperStrongPass#2025_Ukr

--- JWT КЛЮЧІ (УВАГА: Це стандартні ключі для старту. Див. інструкцію нижче для зміни) ---

JWT_SECRET=your-super-secret-jwt-token-with-at-least-32-characters-long ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q

--- НАЛАШТУВАННЯ DASHBOARD (STUDIO) ---

DASHBOARD_USERNAME=admin DASHBOARD_PASSWORD=Admin_Supabase_Secure_2025!

--- КЛЮЧІ ШИФРУВАННЯ (Згенеровано нові) ---

SECRET_KEY_BASE=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6 VAULT_ENC_KEY=12345678901234567890123456789012 PG_META_CRYPTO_KEY=12345678901234567890123456789012

--- ПОРТИ ТА НАЛАШТУВАННЯ DB ---

POSTGRES_HOST=db POSTGRES_DB=postgres POSTGRES_PORT=5432 POOLER_PROXY_PORT_TRANSACTION=6543 POOLER_DEFAULT_POOL_SIZE=20 POOLER_MAX_CLIENT_CONN=100 POOLER_TENANT_ID=notefix-tenant-id POOLER_DB_POOL_SIZE=5

--- ПОРТИ API (KONG) ---

KONG_HTTP_PORT=8000 KONG_HTTPS_PORT=8443

--- НАЛАШТУВАННЯ DB SCHEMAS ---

PGRST_DB_SCHEMAS=public,storage,graphql_public

--- ВАЖЛИВО: URL АДРЕСИ ---

Припускаємо, що у вас налаштовано SSL (https) через проксі

SITE_URL=https://n8n.notefix.net.ua ADDITIONAL_REDIRECT_URLS=https://n8n.notefix.net.ua API_EXTERNAL_URL=https://n8n.notefix.net.ua SUPABASE_PUBLIC_URL=https://n8n.notefix.net.ua

--- АВТОРИЗАЦІЯ ---

JWT_EXPIRY=3600 DISABLE_SIGNUP=false ENABLE_EMAIL_SIGNUP=true ENABLE_EMAIL_AUTOCONFIRM=false ENABLE_ANONYMOUS_USERS=false ENABLE_PHONE_SIGNUP=true ENABLE_PHONE_AUTOCONFIRM=true

--- EMAIL (SMTP) ---

Налаштуйте тут реальні дані свого поштового сервісу (Gmail, SendGrid тощо)

Якщо поки немає пошти - залиште як є, але підтвердження email не працюватиме.

MAILER_URLPATHS_CONFIRMATION="/auth/v1/verify" MAILER_URLPATHS_INVITE="/auth/v1/verify" MAILER_URLPATHS_RECOVERY="/auth/v1/verify" MAILER_URLPATHS_EMAIL_CHANGE="/auth/v1/verify" SMTP_ADMIN_EMAIL=admin@n8n.notefix.net.ua SMTP_HOST=supabase-mail SMTP_PORT=2500 SMTP_USER=fake_mail_user SMTP_PASS=fake_mail_password SMTP_SENDER_NAME=Supabase_Admin

--- ІНШЕ ---

STUDIO_DEFAULT_ORGANIZATION=Notefix Org STUDIO_DEFAULT_PROJECT=Notefix Project IMGPROXY_ENABLE_WEBP_DETECTION=true OPENAI_API_KEY= FUNCTIONS_VERIFY_JWT=false

--- LOGFLARE (Аналітика логів) ---

LOGFLARE_PUBLIC_ACCESS_TOKEN=lf_public_key_random_generated_string_123 LOGFLARE_PRIVATE_ACCESS_TOKEN=lf_private_key_random_generated_string_456

--- DOCKER ---

DOCKER_SOCKET_LOCATION=/var/run/docker.sock

--- GOOGLE AUTH (Опціонально) ---

GOOGLE_PROJECT_ID= GOOGLE_PROJECT_NUMBER=

version: "3.8"

volumes:

  n8n_app_data:

  n8n_db_data:

services:

  postgres:

    image: postgres

    restart: always

    environment:

      - POSTGRES_USER

      - POSTGRES_PASSWORD

      - POSTGRES_DB

      - POSTGRES_NON_ROOT_USER

      - POSTGRES_NON_ROOT_PASSWORD

      - EXECUTIONS_DATA_PRUNE=true

    volumes:

      - n8n_db_data:/var/lib/postgresql/data

      - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh

    healthcheck:

      test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']

      interval: 5s

      timeout: 5s

      retries: 10

  n8n:

    image: docker.n8n.io/n8nio/n8n

    restart: always

    ports:

      - "5678:5678"

    links:

      - postgres

    environment:

      - DB_TYPE=postgresdb

      - DB_POSTGRESDB_HOST=postgres

      - DB_POSTGRESDB_PORT=5432

      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}

      - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}

      - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}

      - NODE_ENV=production

      - WEBHOOK_URL=${DOMAIN}

      - GENERIC_TIMEZONE=${TIMEZONE}

      - EXECUTIONS_DATA_SAVE_ON_SUCCESS=none

      - EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false

      - EXECUTIONS_DATA_PRUNE=true

    depends_on:

      postgres:

        condition: service_healthy

    volumes:

      - n8n_app_data:/home/node/.n8n

      - /n8n-local-files:/files

networks:

  default:

    external:

      name: supabase_default