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

263 lines
No EOL
8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Оновлюємо систему
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-1~ubuntu.25.10~questing \
docker-ce-cli=5:28.5.2-1~ubuntu.25.10~questing \
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/](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