infra/@nocodb.app/NOCODB_SETTINGS.md

НАСТРОЙКИ NOCODB - ИТОГОВЫЙ ОТЧЁТ

Дата настройки: 2025-12-23
Статус: ✅ НАСТРОЕНО И РАБОТАЕТ
Домен: https://data.0kt.ru:8443


🌐 ДОСТУП

Адреса:

Протокол URL Порт Статус
HTTPS https://data.0kt.ru:8443 8443 ✅ Работает
HTTP http://data.0kt.ru:8085 8085 ↪️ Редирект на HTTPS
Локальный http://localhost:8085 8085 ✅ Работает

База данных PostgreSQL:

Host: localhost
Port: 5433
Database: nocodb
User: nocodb
Password: NocoDB2025Secure

⚙️ ОСНОВНЫЕ НАСТРОЙКИ

1. Публичный URL (NC_PUBLIC_URL)

Настроено: https://data.0kt.ru:8443

Файл: /opt/claude-workspace/infra/@nocodb.app/docker-compose.yml

environment:
  NC_PUBLIC_URL: "https://data.0kt.ru:8443"

Назначение: Этот URL используется NocoDB для генерации ссылок, редиректов и API endpoints.


2. Автоматический перезапуск (Restart Policy)

Настроено для всех сервисов: restart: unless-stopped

Что это значит:
- ✅ Контейнеры автоматически перезапускаются при падении
- ✅ Контейнеры автоматически запускаются при перезагрузке сервера
- ⚠️ Контейнеры НЕ перезапускаются если остановлены вручную командой docker stop

Проверка:

docker inspect nocodb-products nocodb-nginx nocodb-products-db | grep -A 2 "RestartPolicy"

3. Health Checks (Проверка здоровья)

PostgreSQL:

healthcheck:
  test: ["CMD-SHELL", "pg_isready -U nocodb -d nocodb"]
  interval: 10s
  timeout: 5s
  retries: 5

NocoDB:

healthcheck:
  test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:8080/api/v1/health || exit 1"]
  interval: 30s
  timeout: 10s
  retries: 3
  start_period: 60s

Что это даёт:
- ✅ Docker автоматически определяет когда контейнер нездоров
- ✅ При restart: unless-stopped контейнер будет перезапущен если healthcheck fails
- ✅ Можно видеть статус: docker ps покажет (healthy) или (unhealthy)


4. Автоматический мониторинг

Скрипт: /opt/claude-workspace/infra/@nocodb.app/nocodb-monitor.sh

Cron задача: Запускается каждые 5 минут

*/5 * * * * /opt/claude-workspace/infra/@nocodb.app/nocodb-monitor.sh >> /var/log/nocodb-monitor.log 2>&1

Что проверяет:
1. ✅ Запущен ли контейнер nocodb-products-db
2. ✅ Запущен ли контейнер nocodb-products
3. ✅ Запущен ли контейнер nocodb-nginx
4. ✅ Здоровы ли контейнеры (health status)
5. ✅ Отвечает ли API: https://data.0kt.ru:8443/api/v1/health

При обнаружении проблем:
- 🔄 Автоматически перезапускает упавший сервис
- 📝 Логирует в /var/log/nocodb-monitor.log

Проверка логов:

tail -f /var/log/nocodb-monitor.log

Ручной запуск:

/opt/claude-workspace/infra/@nocodb.app/nocodb-monitor.sh

🔧 УПРАВЛЕНИЕ СЕРВИСАМИ

Запуск/остановка всех сервисов:

cd /opt/claude-workspace/infra/@nocodb.app

# Запустить все
docker compose up -d

# Остановить все
docker compose down

# Перезапустить все
docker compose restart

# Перезапустить только NocoDB
docker compose restart nocodb

Просмотр логов:

# Все сервисы
docker compose logs -f

# Только NocoDB
docker compose logs -f nocodb

# Только база данных
docker compose logs -f db

# Только nginx
docker compose logs -f nginx

Проверка статуса:

# Статус всех контейнеров
docker compose ps

# Детальная информация
docker ps | grep nocodb

📊 ЛИМИТЫ РЕСУРСОВ

NocoDB:

PostgreSQL:


🔒 БЕЗОПАСНОСТЬ

SSL/TLS:

Сертификаты:

/opt/claude-workspace/infra/@nocodb.app/ssl/data.0kt.ru.crt
/opt/claude-workspace/infra/@nocodb.app/ssl/data.0kt.ru.key

База данных:


