Это руководство проведёт вас через установку Observer на сервер, где ваша команда сможет с ним работать. Глубокие технические знания не требуются — если вы можете подключиться к серверу по SSH и выполнить несколько команд, вы справитесь.

Docker (рекомендуется)

Это самый простой путь. Observer поставляется как единый Docker-образ со встроенным веб-интерфейсом — ничего дополнительного устанавливать или настраивать на стороне фронтенда не нужно.

Что вам потребуется

  • Сервер с установленными Docker и Docker Compose
  • Доменное имя, направленное на ваш сервер (для HTTPS)

Шаг 1: Генерация ключей подписи

Observer использует RSA-ключи для подписи токенов входа. Выполните эти команды на вашем сервере для их создания:

mkdir -p keys
openssl genrsa -out keys/jwt_rsa 4096
openssl rsa -in keys/jwt_rsa -pubout -out keys/jwt_rsa.pub

Храните эти ключи в безопасности. Если вы их потеряете, всем пользователям придётся войти заново.

Шаг 2: Настройка окружения

Скопируйте файл примера окружения и отредактируйте его под вашу конфигурацию:

cp .env.example .env

Наиболее важные переменные:

ПеременнаяНазначениеПо умолчанию
DATABASE_DSNПодключение Observer к PostgreSQL(обязательна)
REDIS_URLПодключение Observer к Redisredis://localhost:6379/0
JWT_PRIVATE_KEY_PATHПуть к приватному ключу из шага 1keys/jwt_rsa
JWT_PUBLIC_KEY_PATHПуть к публичному ключу из шага 1keys/jwt_rsa.pub
CORS_ORIGINSВаш домен (напр. https://observer.yourorg.org)http://localhost:5173
COOKIE_SECUREУстановите true при использовании HTTPS (нужно)true
SERVER_HOSTАдрес для прослушиванияlocalhost
SERVER_PORTПорт для прослушивания9000

Полный список см. в разделе Переменные окружения.

Шаг 3: Запуск Observer

docker compose up -d

Эта команда запускает PostgreSQL, Redis и Observer. Схема базы данных создаётся автоматически при первом запуске — ручной шаг миграции не требуется.

Шаг 4: Проверка работоспособности

curl http://localhost:9000/health

Вы должны увидеть:

{ "status": "healthy", "timestamp": "..." }

Если вы видите это, Observer готов к работе. Откройте ваш домен в браузере для доступа к веб-интерфейсу.

Без Docker (VPS / bare metal)

Если вы предпочитаете запускать Observer напрямую, соберите бинарный файл:

CGO_ENABLED=0 go build -tags production -ldflags="-s -w" -o observer ./cmd/observer

Флаг -tags production встраивает веб-интерфейс в бинарный файл. Вы получаете один файл, который можно скопировать куда угодно.

Запустите его:

./observer serve --host 0.0.0.0

Вам потребуются PostgreSQL и Redis, запущенные отдельно. Направьте на них DATABASE_DSN и REDIS_URL.

Настройка HTTPS

Observer всегда следует запускать за обратным прокси, который обеспечивает HTTPS. Это защищает учётные данные и персональные данные шифрованием при передаче.

Caddy — самый простой вариант — он автоматически управляет сертификатами:

observer.yourorg.org {
    reverse_proxy localhost:9000
}

Если вы используете Nginx или другой прокси, убедитесь, что установлены:

  • COOKIE_SECURE=true в вашем окружении
  • CORS_ORIGINS на ваш реальный домен (напр. https://observer.yourorg.org)