263 lines
No EOL
8 KiB
Markdown
263 lines
No EOL
8 KiB
Markdown
# Оновлюємо систему
|
||
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
|
||
|
||
|