Расширенная конфигурация

Databasus из коробки работает с разумными настройками по умолчанию — стандартной установке в один контейнер конфигурация не нужна вовсе. Каждая переменная на этой странице необязательна и не требуется в 99% продакшен-установок

OAuth

По умолчанию в Databasus вход по email и паролю. Дополнительно можно разрешить вход через аккаунт Google или GitHub. Кнопка провайдера появляется, как только задан его client ID, но вход срабатывает, только когда заданы оба значения: и client ID, и client secret.

При регистрации OAuth-приложения укажите redirect-адрес (callback) https://<your-domain>/auth/callback. Из-за этого редиректа для входа через OAuth ваш инстанс должен быть доступен по HTTPS на публичном домене — см. заметку ниже.

Для входа и почты нужен HTTPS. И OAuth-вход, и почта требуют, чтобы инстанс был доступен по HTTPS на публичном домене: OAuth-провайдеры возвращают браузер на https://<your-domain>/auth/callback, а ссылки в письмах должны открываться у получателей. Инстанс только на localhost или на голом HTTP этими функциями пользоваться не сможет. Проще всего получить HTTPS через reverse proxy Caddy.

Google

Создайте OAuth-клиент в Google Cloud Console (APIs & Services → Credentials → Create credentials → OAuth client ID, тип приложения Web application) и добавьте https://<your-domain>/auth/callback как разрешенный redirect URI.

ПеременнаяОписание
GOOGLE_CLIENT_IDClient ID вашего OAuth-клиента Google. Если задан, появляется кнопка "Sign in with Google".
GOOGLE_CLIENT_SECRETClient secret вашего OAuth-клиента Google. Чтобы вход работал, нужен вместе с ID.

GitHub

Создайте OAuth-приложение в настройках разработчика GitHub (Settings → Developer settings → OAuth Apps → New OAuth App) и укажите authorization callback URL https://<your-domain>/auth/callback.

ПеременнаяОписание
GITHUB_CLIENT_IDClient ID вашего OAuth-приложения GitHub. Если задан, появляется кнопка "Sign in with GitHub".
GITHUB_CLIENT_SECRETClient secret вашего OAuth-приложения GitHub. Чтобы вход работал, нужен вместе с ID.

Почта (SMTP)

Подключите SMTP-сервер, чтобы Databasus мог отправлять служебные письма: ссылки для сброса пароля и приглашения в рабочие пространства. Почта считается настроенной, только когда заданы и SMTP_HOST, и DATABASUS_URL — до этого почтовые функции скрыты в интерфейсе.

