feat: prepare N8N for update with proper environment variables
- Add N8N_RUNNERS_ENABLED=true (recommended for future versions) - Add N8N_BLOCK_ENV_ACCESS_IN_NODE=false (preserve current behavior) - Apply to main n8n instance and all 4 workers - Create comprehensive container update report - Document deprecation warnings and update strategy - Ready for docker pull n8nio/n8n:latest when needed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
7375b368d7
commit
3527198784
2 changed files with 277 additions and 18 deletions
249
CONTAINER-UPDATES-CHECK-20251129.md
Normal file
249
CONTAINER-UPDATES-CHECK-20251129.md
Normal file
|
|
@ -0,0 +1,249 @@
|
|||
# Проверка Обновлений Контейнеров Docker
|
||||
**Дата:** 29 ноября 2025
|
||||
**Сервер:** 51.89.231.46
|
||||
**Статус:** 40+ контейнеров на :latest тегах - требуется обновление
|
||||
|
||||
---
|
||||
|
||||
## Резюме
|
||||
|
||||
На сервере развернуто **40+ контейнеров**, большинство использует `:latest` теги. Это означает, что обновления доступны на Docker Hub и их можно загрузить.
|
||||
|
||||
### Приоритизация:
|
||||
- **СРОЧНО** ⚠️ - N8N (есть deprecation warnings)
|
||||
- **ВЫСОКИЙ** 🔴 - Prometheus, Grafana, Loki
|
||||
- **СРЕДНИЙ** 🟡 - Остальные сервисы
|
||||
- **НИЗКИЙ** 🟢 - Спецификация версий (не требуют обновления)
|
||||
|
||||
---
|
||||
|
||||
## Детальный Анализ
|
||||
|
||||
### 1. N8N 🔴 КРИТИЧНО
|
||||
|
||||
**Текущий статус:** n8nio/n8n:latest
|
||||
**Статус:** ТРЕБУЕТ ВНИМАНИЯ
|
||||
|
||||
**Проблемы:**
|
||||
```
|
||||
WARNING: N8N_BLOCK_ENV_ACCESS_IN_NODE → будет изменено на true по умолчанию
|
||||
WARNING: N8N_RUNNERS_ENABLED → будет включено по умолчанию в будущей версии
|
||||
```
|
||||
|
||||
**Что нужно сделать:**
|
||||
1. Обновить docker-compose.yml для n8n-shared
|
||||
2. Добавить явные переменные окружения:
|
||||
```yaml
|
||||
environment:
|
||||
- N8N_RUNNERS_ENABLED=true
|
||||
- N8N_BLOCK_ENV_ACCESS_IN_NODE=false # если используются env variables в Code Node
|
||||
```
|
||||
3. Протестировать workflows после обновления
|
||||
4. Перезагрузить все n8n workers (1-4)
|
||||
|
||||
**Место конфига:** `/opt/02-core/n8n-shared/docker-compose.yml`
|
||||
|
||||
---
|
||||
|
||||
### 2. Grafana Stack 🔴 ВЫСОКИЙ ПРИОРИТЕТ
|
||||
|
||||
| Компонент | Текущая версия | Новые обновления | Действие |
|
||||
|-----------|---|---|---|
|
||||
| Prometheus | 3.7.3 | ✅ Проверить | `docker pull prom/prometheus:latest` |
|
||||
| Grafana | :latest | ✅ Проверить | `docker pull grafana/grafana:latest` |
|
||||
| Loki | :latest | ✅ Проверить | `docker pull grafana/loki:latest` |
|
||||
| Promtail | :latest | ✅ Проверить | `docker pull grafana/promtail:latest` |
|
||||
| Alertmanager | :latest | ✅ Проверить | `docker pull prom/alertmanager:latest` |
|
||||
|
||||
**Стратегия обновления:**
|
||||
1. Обновлять по одному компоненту
|
||||
2. Проверить логи после каждого обновления
|
||||
3. Убедиться что метрики собираются корректно
|
||||
4. Проверить дашборды в Grafana
|
||||
|
||||
**Место конфига:** `/opt/04-tools/monitoring/docker-compose.yml`
|
||||
|
||||
---
|
||||
|
||||
### 3. Инфраструктура ✅ АКТУАЛЬНЫ
|
||||
|
||||
| Сервис | Версия | Статус | Действие |
|
||||
|--------|--------|--------|---------|
|
||||
| traefik | :latest | Актуальна | Проверять регулярно |
|
||||
| postgres | 17-alpine | Актуальна | Не критично |
|
||||
| redis | 7-alpine | Актуальна | Не критично |
|
||||
| rabbitmq | 3.13-management-alpine | Актуальна | Не критично |
|
||||
| Authentik | 2025.10.2 | Актуальна | Не критично |
|
||||
| Vault | 1.21 | Актуальна | Не критично |
|
||||
|
||||
---
|
||||
|
||||
### 4. Основные Сервисы
|
||||
|
||||
| Сервис | Текущий тег | Примечание |
|
||||
|--------|-----------|-----------|
|
||||
| Odoo | :latest | Может быть обновление |
|
||||
| Outline | :latest | Может быть обновление |
|
||||
| Evolution API | :latest | Может быть обновление |
|
||||
| Vaultwarden | :latest-alpine | Может быть обновление |
|
||||
| Portainer | :latest | Версия 2.33.4 (относительно свежая) |
|
||||
| MiroTalk SFU | :latest | Может быть обновление |
|
||||
|
||||
---
|
||||
|
||||
### 5. Вспомогательные Сервисы
|
||||
|
||||
| Сервис | Тег | Примечание |
|
||||
|--------|-----|-----------|
|
||||
| pgAdmin | :latest | Может быть обновление |
|
||||
| cAdvisor | :latest | Может быть обновление |
|
||||
| imgproxy | :latest | Может быть обновление |
|
||||
| Kong | :latest | Может быть обновление |
|
||||
| PostgREST | :latest | Может быть обновление |
|
||||
| nginx | alpine | Может быть обновление |
|
||||
| Vector | :latest-alpine | Может быть обновление |
|
||||
|
||||
---
|
||||
|
||||
### 6. Supabase Stack
|
||||
|
||||
Несколько компонентов Supabase с конкретными версиями:
|
||||
- supabase/edge-runtime:v1.69.6
|
||||
- supabase/gotrue:v2.180.0 ← GoTrue API (работает)
|
||||
- supabase/postgres:15.8.1.085
|
||||
- supabase/postgres-meta:v0.91.6
|
||||
- supabase/realtime:v2.51.11
|
||||
- supabase/storage-api:v1.28.0
|
||||
- supabase/studio:2025.10.01-sha-8460121
|
||||
- supabase/supavisor:2.7.0
|
||||
- supabase/logflare:1.22.6
|
||||
|
||||
**Статус:** Может быть обновление, но они часто обновляются вместе (компонентность версий)
|
||||
|
||||
---
|
||||
|
||||
## План Обновления
|
||||
|
||||
### Фаза 1: СРОЧНО (этот день)
|
||||
```bash
|
||||
# 1. Обновить N8N
|
||||
cd /opt/02-core/n8n-shared
|
||||
docker pull n8nio/n8n:latest
|
||||
# Добавить переменные окружения
|
||||
# docker-compose down && docker-compose up -d
|
||||
```
|
||||
|
||||
### Фаза 2: Высокий приоритет (неделя)
|
||||
```bash
|
||||
# 1. Prometheus
|
||||
cd /opt/04-tools/monitoring
|
||||
docker pull prom/prometheus:latest
|
||||
|
||||
# 2. Grafana
|
||||
docker pull grafana/grafana:latest
|
||||
|
||||
# 3. Loki
|
||||
docker pull grafana/loki:latest
|
||||
```
|
||||
|
||||
### Фаза 3: Средний приоритет (месяц)
|
||||
```bash
|
||||
# Остальные сервисы по одному с тестированием
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Команды для Проверки Обновлений
|
||||
|
||||
```bash
|
||||
# Проверить последнюю версию образа
|
||||
docker pull prom/prometheus:latest
|
||||
docker inspect prom/prometheus:latest | grep -i digest
|
||||
|
||||
# Сравнить с текущей
|
||||
docker inspect prometheus | grep -i digest
|
||||
|
||||
# Если хешы разные - есть обновление!
|
||||
|
||||
# Перезагрузить контейнер с новой версией
|
||||
cd /opt/<path>
|
||||
docker-compose down
|
||||
docker pull <image>:latest # явно загрузить
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Риски и Рекомендации
|
||||
|
||||
### Перед обновлением:
|
||||
1. ✅ Создать backup базы данных (`/mnt/psql-data`)
|
||||
2. ✅ Проверить логи текущей версии
|
||||
3. ✅ Прочитать changelog новой версии (особенно breaking changes)
|
||||
4. ✅ Обновлять по одному контейнеру!
|
||||
5. ✅ Мониторить логи 30 минут после обновления
|
||||
|
||||
### После обновления:
|
||||
1. ✅ Проверить что сервис запустился
|
||||
2. ✅ Проверить логи на ошибки
|
||||
3. ✅ Проверить функциональность (тесты)
|
||||
4. ✅ Если проблема - откатить на старую версию
|
||||
|
||||
### Откат (если что-то сломалось):
|
||||
```bash
|
||||
cd /opt/<path>
|
||||
docker-compose down
|
||||
docker pull <image>:<old_version> # старая версия
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Чек-лист Обновлений
|
||||
|
||||
- [ ] N8N обновлена, добавлены переменные окружения
|
||||
- [ ] Prometheus обновлена, логи чистые
|
||||
- [ ] Grafana обновлена, дашборды работают
|
||||
- [ ] Loki обновлена, логи собираются
|
||||
- [ ] Все остальные :latest обновлены по расписанию
|
||||
- [ ] Нет ошибок в логах после обновлений
|
||||
- [ ] Мониторинг показывает нормальные метрики
|
||||
|
||||
---
|
||||
|
||||
## Расписание Регулярных Проверок
|
||||
|
||||
```
|
||||
Еженедельно:
|
||||
- Проверить логи на deprecation warnings
|
||||
- Проверить есть ли обновления для critical компонентов
|
||||
|
||||
Ежемесячно:
|
||||
- Обновить основные сервисы (:latest теги)
|
||||
- Протестировать все функции после обновления
|
||||
|
||||
Ежеквартально:
|
||||
- Security audit всех контейнеров
|
||||
- Обновление base images (alpine, ubuntu и т.д.)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Контактная Информация
|
||||
|
||||
**Для обновления сервисов требуется:**
|
||||
1. SSH доступ на сервер
|
||||
2. Знание docker-compose команд
|
||||
3. Возможность откатить в случае проблем
|
||||
4. Мониторинг логов контейнеров
|
||||
|
||||
**Документация:**
|
||||
- Docker Hub: https://hub.docker.com
|
||||
- Официальные changelog для каждого сервиса
|
||||
- CLAUDE.md в репозитории
|
||||
|
||||
---
|
||||
|
||||
**Отчет составлен:** 29.11.2025 20:55 UTC
|
||||
**Рекомендация:** Обновить N8N в первую очередь (есть warnings)
|
||||
|
||||
|
|
@ -17,7 +17,7 @@ services:
|
|||
N8N_PORT: 5678
|
||||
N8N_PROTOCOL: https
|
||||
WEBHOOK_URL: https://n8n.ai-impress.com/
|
||||
|
||||
|
||||
# Database
|
||||
DB_TYPE: postgresdb
|
||||
DB_POSTGRESDB_HOST: postgres-main
|
||||
|
|
@ -26,25 +26,27 @@ services:
|
|||
DB_POSTGRESDB_USER: n8n_user
|
||||
DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
|
||||
DB_POSTGRESDB_POOL_SIZE: 10
|
||||
|
||||
# Queue Mode (Redis)
|
||||
|
||||
# Queue Mode (Redis) & Task Runners
|
||||
QUEUE_BULL_REDIS_HOST: redis-main
|
||||
QUEUE_BULL_REDIS_PORT: 6379
|
||||
QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
QUEUE_BULL_REDIS_DB: 2
|
||||
EXECUTIONS_MODE: queue
|
||||
|
||||
N8N_RUNNERS_ENABLED: 'true'
|
||||
|
||||
# Workers configuration
|
||||
QUEUE_HEALTH_CHECK_ACTIVE: 'true'
|
||||
|
||||
|
||||
# Security
|
||||
N8N_BASIC_AUTH_ACTIVE: 'false'
|
||||
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
|
||||
N8N_PAYLOAD_SIZE_MAX: 64
|
||||
N8N_BLOCK_ENV_ACCESS_IN_NODE: 'false'
|
||||
|
||||
# Community Packages
|
||||
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE: 'true'
|
||||
|
||||
|
||||
# Performance
|
||||
EXECUTIONS_DATA_PRUNE: 'true'
|
||||
EXECUTIONS_DATA_MAX_AGE: 168
|
||||
|
|
@ -112,19 +114,21 @@ services:
|
|||
DB_POSTGRESDB_USER: n8n_user
|
||||
DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
|
||||
DB_POSTGRESDB_POOL_SIZE: 5
|
||||
|
||||
# Queue Mode (Redis)
|
||||
|
||||
# Queue Mode (Redis) & Task Runners
|
||||
QUEUE_BULL_REDIS_HOST: redis-main
|
||||
QUEUE_BULL_REDIS_PORT: 6379
|
||||
QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
QUEUE_BULL_REDIS_DB: 2
|
||||
EXECUTIONS_MODE: queue
|
||||
|
||||
N8N_RUNNERS_ENABLED: 'true'
|
||||
|
||||
# Worker settings
|
||||
N8N_CONCURRENCY_PRODUCTION_LIMIT: 20
|
||||
|
||||
# Security
|
||||
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
|
||||
N8N_BLOCK_ENV_ACCESS_IN_NODE: 'false'
|
||||
|
||||
# Community Packages
|
||||
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE: 'true'
|
||||
|
|
@ -165,19 +169,21 @@ services:
|
|||
DB_POSTGRESDB_USER: n8n_user
|
||||
DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
|
||||
DB_POSTGRESDB_POOL_SIZE: 5
|
||||
|
||||
# Queue Mode (Redis)
|
||||
|
||||
# Queue Mode (Redis) & Task Runners
|
||||
QUEUE_BULL_REDIS_HOST: redis-main
|
||||
QUEUE_BULL_REDIS_PORT: 6379
|
||||
QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
QUEUE_BULL_REDIS_DB: 2
|
||||
EXECUTIONS_MODE: queue
|
||||
|
||||
N8N_RUNNERS_ENABLED: 'true'
|
||||
|
||||
# Worker settings
|
||||
N8N_CONCURRENCY_PRODUCTION_LIMIT: 20
|
||||
|
||||
# Security
|
||||
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
|
||||
N8N_BLOCK_ENV_ACCESS_IN_NODE: 'false'
|
||||
|
||||
# Community Packages
|
||||
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE: 'true'
|
||||
|
|
@ -218,19 +224,21 @@ services:
|
|||
DB_POSTGRESDB_USER: n8n_user
|
||||
DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
|
||||
DB_POSTGRESDB_POOL_SIZE: 5
|
||||
|
||||
# Queue Mode (Redis)
|
||||
|
||||
# Queue Mode (Redis) & Task Runners
|
||||
QUEUE_BULL_REDIS_HOST: redis-main
|
||||
QUEUE_BULL_REDIS_PORT: 6379
|
||||
QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
QUEUE_BULL_REDIS_DB: 2
|
||||
EXECUTIONS_MODE: queue
|
||||
|
||||
N8N_RUNNERS_ENABLED: 'true'
|
||||
|
||||
# Worker settings
|
||||
N8N_CONCURRENCY_PRODUCTION_LIMIT: 15
|
||||
|
||||
# Security
|
||||
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
|
||||
N8N_BLOCK_ENV_ACCESS_IN_NODE: 'false'
|
||||
|
||||
# Community Packages
|
||||
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE: 'true'
|
||||
|
|
@ -271,19 +279,21 @@ services:
|
|||
DB_POSTGRESDB_USER: n8n_user
|
||||
DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
|
||||
DB_POSTGRESDB_POOL_SIZE: 5
|
||||
|
||||
# Queue Mode (Redis)
|
||||
|
||||
# Queue Mode (Redis) & Task Runners
|
||||
QUEUE_BULL_REDIS_HOST: redis-main
|
||||
QUEUE_BULL_REDIS_PORT: 6379
|
||||
QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
QUEUE_BULL_REDIS_DB: 2
|
||||
EXECUTIONS_MODE: queue
|
||||
|
||||
N8N_RUNNERS_ENABLED: 'true'
|
||||
|
||||
# Worker settings
|
||||
N8N_CONCURRENCY_PRODUCTION_LIMIT: 15
|
||||
|
||||
# Security
|
||||
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
|
||||
N8N_BLOCK_ENV_ACCESS_IN_NODE: 'false'
|
||||
|
||||
# Community Packages
|
||||
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE: 'true'
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue