Установка self-hosted
Messenger поставляется одним Docker-образом: внутри nginx, backend (NestJS) и веб-клиент (React). PostgreSQL и Redis — встроенные через compose-профили или ваши внешние. Понадобится лицензионный ключ — он выдаётся в личном кабинете (Free — бесплатно).
Минимальная инсталляция
Всё встроенное: PostgreSQL и Redis поднимаются compose-профилями, файлы хранятся локально (volume /var/messenger/uploads). Подходит для команд до ~150 человек на одном сервере.
curl -O https://get.messenger.io/docker-compose.yml
echo "LICENSE_KEY=your-key" > .env
echo "POSTGRES_PASSWORD=$(openssl rand -hex 16)" >> .env
docker compose --profile with-postgres --profile with-redis up -dПосле запуска мессенджер доступен на порту 80. Первый зарегистрированный пользователь становится администратором.
Enterprise: внешняя БД и S3
Для больших инсталляций подключите управляемые PostgreSQL/Redis и S3-совместимое хранилище файлов. Compose-профили не нужны — запускается только приложение.
# .env
LICENSE_KEY=...
DATABASE_URL=postgresql://user:pass@db.internal:5432/messenger
REDIS_URL=redis://redis.internal:6380
STORAGE_TYPE=s3
S3_ENDPOINT=https://storage.yandexcloud.net
S3_BUCKET=messenger-prod
S3_REGION=ru-central1
S3_ACCESS_KEY=...
S3_SECRET_KEY=...
S3_PUBLIC_URL=https://cdn.example.comdocker compose up -d # только app, без профилейЗвонки (опционально)
Для аудио/видео-звонков разверните LiveKit-сервер и задайте LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET. Обратите внимание: браузерный доступ к микрофону/камере требует HTTPS вне localhost.
Лицензия
Ключ (LICENSE_KEY) — это подписанный JWT. Сервер периодически подтверждает лицензию (heartbeat); при недоступности облака действует grace-период 14 дней. Перенос на другой сервер — через сброс fingerprint в личном кабинете.