Быстрый старт

От регистрации до первой ошибки в dashboard — три шага и несколько минут.

1. Регистрация

Откройте страницу регистрации на https://dev-logs.ru и создайте аккаунт. После входа вы попадёте в личный кабинет.

2. Проект и DSN

  1. В кабинете нажмите Новый проект и укажите название приложения.
  2. Откройте Настройки проекта (/projects/<id>/settings) — там отображается публичный DSN-ключ. Скопируйте его для SDK.
При создании проекта из онбординга кабинет сразу откроет настройки с DSN (шаг 2 из 2).
Не хотите встраивать SDK в каждый контейнер? Добавьте devlogs-collector в свой docker-compose.yml — см. раздел Запуск с вашими сервисами.

Альтернатива: Docker Compose + коллектор

Один контейнер devlogs-collector в вашем docker-compose следит за всеми сервисами stack: логи, падения и OOM попадают в DevLogs без правок кода и без SDK в каждом образе.

  1. API-ключ. Профиль кабинета → создайте ключ dl_live_… — одного ключа хватает на все compose stack организации.
  2. Добавьте коллектор в свой compose. В существующий docker-compose.yml добавьте сервис devlogs-collector (см. пример). Ваши api, worker, nginx менять не нужно.
  3. Запустите stack. export DEVLOGS_API_KEY=dl_live_… && docker compose up -d — поднимутся и приложения, и коллектор.
  4. Коллектор следит за контейнерами. Через docker.sock агент читает stdout/stderr. По умолчанию — только контейнеры docker compose (не CI helper без labels). Явный whitelist: DEVLOGS_DOCKER_SERVICES=api,worker,db. На сервере с GitFlic/GitLab runner не включайте DEVLOGS_DOCKER_ALL_CONTAINERS.
  5. Смотрите issues в кабинете. Кабинет → Коллекторы: один проект на compose stack (имя stack), внутри — issue groups по сервисам (api, worker, …). DSN можно скопировать для SDK, если понадобится.
.env
# Положите рядом с docker-compose.yml или экспортируйте в shell
DEVLOGS_API_KEY=dl_live_YOUR_KEY_FROM_PROFILE
DEVLOGS_SERVER_URL=https://dev-logs.ru
DEVLOGS_ENVIRONMENT=production
# DEVLOGS_DOCKER_PROJECT_MAP=stack   # по умолчанию: один проект на compose stack
# DEVLOGS_DOCKER_SERVICES=api,worker,db           # db,redis или billing:db,shop:postgres
# DEVLOGS_DOCKER_COMPOSE_PROJECT=billing,shop     # опционально — только эти compose project
docker-compose.yml (фрагмент)
# docker-compose.yml — ваши сервисы + мониторинг DevLogs
# Имя compose project (mystack) → один проект в кабинете; сервисы api/worker → issue groups

services:
  api:
    image: myorg/api:latest
    restart: unless-stopped
    environment:
      DATABASE_URL: postgres://app@db:5432/app
    depends_on:
      - db

  worker:
    image: myorg/worker:latest
    restart: unless-stopped
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    volumes:
      - pgdata:/var/lib/postgresql/data

  # Sidecar: читает логи ВСЕХ контейнеров этого compose через docker.sock
  devlogs-collector:
    image: registry.melnikovit.ru/dev-logs/devlogs-collector:0.5.5
    command: ["docker"]
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - devlogs-collector-cache:/var/lib/devlogs-collector
    environment:
      DEVLOGS_API_KEY: ${DEVLOGS_API_KEY}
      DEVLOGS_SERVER_URL: ${DEVLOGS_SERVER_URL:-https://dev-logs.ru}
      DEVLOGS_ENVIRONMENT: ${DEVLOGS_ENVIRONMENT:-production}
      DEVLOGS_DOCKER_PROJECT_MAP: ${DEVLOGS_DOCKER_PROJECT_MAP:-stack}
      # DEVLOGS_DOCKER_SERVICES: api,worker,db
      DEVLOGS_COLLECTOR_CACHE_DIR: /var/lib/devlogs-collector

volumes:
  pgdata:
  devlogs-collector-cache:
Запуск
# 1. Ключ из кабинета → профиль
export DEVLOGS_API_KEY=dl_live_YOUR_KEY

# 2. Запуск stack (api, worker, db + коллектор)
docker compose up -d

# 3. Проверка коллектора
docker compose logs -f devlogs-collector
docker run --rm -e DEVLOGS_API_KEY -e DEVLOGS_SERVER_URL \
  registry.melnikovit.ru/dev-logs/devlogs-collector:0.5.5 doctor

# 4. Симуляция ошибки в сервисе (опционально)
docker compose exec api node -e "console.error('test error'); process.exit(1)"

Проекты и DSN появятся в кабинет → Коллекторы. Подробнее — документация коллекторов. Только PostgreSQL / MySQL / Redis без приложения — коллектор + база данных.

3. Подключение SDK

Выберите пакет для вашего стека в каталоге SDK (dev-logs.ru/sdk) или следуйте полному руководству по SDK. В настройках проекта — блок «Установка SDK» с вашим DSN и командами для основных языков.

Минимальная инициализация для JavaScript (v0.4.0):

Установка
npm install devlogs-sdk-js@0.4.0 \
  --registry https://git.melnikovit.ru/registry/package/-/npm/
Инициализация
import { init, captureError } from "devlogs-sdk-js";

init({
  dsn: "ВАШ_DSN_ИЗ_НАСТРОЕК",
  serverUrl: "https://dev-logs.ru",
  release: "1.0.0",
  environment: "production",
  gitCommit: process.env.NEXT_PUBLIC_GIT_COMMIT,
});

captureError(new Error("тестовая ошибка"));

В CI пробросьте CI_COMMIT_SHA в NEXT_PUBLIC_GIT_COMMIT или DEVLOGS_GIT_COMMIT — см. Git-коммит.

Go — go get, не npm. Git-only SDK (Swift, Unity…) — git clone. Подробности — в /docs/sdk.

4. Первая ошибка

Вызовите тестовую ошибку в приложении или отправьте событие вручную через curl (подставьте свой DSN):

curl — тестовое событие
curl -s -X POST "https://dev-logs.ru/api/ingest" \
  -H "Content-Type: application/json" \
  -d '{
    "dsn": "ВАШ_DSN",
    "message": "Тестовая ошибка DevLogs",
    "level": "error",
    "type": "TestError"
  }'

При успехе API вернёт 201 с errorId и fingerprint. Issue появится в кабинет → проект → Issues.

Дальше