Введение
Необходимо поставить систему мониторинга ошибок сайта Sentry. Рекомендуемый
разработчиками способ установки — использование Docker контейнера. Так и будем делать. Для удобства миграции и распределения нагрузки буду ставить на отдельную VM.
Параметры VM:
- HDD 32G
- Memmory 8G
- CPU 2cores
Базовая система
В качестве базовой системы я буду использовать Debian 10. Установка ничем не примечательна, выбираю минимальную конфигурацию.

После установки ставлю mc и qemu-guest-agent.
apt install mc qemu-guest-agent
Установка Docker
Добавляем GPG ключ
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Добавляем репозиторий
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
Ставим Docker CE
sudo apt install docker-ce
Пробуем выполнить тестовый контейнер
sudo docker run hello-world
Если все нормально увидим следующий вывод:

Установка Sentry
Для всех контейнеров будем использовать официальные образы.
Поднимаем и запускаем redis контейнер
docker run -d --name sentry-redis redis

Проверяем результат
docker ps

Поднимаем и запускаем postgresql контейнер
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres
Проверяем

Генерируем ключ, который будет использоваться всеми Sentry контейнерами
docker run --rm sentry config generate-secret-key

Полученный ключ необходимо вставлять вместо <secret-key> во время следующих шагов.
Для инициализации базы в контейнере Sentry выполняем
docker run -it --rm -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade

Процесс достаточно затяжной. В процессе предлагает создать аккаунт пользователя. Соглашаемся, вводим данные

Завершается инициализация

Запускаем контейнер с Sentry
docker run -d -p 9000:9000 --name my-sentry -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-redis:redis --link sentry-postgres:postgres sentry
Напоминаю, что вместо <secret-key> указываем сгенерированный ключ
Смотрим результат
docker ps

Теперь необходимо запустить Sentry cron и несколько worker контейнеров все с тем же ключом
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron
Ну и пара-тройка воркеров с разными именами
docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
docker run -d --name sentry-worker-2 -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
docker run -d --name sentry-worker-3 -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
Смотрим что вышло
docker ps

Подключаемся браузером по адресу IP_VM:9000

Входим пользователем, созданным на этапе инициализации базы данных, в качестве логина необходимо ввести указанную почту.
В случае необходимости, можно добавить нового пользователя в командной строке
docker run -it --rm -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-redis:redis --link sentry-postgres:postgres sentry createuser
На этом установка Sentry завершена.