440 lines
20 KiB
YAML
440 lines
20 KiB
YAML
# тест тест
|
||
|
||
volumes:
|
||
n8n_storage:
|
||
postgres_data:
|
||
valkey-data:
|
||
grafana-data:
|
||
prometheus_data:
|
||
|
||
x-n8n: &service-n8n
|
||
image: n8nio/n8n:stable
|
||
restart: unless-stopped
|
||
environment:
|
||
WEBHOOK_URL: ${WEBHOOK_URL:-}
|
||
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY:-}
|
||
# Изоляция self-hosted
|
||
# https://docs.n8n.io/hosting/configuration/configuration-examples/isolation/
|
||
# =============================================================================
|
||
# N8N_DIAGNOSTICS_ENABLED - Отправлять анонимную телеметрию (false отключает Ask AI в Code node). По умолчанию: true.
|
||
# N8N_VERSION_NOTIFICATIONS_ENABLED - Уведомления о новых версиях. По умолчанию: true.
|
||
# N8N_TEMPLATES_ENABLED - Включить шаблоны workflow. По умолчанию: false.
|
||
# N8N_HIRING_BANNER_ENABLED - Баннер о вакансиях в консоли. По умолчанию: true.
|
||
N8N_DIAGNOSTICS_ENABLED: false
|
||
N8N_VERSION_NOTIFICATIONS_ENABLED: false
|
||
N8N_TEMPLATES_ENABLED: false
|
||
N8N_HIRING_BANNER_ENABLED: false
|
||
|
||
# Настройки логирования
|
||
# https://docs.n8n.io/hosting/configuration/environment-variables/logs/
|
||
# =============================================================================
|
||
# N8N_LOG_LEVEL - Уровень логирования: info|warn|error|debug. По умолчанию: info.
|
||
# N8N_LOG_OUTPUT - Куда выводить: console|file (через запятую). По умолчанию: console.
|
||
# N8N_LOG_FORMAT - Формат: text|json. По умолчанию: text.
|
||
# N8N_LOG_FILE_LOCATION - Путь к файлу лога. По умолчанию: ~/.n8n/logs/n8n.log.
|
||
# N8N_LOG_FILE_SIZE_MAX - Максимальный размер файла лога (MB). По умолчанию: 16.
|
||
# DB_LOGGING_ENABLED - Логирование запросов к БД. По умолчанию: false.
|
||
# DB_LOGGING_OPTIONS - Уровень логирования БД: query|error|schema|warn|info|log|all. По умолчанию: error.
|
||
# CODE_ENABLE_STDOUT - Выводить console.log из Code node в stdout. По умолчанию: false.
|
||
|
||
N8N_LOG_LEVEL: info
|
||
N8N_LOG_OUTPUT: console,file
|
||
N8N_LOG_FORMAT: json
|
||
N8N_LOG_FILE_LOCATION: /data/logs/n8n.log
|
||
N8N_LOG_FILE_SIZE_MAX: 20
|
||
N8N_LOG_FILE_COUNT_MAX: 10
|
||
DB_LOGGING_ENABLED: true
|
||
DB_LOGGING_OPTIONS: error
|
||
CODE_ENABLE_STDOUT: false
|
||
|
||
# Персонализация
|
||
# =============================================================================
|
||
# N8N_PERSONALIZATION_ENABLED - Вопросы персонализации при первом запуске. По умолчанию: true.
|
||
# N8N_HIDE_USAGE_PAGE - Скрыть страницу использования и планов. По умолчанию: false.
|
||
N8N_PERSONALIZATION_ENABLED: false
|
||
N8N_HIDE_USAGE_PAGE: true
|
||
|
||
# Настройки узлов (Nodes)
|
||
# https://docs.n8n.io/hosting/configuration/environment-variables/nodes/
|
||
# NODES_EXCLUDE: Список узлов, которые не нужно загружать (блокировка). Пример: ["n8n-nodes-baseexecuteCommand"].
|
||
NODES_EXCLUDE: ${NODES_EXCLUDE:-[]}
|
||
|
||
# Настройки безопасности
|
||
# https://docs.n8n.io/hosting/configuration/environment-variables/security/
|
||
# N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES - Блокировать доступ к файлам .n8n и конфигам. По умолчанию: true.
|
||
# N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS - Права 0600 на файл настроек. По умолчанию: false.
|
||
# N8N_RESTRICT_FILE_ACCESS_TO - Директории с разрешенным доступом к файлам (через ;). По умолчанию: "".
|
||
|
||
N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES: true
|
||
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: false
|
||
N8N_RESTRICT_FILE_ACCESS_TO: /data/shared;/data/logs
|
||
|
||
# Настройки часового пояса и локализации
|
||
# https://docs.n8n.io/hosting/configuration/environment-variables/timezone-localization/
|
||
# =============================================================================
|
||
# GENERIC_TIMEZONE - Часовой пояс (важно для Schedule/Cron узлов). По умолчанию: America/New_York.
|
||
# N8N_DEFAULT_LOCALE - Локаль интерфейса (региональные идентификаторы не поддерживаются). По умолчанию: en.
|
||
GENERIC_TIMEZONE: ${GENERIC_TIMEZONE:-Europe/Moscow}
|
||
N8N_DEFAULT_LOCALE: ${N8N_DEFAULT_LOCALE:-en}
|
||
|
||
# Настройки базы данных PostgreSQL
|
||
# https://docs.n8n.io/hosting/configuration/environment-variables/database/
|
||
# =============================================================================
|
||
# -- Параметры подключения
|
||
# DB_POSTGRESDB_DATABASE - Имя базы данных PostgreSQL(по умолчанию: n8n)
|
||
# DB_POSTGRESDB_HOST - Хост PostgreSQL сервера(по умолчанию: localhost)
|
||
# DB_POSTGRESDB_PORT - Порт PostgreSQL сервера(по умолчанию: 5432)
|
||
# DB_POSTGRESDB_USER - Имя пользователя PostgreSQL(по умолчанию: postgres)
|
||
# DB_POSTGRESDB_PASSWORD - Пароль PostgreSQL(обязательное поле, нет значения по умолчанию)
|
||
|
||
DB_TYPE: postgresdb
|
||
DB_POSTGRESDB_DATABASE: ${DB_POSTGRESDB_DATABASE:-n8n}
|
||
DB_POSTGRESDB_HOST: ${DB_POSTGRESDB_HOST:-postgres}
|
||
DB_POSTGRESDB_PORT: ${DB_POSTGRESDB_PORT:-5432}
|
||
DB_POSTGRESDB_USER: ${DB_POSTGRESDB_USER:-postgres}
|
||
DB_POSTGRESDB_PASSWORD: ${DB_POSTGRESDB_PASSWORD:-your_secure_password_here}
|
||
|
||
# Настройки Task Runner
|
||
# https://docs.n8n.io/hosting/configuration/environment-variables/task-runners/
|
||
# =============================================================================
|
||
# N8N_RUNNERS_ENABLED - Включить task runners (рекомендуется для production). По умолчанию: false.
|
||
# N8N_RUNNERS_MODE - Режим: internal|external. По умолчанию: internal.
|
||
# N8N_RUNNERS_BROKER_LISTEN_ADDRESS - Адрес брокера (127.0.0.1 для internal, 0.0.0.0 для external). По умолчанию: 127.0.0.1.
|
||
# N8N_RUNNERS_AUTH_TOKEN - Токен аутентификации (обязателен для external, авто для internal). По умолчанию: "".
|
||
# N8N_RUNNERS_MAX_CONCURRENCY - Одновременных задач на runner'е. По умолчанию: 5.
|
||
# N8N_RUNNERS_TASK_TIMEOUT - Макс. время выполнения задачи (сек), после — runner перезапускается. По умолчанию: 300.
|
||
# N8N_RUNNERS_INSECURE_MODE - Отключить все меры безопасности (НЕ ДЛЯ PRODUCTION!). По умолчанию: false.
|
||
# N8N_RUNNERS_TASK_REQUEST_TIMEOUT - Таймаут ожидания свободного runner'а (сек). По умолчанию: 20.
|
||
|
||
N8N_RUNNERS_ENABLED: true
|
||
N8N_RUNNERS_MODE: external
|
||
N8N_RUNNERS_AUTH_TOKEN: ${N8N_RUNNERS_AUTH_TOKEN:-your-secret-here}
|
||
N8N_RUNNERS_BROKER_PORT: 5679
|
||
N8N_RUNNERS_BROKER_LISTEN_ADDRESS: 0.0.0.0
|
||
N8N_RUNNERS_MAX_CONCURRENCY: ${N8N_RUNNERS_MAX_CONCURRENCY:-5}
|
||
N8N_RUNNERS_TASK_TIMEOUT: ${N8N_RUNNERS_TASK_TIMEOUT:-300}
|
||
N8N_RUNNERS_INSECURE_MODE: ${N8N_RUNNERS_INSECURE_MODE:-false}
|
||
N8N_RUNNERS_TASK_REQUEST_TIMEOUT: ${N8N_RUNNERS_TASK_REQUEST_TIMEOUT:-20}
|
||
|
||
# Настройки режима очереди (Queue mode)
|
||
# https://docs.n8n.io/hosting/configuration/environment-variables/queue-mode/
|
||
# =============================================================================
|
||
# EXECUTIONS_MODE - Режим выполнения: regular|queue. По умолчанию: regular.
|
||
# OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS - Ручные запуски на worker'ах. По умолчанию: false.
|
||
# QUEUE_BULL_REDIS_HOST - Хост Redis. По умолчанию: localhost.
|
||
# QUEUE_BULL_REDIS_PORT - Порт Redis. По умолчанию: 6379.
|
||
# QUEUE_HEALTH_CHECK_ACTIVE - Health checks. По умолчанию: false.
|
||
|
||
EXECUTIONS_MODE: queue
|
||
OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS: true
|
||
QUEUE_BULL_REDIS_HOST: ${REDIS_HOST:-redis}
|
||
QUEUE_BULL_REDIS_PORT: ${REDIS_PORT:-6379}
|
||
QUEUE_HEALTH_CHECK_ACTIVE: true
|
||
|
||
# Настройки мониторинга
|
||
# https://docs.n8n.io/hosting/configuration/environment-variables/endpoints/
|
||
# =============================================================================
|
||
|
||
# N8N_METRICS - Включить endpoint /metrics. По умолчанию: false.
|
||
# N8N_METRICS_PREFIX - Префикс для метрик. По умолчанию: n8n_.
|
||
# N8N_METRICS_INCLUDE_DEFAULT_METRICS - Стандартные метрики системы и node.js. По умолчанию: true.
|
||
# N8N_METRICS_INCLUDE_CACHE_METRICS - Метрики кэша. По умолчанию: false.
|
||
# N8N_METRICS_INCLUDE_MESSAGE_EVENT_BUS_METRICS - Метрики шины событий. По умолчанию: false.
|
||
# N8N_METRICS_INCLUDE_WORKFLOW_ID_LABEL - Label с ID workflow. По умолчанию: false.
|
||
# N8N_METRICS_INCLUDE_NODE_TYPE_LABEL - Label с типом узла. По умолчанию: false.
|
||
# N8N_METRICS_INCLUDE_CREDENTIAL_TYPE_LABEL - Label с типом credentials. По умолчанию: false.
|
||
# N8N_METRICS_INCLUDE_API_ENDPOINTS - Метрики для API endpoints. По умолчанию: false.
|
||
# N8N_METRICS_INCLUDE_API_PATH_LABEL - Label с путем API. По умолчанию: false.
|
||
# N8N_METRICS_INCLUDE_API_METHOD_LABEL - Label с HTTP методом. По умолчанию: false.
|
||
# N8N_METRICS_INCLUDE_API_STATUS_CODE_LABEL - Label с HTTP статус-кодом. По умолчанию: false.
|
||
# N8N_METRICS_INCLUDE_QUEUE_METRICS - Метрики очереди (для scaling mode). По умолчанию: false.
|
||
# N8N_METRICS_QUEUE_METRICS_INTERVAL - Частота обновления метрик очереди (сек). По умолчанию: 20.
|
||
|
||
N8N_METRICS: ${N8N_METRICS:-true}
|
||
N8N_METRICS_PREFIX: ${N8N_METRICS_PREFIX:-n8n_}
|
||
N8N_METRICS_INCLUDE_DEFAULT_METRICS: ${N8N_METRICS_INCLUDE_DEFAULT_METRICS:-true}
|
||
N8N_METRICS_INCLUDE_CACHE_METRICS: ${N8N_METRICS_INCLUDE_CACHE_METRICS:-false}
|
||
N8N_METRICS_INCLUDE_MESSAGE_EVENT_BUS_METRICS: ${N8N_METRICS_INCLUDE_MESSAGE_EVENT_BUS_METRICS:-false}
|
||
N8N_METRICS_INCLUDE_WORKFLOW_ID_LABEL: ${N8N_METRICS_INCLUDE_WORKFLOW_ID_LABEL:-true}
|
||
N8N_METRICS_INCLUDE_NODE_TYPE_LABEL: ${N8N_METRICS_INCLUDE_NODE_TYPE_LABEL:-true}
|
||
N8N_METRICS_INCLUDE_CREDENTIAL_TYPE_LABEL: ${N8N_METRICS_INCLUDE_CREDENTIAL_TYPE_LABEL:-false}
|
||
N8N_METRICS_INCLUDE_API_ENDPOINTS: ${N8N_METRICS_INCLUDE_API_ENDPOINTS:-false}
|
||
N8N_METRICS_INCLUDE_API_PATH_LABEL: ${N8N_METRICS_INCLUDE_API_PATH_LABEL:-false}
|
||
N8N_METRICS_INCLUDE_API_METHOD_LABEL: ${N8N_METRICS_INCLUDE_API_METHOD_LABEL:-false}
|
||
N8N_METRICS_INCLUDE_API_STATUS_CODE_LABEL: ${N8N_METRICS_INCLUDE_API_STATUS_CODE_LABEL:-false}
|
||
N8N_METRICS_INCLUDE_QUEUE_METRICS: ${N8N_METRICS_INCLUDE_QUEUE_METRICS:-true}
|
||
N8N_METRICS_QUEUE_METRICS_INTERVAL: ${N8N_METRICS_QUEUE_METRICS_INTERVAL:-20}
|
||
|
||
N8N_USER_MANAGEMENT_DISABLED: false
|
||
N8N_SECURE_COOKIE: false
|
||
|
||
# Политика хранения данных выполнений
|
||
# https://docs.n8n.io/hosting/configuration/environment-variables/executions/
|
||
# =============================================================================
|
||
# EXECUTIONS_DATA_MAX_AGE - Максимальный возраст данных (часы). По умолчанию: 336.
|
||
# EXECUTIONS_DATA_PRUNE_MAX_COUNT - Максимум хранимых выполнений. По умолчанию: 10000.
|
||
# N8N_WORKFLOW_HISTORY_PRUNE_TIME - Хранить версии workflow (часы, -1 = бессрочно). По умолчанию: -1.
|
||
# N8N_INSIGHTS_COMPACTION_HOURLY_TO_DAILY_THRESHOLD_DAYS - Компактизация часовых → дневных (дни). По умолчанию: 90.
|
||
# N8N_INSIGHTS_COMPACTION_DAILY_TO_WEEKLY_THRESHOLD_DAYS - Компактизация дневных → недельных (дни). По умолчанию: 180.
|
||
|
||
EXECUTIONS_DATA_PRUNE: true
|
||
EXECUTIONS_DATA_MAX_AGE: 168 # 7 дней
|
||
EXECUTIONS_DATA_PRUNE_MAX_COUNT: 5000
|
||
EXECUTIONS_DATA_HARD_DELETE_BUFFER: 1
|
||
EXECUTIONS_DATA_PRUNE_HARD_DELETE_INTERVAL: 15
|
||
EXECUTIONS_DATA_PRUNE_SOFT_DELETE_INTERVAL: 60
|
||
|
||
N8N_WORKFLOW_HISTORY_PRUNE_TIME: 720 # 30 дней
|
||
|
||
N8N_INSIGHTS_COMPACTION_HOURLY_TO_DAILY_THRESHOLD_DAYS: 30
|
||
N8N_INSIGHTS_COMPACTION_DAILY_TO_WEEKLY_THRESHOLD_DAYS: 60
|
||
|
||
logging:
|
||
driver: json-file
|
||
options:
|
||
max-size: "10m"
|
||
max-file: "5"
|
||
extra_hosts:
|
||
- "kontur.bbr.ru:192.168.1.155"
|
||
- "bankrupt.bbr.ru:192.168.1.155"
|
||
- "forge.bbr.ru:192.168.1.155"
|
||
- "forge2.bbr.ru:192.168.1.156"
|
||
|
||
x-n8n-runner: &service-n8n-runner
|
||
build:
|
||
context: ./n8n/runner
|
||
dockerfile: Dockerfile.runner
|
||
pull: true
|
||
logging:
|
||
driver: json-file
|
||
options:
|
||
max-size: "10m"
|
||
max-file: "3"
|
||
|
||
services:
|
||
fix-permissions:
|
||
image: alpine:3
|
||
container_name: fix-permissions
|
||
restart: "no"
|
||
user: root
|
||
# n8n, n8n-worker-1, n8n-runner-1 запускаются от uid 1000 (node)
|
||
# После клонирования через Portainer директории принадлежат root — исправляем
|
||
command: chown -R 1000:1000 /data/shared /data/logs /backup
|
||
volumes:
|
||
- ./n8n/shared:/data/shared
|
||
- ./n8n/logs:/data/logs
|
||
- ./n8n/backup:/backup
|
||
logging:
|
||
driver: json-file
|
||
options:
|
||
max-size: "1m"
|
||
max-file: "1"
|
||
|
||
n8n:
|
||
<<: *service-n8n
|
||
container_name: n8n
|
||
restart: unless-stopped
|
||
volumes:
|
||
- n8n_storage:/home/node/.n8n
|
||
- ./n8n/shared:/data/shared
|
||
- ./n8n/logs:/data/logs
|
||
ports:
|
||
- "5678:5678"
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "wget -qO- http://localhost:5678/healthz || exit 1"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 5
|
||
start_period: 60s
|
||
depends_on:
|
||
fix-permissions:
|
||
condition: service_completed_successfully
|
||
postgres:
|
||
condition: service_healthy
|
||
|
||
n8n-worker-1:
|
||
<<: *service-n8n
|
||
command: worker
|
||
container_name: n8n-worker-1
|
||
volumes:
|
||
- n8n_storage:/home/node/.n8n
|
||
- ./n8n/shared:/data/shared
|
||
- ./n8n/logs:/data/logs
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "wget -qO- http://localhost:5678/healthz || exit 1"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 5
|
||
start_period: 30s
|
||
depends_on:
|
||
fix-permissions:
|
||
condition: service_completed_successfully
|
||
n8n:
|
||
condition: service_healthy
|
||
redis:
|
||
condition: service_healthy
|
||
postgres:
|
||
condition: service_healthy
|
||
|
||
n8n-runner-1:
|
||
<<: *service-n8n-runner
|
||
container_name: n8n-runner-1
|
||
restart: unless-stopped
|
||
volumes:
|
||
- ./n8n/shared:/data/shared
|
||
- ./n8n/logs:/data/logs
|
||
entrypoint:
|
||
["/bin/sh", "-c", "/usr/local/bin/task-runner-launcher javascript python"]
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "wget -qO- http://localhost:5680/healthz || exit 1"]
|
||
interval: 30s
|
||
timeout: 10s
|
||
retries: 5
|
||
start_period: 30s
|
||
environment:
|
||
# N8N_RUNNERS_TASK_BROKER_URI - URI брокера задач. По умолчанию: http://127.0.0.1:5679.
|
||
# GENERIC_TIMEZONE - Часовой пояс (важно для Schedule/Cron узлов). По умолчанию: America/New_York.
|
||
# N8N_RUNNERS_AUTH_TOKEN - Токен аутентификации (обязателен для external, авто для internal). По умолчанию: "".
|
||
# N8N_RUNNERS_LAUNCHER_LOG_LEVEL - Уровень логирования: debug|info|warn|error. По умолчанию: info.
|
||
# N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT - Секунд бездействия до остановки runner'а. По умолчанию: 15.
|
||
|
||
N8N_RUNNERS_TASK_BROKER_URI: http://n8n-worker-1:5679
|
||
GENERIC_TIMEZONE: ${GENERIC_TIMEZONE:-Europe/Moscow}
|
||
N8N_RUNNERS_AUTH_TOKEN: ${N8N_RUNNERS_AUTH_TOKEN:-your-secret-here}
|
||
N8N_RUNNERS_LAUNCHER_LOG_LEVEL: ${N8N_RUNNERS_LAUNCHER_LOG_LEVEL:-info}
|
||
N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT: ${N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT:-15}
|
||
depends_on:
|
||
fix-permissions:
|
||
condition: service_completed_successfully
|
||
n8n-worker-1:
|
||
condition: service_healthy
|
||
|
||
postgres:
|
||
container_name: postgres
|
||
image: postgres:${POSTGRES_VERSION:-17}
|
||
restart: unless-stopped
|
||
# autovacuum_vacuum_scale_factor=0.05 — запускать VACUUM когда мёртвых строк > 5% таблицы (по умолчанию 20%)
|
||
command: >
|
||
postgres
|
||
-c autovacuum=on
|
||
-c autovacuum_vacuum_scale_factor=0.05
|
||
-c autovacuum_analyze_scale_factor=0.02
|
||
ports:
|
||
- "5433:5432"
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||
interval: 3s
|
||
timeout: 3s
|
||
retries: 10
|
||
environment:
|
||
POSTGRES_USER: ${DB_POSTGRESDB_USER:-postgres}
|
||
POSTGRES_PASSWORD: ${DB_POSTGRESDB_PASSWORD:-your_secure_password_here}
|
||
POSTGRES_DB: ${DB_POSTGRESDB_DATABASE:-n8n}
|
||
volumes:
|
||
- postgres_data:/var/lib/postgresql/data
|
||
logging:
|
||
driver: json-file
|
||
options:
|
||
max-size: "10m"
|
||
max-file: "3"
|
||
|
||
redis:
|
||
container_name: redis
|
||
image: docker.io/valkey/valkey:8-alpine
|
||
# --save 30 1 — снапшот каждые 30 мин при ≥1 изменении
|
||
# --maxmemory 256mb — жёсткий лимит памяти
|
||
# --maxmemory-policy allkeys-lru — вытеснять редко используемые ключи при достижении лимита
|
||
command: >
|
||
valkey-server
|
||
--save 30 1
|
||
--loglevel warning
|
||
--maxmemory 256mb
|
||
--maxmemory-policy allkeys-lru
|
||
restart: unless-stopped
|
||
stop_grace_period: 30s
|
||
volumes:
|
||
- valkey-data:/data
|
||
cap_drop:
|
||
- ALL
|
||
cap_add:
|
||
- SETGID
|
||
- SETUID
|
||
- DAC_OVERRIDE
|
||
healthcheck:
|
||
test: ["CMD", "redis-cli", "ping"]
|
||
interval: 3s
|
||
timeout: 10s
|
||
retries: 10
|
||
logging:
|
||
driver: json-file
|
||
options:
|
||
max-size: "5m"
|
||
max-file: "3"
|
||
|
||
prometheus:
|
||
image: prom/prometheus:latest
|
||
container_name: prometheus
|
||
restart: unless-stopped
|
||
# --storage.tsdb.retention.time — удалять данные старше 15 дней
|
||
# --storage.tsdb.retention.size — удалять при превышении 1 ГБ (что наступит первым)
|
||
command:
|
||
- '--config.file=/etc/prometheus/prometheus.yml'
|
||
- '--storage.tsdb.path=/prometheus'
|
||
- '--storage.tsdb.retention.time=15d'
|
||
- '--storage.tsdb.retention.size=1GB'
|
||
ports:
|
||
- "9090:9090"
|
||
volumes:
|
||
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
||
- prometheus_data:/prometheus
|
||
extra_hosts:
|
||
- "host.docker.internal:host-gateway"
|
||
depends_on:
|
||
- n8n
|
||
logging:
|
||
driver: json-file
|
||
options:
|
||
max-size: "10m"
|
||
max-file: "3"
|
||
|
||
grafana:
|
||
image: grafana/grafana:11.2.0
|
||
container_name: grafana
|
||
restart: unless-stopped
|
||
environment:
|
||
GF_SECURITY_ADMIN_USER: ${GF_SECURITY_ADMIN_USER:-admin}
|
||
GF_SECURITY_ADMIN_PASSWORD: ${GF_SECURITY_ADMIN_PASSWORD:-admin}
|
||
GF_LOG_LEVEL: warn
|
||
GF_LOG_MODE: console
|
||
ports:
|
||
- "3000:3000"
|
||
volumes:
|
||
- grafana-data:/var/lib/grafana
|
||
- ./grafana/provisioning:/etc/grafana/provisioning
|
||
- ./grafana/dashboards:/var/lib/grafana/dashboards
|
||
extra_hosts:
|
||
- "host.docker.internal:host-gateway"
|
||
depends_on:
|
||
- prometheus
|
||
logging:
|
||
driver: json-file
|
||
options:
|
||
max-size: "10m"
|
||
max-file: "3"
|
||
|
||
n8n-import:
|
||
<<: *service-n8n
|
||
container_name: n8n-import
|
||
restart: "no"
|
||
entrypoint: /bin/sh
|
||
command: /scripts/import_workflows.sh
|
||
volumes:
|
||
- n8n_storage:/home/node/.n8n
|
||
- ./n8n/shared:/data/shared
|
||
- ./n8n/logs:/data/logs
|
||
- ./n8n/backup:/backup
|
||
- ./scripts/import_workflows.sh:/scripts/import_workflows.sh:ro
|
||
depends_on:
|
||
n8n:
|
||
condition: service_healthy
|