Установка

Databasus можно установить несколькими способами: автоматическим скриптом (рекомендуется), простым docker run, через Docker Compose, Helm для Kubernetes или Docker Compose с Caddy для продакшена.

Системные требования

Минимальные ресурсы, которые нужны Databasus для работы:

  • CPU: не меньше 1 ядра
  • RAM: минимум 500 МБ
  • Диск: 5 ГБ под установку плюс место под сами бекапы
  • Docker: Docker Engine 20.10+ и Docker Compose v2.0+

Способ 1: скрипт установки (рекомендуется, только Linux)

Скрипт установки:

  • ✅ Поставит Docker с Docker Compose (если они еще не установлены)
  • ✅ Настроит Databasus
  • ✅ Включит автозапуск после перезагрузки системы
sudo apt-get install -y curl && \
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh | sudo bash

В этом случае Databasus будет установлен в каталог /opt/databasus.

Способ 2: простой docker run

Самый быстрый способ запустить Databasus:

docker run -d \
  --name databasus \
  -p 4005:4005 \
  -v ./databasus-data:/databasus-data \
  --restart unless-stopped \
  databasus/databasus:latest

Эта одна команда:

  • ✅ Запустит Databasus
  • ✅ Сохранит все данные в каталоге ./databasus-data
  • ✅ Автоматически перезапустит контейнер после перезагрузки

Способ 3: настройка через Docker Compose

Создайте файл docker-compose.yml со следующей конфигурацией:

services:
  databasus:
    container_name: databasus
    image: databasus/databasus:latest
    ports:
      - "4005:4005"
    volumes:
      - ./databasus-data:/databasus-data
    restart: unless-stopped

Затем выполните:

docker compose up -d

Учтите, что запуск может занять до 2-х минут.

Способ 4: Kubernetes с Helm

Для Kubernetes устанавливайте напрямую из OCI-реестра. Выберите способ доступа под свое окружение.

ClusterIP + port-forward (для разработки)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace

Доступ через port-forward:

kubectl port-forward svc/databasus-service 4005:4005 -n databasus
# Access at http://localhost:4005

LoadBalancer (облачные окружения)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace \
  --set service.type=LoadBalancer

Получите внешний IP и откройте Databasus:

kubectl get svc databasus-service -n databasus
# Access at http://<EXTERNAL-IP>:4005

Ingress (доступ по домену)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace \
  --set ingress.enabled=true \
  --set ingress.hosts[0].host=backup.example.com

Другие варианты (NodePort, TLS, HTTPRoute для Gateway API) описаны в документации Helm-чарта.

Запуск за reverse proxy Caddy

Для продакшена можно поставить Caddy как reverse proxy: он даст автоматические HTTPS-сертификаты и безопасный доступ к Databasus. Ниже полная конфигурация Docker Compose с Caddy.

Docker Compose с Caddy

Создайте файл docker-compose.yml:

services:
  databasus:
    container_name: databasus
    image: databasus/databasus:latest
    volumes:
      - ./databasus-data:/databasus-data
    restart: unless-stopped
    # No port exposed - Caddy handles external access

  caddy:
    container_name: caddy
    image: caddy:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddy-data:/data
      - ./caddy-config:/config
    restart: unless-stopped
    depends_on:
      - databasus

Создайте Caddyfile в том же каталоге:

backup.example.com {
    reverse_proxy databasus:4005
}

Затем запустите сервисы:

docker compose up -d

Эта конфигурация дает:

  • ✅ Автоматический HTTPS с сертификатами Let's Encrypt
  • ✅ Редирект с HTTP на HTTPS
  • ✅ Reverse proxy до Databasus
  • ✅ Сохранение данных Caddy и Databasus на диске

Замените backup.example.com на свой домен и убедитесь, что DNS домена указывает на IP-адрес сервера, прежде чем запускать сервисы.

Первые шаги

