Расширенная конфигурация
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.
Создайте OAuth-клиент в Google Cloud Console (APIs & Services → Credentials → Create credentials → OAuth client ID, тип приложения Web application) и добавьте https://<your-domain>/auth/callback как разрешенный redirect URI.
| Переменная | Описание |
|---|---|
GOOGLE_CLIENT_ID | Client ID вашего OAuth-клиента Google. Если задан, появляется кнопка "Sign in with Google". |
GOOGLE_CLIENT_SECRET | Client 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_ID | Client ID вашего OAuth-приложения GitHub. Если задан, появляется кнопка "Sign in with GitHub". |
GITHUB_CLIENT_SECRET | Client 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_TELEMETRY | false | Установите 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_LEVEL | info | Одно из debug, info, warn или error. Нераспознанное значение откатывается к info. |
LOG_FILE_IS_ENABLED | true | Пишет databasus.log рядом с остальными данными, с ротацией на 5 МБ и хранением 3 старых файлов. Установите false, если ваша платформа уже собирает stdout. |
Значения для популярных бэкендов, каждое с заголовком аутентификации. Замените хосты, регионы и ключи на свои:
| Бэкенд | OPEN_TELEMETRY_URL | OPEN_TELEMETRY_HEADERS |
|---|---|---|
| VictoriaLogs | http://victoria-logs:9428/insert/opentelemetry/v1/logs | Authorization=Basic%20dXNlcjpwYXNzd29yZA== — учетные данные, которые ждет ваш vmauth или reverse proxy: у самого VictoriaLogs на пути приема аутентификации нет. |
| OpenTelemetry Collector | grpc://otel-collector:4317 | Authorization=Bearer%20your-token — соответствует расширению bearertokenauth или basicauth на приемнике. Collector, доступный только внутри вашей сети, обычно не требует ничего. |
| Graylog 6.2+ | grpc://graylog:4317 | Authorization=Bearer%20your-token — токен, заданный на входе OpenTelemetry (gRPC). Вход также принимает mTLS вместо токена. |
| SigNoz Cloud | grpcs://ingest.eu.signoz.cloud:443 | signoz-ingestion-key=your-ingestion-key |
| Grafana Cloud | https://otlp-gateway-prod-eu-west-0.grafana.net/otlp/v1/logs | Authorization=Basic%20<base64> — base64 от instance-id:api-token |
| Honeycomb | https://api.honeycomb.io/v1/logs | x-honeycomb-team=your-api-key |
| Datadog Agent | grpc://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>. Не задавайте, чтобы аналитики не было. |