Дата настройки: 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 | ✅ Работает |
Host: localhost
Port: 5433
Database: nocodb
User: nocodb
Password: NocoDB2025Secure
Настроено: 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.
Настроено для всех сервисов: restart: unless-stopped
Что это значит:
- ✅ Контейнеры автоматически перезапускаются при падении
- ✅ Контейнеры автоматически запускаются при перезагрузке сервера
- ⚠️ Контейнеры НЕ перезапускаются если остановлены вручную командой docker stop
Проверка:
docker inspect nocodb-products nocodb-nginx nocodb-products-db | grep -A 2 "RestartPolicy"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U nocodb -d nocodb"]
interval: 10s
timeout: 5s
retries: 5
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)
Скрипт: /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
data.0kt.ruСертификаты:
/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
# 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();"
# Проверить внутри контейнера
docker exec nocodb-products wget -qO- http://localhost:8080/api/v1/health
# Проверить через nginx
curl -skL https://data.0kt.ru:8443/api/v1/health
✅ Проверить что все контейнеры запустились
bash
docker ps | grep nocodb
✅ Проверить health status
bash
docker ps
# Должно показать (healthy) для nocodb-products и nocodb-products-db
✅ Проверить доступность API
bash
curl -sk https://data.0kt.ru:8443/api/v1/health
✅ Проверить что cron работает
bash
systemctl status cron
crontab -l | grep nocodb
✅ Проверить логи мониторинга
bash
tail -f /var/log/nocodb-monitor.log
/var/log/nocodb-monitor.logНастроил: Claude Code
Дата: 2025-12-23
Версия: 1.0.0
Статус: ✅ PRODUCTION READY