📁 ВАЖНЫЕ ФАЙЛЫ И ДИРЕКТОРИИ

/opt/claude-workspace/infra/@nocodb.app/
├── docker-compose.yml              # Конфигурация всех сервисов
├── nginx-http2.conf                # Конфигурация Nginx
├── nocodb-monitor.sh               # Скрипт мониторинга
├── NOCODB_SETTINGS.md              # Этот файл
├── ssl/                            # SSL сертификаты
   ├── data.0kt.ru.crt
   └── data.0kt.ru.key
└── static/                         # Статические файлы

Volumes (данные):
- nocodb-products_nocodb_data       # Данные NocoDB
- nocodb-products_postgres_data     # База данных PostgreSQL

Логи:
- /var/log/nocodb-monitor.log       # Логи мониторинга

✅ ПРОВЕРКА РАБОТОСПОСОБНОСТИ

Быстрая проверка:

# 1. Проверить что контейнеры запущены и здоровы
docker ps | grep nocodb

# Должно показать:
# nocodb-products      Up X hours (healthy)
# nocodb-products-db   Up X days (healthy)
# nocodb-nginx         Up X days

# 2. Проверить API
curl -sk https://data.0kt.ru:8443/api/v1/health

# Должно вернуть:
# {"message":"OK","timestamp":...,"uptime":...}

# 3. Проверить веб-интерфейс
curl -skL https://data.0kt.ru:8443/ | grep -i nocodb

Детальная диагностика:

# Проверить restart policy
docker inspect nocodb-products | grep -A 2 "RestartPolicy"

# Проверить health status
docker inspect nocodb-products | grep -A 10 "Health"

# Проверить переменные окружения
docker inspect nocodb-products | grep NC_PUBLIC_URL

# Проверить логи мониторинга
tail -20 /var/log/nocodb-monitor.log

# Проверить cron задачу
crontab -l | grep nocodb

🚨 УСТРАНЕНИЕ НЕПОЛАДОК

Если NocoDB не запускается:

# 1. Проверить логи
docker compose logs nocodb --tail 100

# 2. Проверить базу данных
docker compose logs db --tail 50

# 3. Перезапустить с чистого листа
docker compose down
docker compose up -d

# 4. Проверить healthcheck
docker inspect nocodb-products | grep -A 10 "Health"

Если база данных недоступна:

# Проверить статус PostgreSQL
docker exec nocodb-products-db pg_isready -U nocodb -d nocodb

# Проверить подключение из NocoDB
docker exec nocodb-products-db psql -U nocodb -d nocodb -c "SELECT version();"

Если API не отвечает:

# Проверить внутри контейнера
docker exec nocodb-products wget -qO- http://localhost:8080/api/v1/health

# Проверить через nginx
curl -skL https://data.0kt.ru:8443/api/v1/health

📋 ЧЕКЛИСТ ПОСЛЕ ПЕРЕЗАГРУЗКИ СЕРВЕРА

  1. ✅ Проверить что все контейнеры запустились
    bash docker ps | grep nocodb

  2. ✅ Проверить health status
    bash docker ps # Должно показать (healthy) для nocodb-products и nocodb-products-db

  3. ✅ Проверить доступность API
    bash curl -sk https://data.0kt.ru:8443/api/v1/health

  4. ✅ Проверить что cron работает
    bash systemctl status cron crontab -l | grep nocodb

  5. ✅ Проверить логи мониторинга
    bash tail -f /var/log/nocodb-monitor.log


🎯 ИТОГИ

✅ ЧТО НАСТРОЕНО:

  1. Публичный URL: https://data.0kt.ru:8443
  2. Автоперезапуск: При падении и перезагрузке сервера
  3. Health Checks: Для PostgreSQL и NocoDB
  4. Мониторинг: Автоматическая проверка каждые 5 минут
  5. SSL/HTTPS: Защищённое соединение
  6. Логирование: Все события в /var/log/nocodb-monitor.log

🛡️ ЗАЩИТА ОТ ПАДЕНИЙ:

  1. Docker restart policy: Автоматический перезапуск контейнеров
  2. Health checks: Docker видит когда контейнер нездоров
  3. Cron мониторинг: Дополнительная проверка каждые 5 минут
  4. Лимиты памяти: Предотвращают OOM killer
  5. Логирование: Можно отследить причину проблем

🚀 NocoDB НЕ БУДЕТ ПАДАТЬ ПОТОМУ ЧТО:


Настроил: Claude Code
Дата: 2025-12-23
Версия: 1.0.0
Статус: ✅ PRODUCTION READY