После установки:

  1. Запустите и откройте Databasus: стартуйте Databasus и перейдите на http://localhost:4005
  2. Создайте первую задачу бекапа: нажмите "New Backup" и настройте подключение к базе PostgreSQL
  3. Настройте расписание: задайте график бекапов (каждый час, день, неделю, месяц или cron)
  4. Выберите хранилище: укажите, куда складывать бекапы (локальный диск, S3, Google Drive и т.д.)
  5. Подключите уведомления: добавьте каналы (Slack, Telegram, Discord), чтобы получать статусы бекапов
  6. Запустите резервное копирование: сохраните настройки и наблюдайте за первым бекапом!

Health-чеки

Health-чек в Docker

Встроенный health-чек включается автоматически для docker run и Docker Compose. Контейнер получает статус healthy, как только Databasus начинает отвечать на запросы (после короткого периода на старт). Проверяется только то, что приложение отвечает, поэтому контейнер не перезапускается из-за некритичных состояний вроде заканчивающегося места на диске.

Эндпоинт мониторинга и статуса

Для аптайм-мониторинга и статус-дашбордов:

GET http://<host>:4005/api/v1/system/health

Возвращает 200, когда все в порядке, или 503 с причиной, когда что-то требует внимания: внутренняя база, кеш, диск (заполнен больше чем на 95%), клиентские утилиты баз данных, планировщик бекапов или агент проверки восстановления. Аутентификация не нужна, CORS открыт для браузерных мониторов.

⚠️ Важно: эндпоинт предназначен только для мониторинга и алертов, не для liveness probe контейнера или Kubernetes — он возвращает 503 и в состояниях «деградировал, но работает» (например, почти полный диск), а это перезапустило бы рабочий контейнер.

Kubernetes

Используйте liveness/readiness probe с командой databasus healthcheck, а эндпоинт /api/v1/system/health оставьте для внешнего мониторинга.

Как обновить Databasus?

Обновление установки в Docker

Чтобы обновить Databasus, запущенный в Docker, остановите его, очистите кеш Docker и перезапустите контейнер.

  1. Перейдите в каталог, где установлен Databasus (обычно /opt/databasus)
  2. Остановите контейнер: docker compose stop
  3. Очистите кеш Docker: docker system prune -a
  4. Перезапустите контейнер: docker compose up -d

Docker скачает последнюю версию Databasus с Docker Hub (если вы не зафиксировали версию в файле docker-compose.yml).

Обновление установки через Helm

Чтобы обновить Databasus в Kubernetes через Helm, выполните команду upgrade:

helm upgrade databasus oci://ghcr.io/databasus/charts/databasus -n databasus

Если у вас кастомные значения, добавьте -f values.yaml или флаги --set, чтобы сохранить свою конфигурацию. Helm выполнит rolling-обновление до новой версии.

Миграция с Postgresus

Databasus — новое имя Postgresus. Если вы сейчас используете Postgresus, можно продолжать им пользоваться или мигрировать на Databasus.

Важно: просто переименовать Docker-образ недостаточно: Postgresus и Databasus используют разные каталоги данных и разные имена внутренней базы.

Для миграции:

  1. Остановите контейнер Postgresus: docker compose stop
  2. Установите Databasus любым способом выше (с другим путем тома, ./databasus-data)
  3. Вручную заново создайте базы, хранилища и уведомления в Databasus

На время миграции Postgresus и Databasus могут работать параллельно на разных портах и с разными путями томов.

Устранение неполадок

Контейнер не стартует

Если контейнер не запускается, посмотрите логи:

docker logs databasus

Порт уже занят

Если порт 4005 занят, поменяйте его в docker-compose.yml:

ports:
  - "8080:4005" # Change 8080 to any available port

Ошибки прав доступа

Если возникают проблемы с правами на каталог данных:

sudo chown -R $USER:$USER ./databasus-data
chmod -R 755 ./databasus-data