ПеременнаяОписание
SMTP_HOSTХост SMTP-сервера (например smtp.gmail.com). Вместе с DATABASUS_URL включает почту.
SMTP_PORTПорт SMTP-сервера (например 587). Должен быть положительным целым числом, если задан SMTP_HOST.
SMTP_USERИмя пользователя для аутентификации на SMTP.
SMTP_PASSWORDПароль для аутентификации на SMTP. Для Gmail используйте App Password, а не пароль аккаунта.
SMTP_FROMАдрес отправителя ("From") в исходящих письмах.
SMTP_INSECURE_SKIP_VERIFYУстановите true, чтобы пропускать проверку TLS-сертификата при подключении к SMTP-серверу. По умолчанию false. Используйте только для серверов с самоподписанным сертификатом в доверенной сети — эта настройка отключает защиту от атак «человек посередине».
DATABASUS_URLПубличный базовый URL вашего инстанса (например https://backup.example.com). Используется для сборки ссылок в письмах. Нужен вместе с SMTP_HOST.

Капча при регистрации (Cloudflare Turnstile)

Если ваш инстанс доступен из публичного интернета, на формы регистрации и входа можно поставить проверку Cloudflare Turnstile, чтобы отсечь ботов. Оба ключа берутся в панели Turnstile, а проверка включается, только когда заданы оба.

Если нужно вообще закрыть регистрацию, а не просто прикрыть ее капчей, капча не понадобится — откройте в интерфейсе Databasus settings → Allow sign up и выключите эту опцию. Форма регистрации исчезнет совсем.

ПеременнаяОписание
CLOUDFLARE_TURNSTILE_SITE_KEYПубличный site key Turnstile — им рендерится виджет в браузере.
CLOUDFLARE_TURNSTILE_SECRET_KEYСекретный ключ Turnstile — им бэкенд проверяет ответы на капчу.

Телеметрия

По умолчанию Databasus отправляет анонимную телеметрию использования. Она не содержит персональных данных и помогает нам понять, как используется проект. Что именно собирается, написано в политике конфиденциальности, и телеметрию можно полностью выключить.

ПеременнаяПо умолчаниюОписание
IS_DISABLE_ANONYMOUS_TELEMETRYfalseУстановите true, чтобы отключить анонимную телеметрию использования.

Логирование

Databasus пишет логи в stdout и дублирует их в формате JSON в файл databasus.log на томе с данными. Если задать OPEN_TELEMETRY_URL, он также экспортирует их по OpenTelemetry в бэкенд вроде VictoriaLogs, Graylog, SigNoz, Grafana Loki, Datadog или Honeycomb, либо в OpenTelemetry Collector, который сам является OTLP-приемником.

  • Транспорт определяется схемой. http:// и https:// отправляют OTLP/HTTP и используют URL как есть, включая путь; grpc:// и grpcs:// отправляют OTLP/gRPC и используют только хост и порт.
  • Аутентификация задается в OPEN_TELEMETRY_HEADERS или прямо в URL в виде user:password@host.
  • Секреты (пароли, токены, учетные данные) в URL вычищаются до того, как запись покидает процесс.
  • Записи аудита уходят вместе с логами приложения с меткой log_type=audit и игнорируют LOG_LEVEL, поэтому повышение уровня никогда не обрежет аудиторский след.
ПеременнаяПо умолчаниюОписание
OPEN_TELEMETRY_URLПолный URL OTLP-эндпоинта, включая путь. Не задавайте, чтобы логи оставались в контейнере. Query-строка, отсутствующий хост или неизвестная схема останавливают контейнер при старте, вместо того чтобы экспортировать в никуда.
OPEN_TELEMETRY_HEADERSПары key=value через запятую, отправляемые с каждым экспортом, обычно API-ключ. Значения percent-декодируются, как в стандартном формате OTEL_EXPORTER_OTLP_HEADERS.
LOG_LEVELinfoОдно из debug, info, warn или error. Нераспознанное значение откатывается к info.
LOG_FILE_IS_ENABLEDtrueПишет databasus.log рядом с остальными данными, с ротацией на 5 МБ и хранением 3 старых файлов. Установите false, если ваша платформа уже собирает stdout.

Значения для популярных бэкендов, каждое с заголовком аутентификации. Замените хосты, регионы и ключи на свои:

БэкендOPEN_TELEMETRY_URLOPEN_TELEMETRY_HEADERS
VictoriaLogshttp://victoria-logs:9428/insert/opentelemetry/v1/logsAuthorization=Basic%20dXNlcjpwYXNzd29yZA== — учетные данные, которые ждет ваш vmauth или reverse proxy: у самого VictoriaLogs на пути приема аутентификации нет.
OpenTelemetry Collectorgrpc://otel-collector:4317Authorization=Bearer%20your-token — соответствует расширению bearertokenauth или basicauth на приемнике. Collector, доступный только внутри вашей сети, обычно не требует ничего.
Graylog 6.2+grpc://graylog:4317Authorization=Bearer%20your-token — токен, заданный на входе OpenTelemetry (gRPC). Вход также принимает mTLS вместо токена.
SigNoz Cloudgrpcs://ingest.eu.signoz.cloud:443signoz-ingestion-key=your-ingestion-key
Grafana Cloudhttps://otlp-gateway-prod-eu-west-0.grafana.net/otlp/v1/logsAuthorization=Basic%20<base64> — base64 от instance-id:api-token
Honeycombhttps://api.honeycomb.io/v1/logsx-honeycomb-team=your-api-key
Datadog Agentgrpc://datadog-agent:4317Не нужны — API-ключ хранит сам Agent и пересылает все от вашего имени.

Значения заголовков percent-декодируются, поэтому пробел после Basic или Bearer записывается как %20, а запятая внутри значения — как %2C. Basic-аутентификацию можно указать и прямо в URL в виде https://user:password@host/path — Databasus превратит ее в тот же заголовок и не пустит в логи. Через http:// и grpc:// ключи и пароли идут открытым текстом, так что вне доверенной сети используйте https:// или grpcs://.

Скрипт аналитики

Databasus может встроить в приложение ваш собственный скрипт аналитики или трекинга — Google Analytics, Plausible, Umami и похожие. Когда задан ANALYTICS_SCRIPT, его значение вставляется в <head> страницы при старте.

Предупреждение о безопасности: значение вставляется как есть, как сырой HTML и JavaScript, и получает полный доступ к интерфейсу Databasus в браузере каждого посетителя. Задавайте только тот сниппет, который вы полностью контролируете и которому доверяете.

ПеременнаяОписание
ANALYTICS_SCRIPTСвой <script>, вставляемый перед закрывающим тегом </head>. Не задавайте, чтобы аналитики не было.