<span id="run-umami" />

# Запуск Umami

Это руководство запускает официальный Docker-образ Umami на Lizard с отдельной базой данных PostgreSQL. Используется Lizard CLI для развертывания небольшого локального Dockerfile и предоставления Umami через HTTPS.

<span id="prerequisites" />

## Предварительные требования

- Аккаунт Lizard с доступом к хостингу приложений и Managed Postgres.
- Node.js и npm на вашем компьютере, а также OpenSSL для генерации секретов.

Установите Lizard CLI и выполните вход:

```bash
npm install -g @lizard-build/cli
lizard login
```

Завершите вход в браузере перед продолжением. Команды ниже тестировались с Lizard CLI 0.3.95 и Umami 3.3.1.

<span id="create-the-project-and-database" />

## Создание проекта и базы данных

Используйте новый каталог для этого развертывания:

```bash
mkdir umami-on-lizard
cd umami-on-lizard
lizard init --name umami-on-lizard
lizard add postgres --name umami-db
lizard add --service umami
```

Если вы состоите более чем в одном рабочем пространстве, передайте `--workspace <workspace>` в `lizard init` для выбора одного. Дождитесь, пока база данных достигнет статуса `running`, прежде чем развертывать Umami.

<span id="set-the-image-and-secrets" />

## Настройка образа и секретов

Создайте файл с именем `Dockerfile`:

```dockerfile
FROM ghcr.io/umami-software/umami:3.3.1
EXPOSE 3000
```

Укажите Lizard использовать этот файл как есть:

```bash
lizard service set umami --set dockerfilePath=Dockerfile
```

Подключите базу данных и сгенерируйте два отдельных секрета:

```bash
lizard secrets set \
  DATABASE_URL='${{umami-db.DATABASE_URL}}' \
  APP_SECRET="$(openssl rand -hex 32)" \
  TWO_FACTOR_ENCRYPTION_KEY="$(openssl rand -hex 32)" \
  --service umami
```

Сохраняйте одинарные кавычки вокруг ссылки на базу данных: Lizard разрешит её при запуске сервиса. Значения принадлежат этому сервису, поэтому другие приложения в проекте их не получат.

Сохраните оба сгенерированных секрета в вашем менеджере паролей. Установите их один раз при настройке; не перегенерируйте их при перезапуске или обновлении. `TWO_FACTOR_ENCRYPTION_KEY` необходим для двухфакторной аутентификации.

<span id="deploy-and-sign-in" />

## Развертывание и вход

Из каталога, содержащего Dockerfile, выполните:

```bash
lizard up --service umami --port 3000
```

Образ Umami при запуске выполняет настройку базы данных и миграции. Для этого образа отдельная команда миграции не требуется.

Откройте HTTPS-URL, возвращённый при развертывании. Для новой базы данных Umami 3.3.1 войдите с именем пользователя `admin` и паролем `umami`, затем сразу смените пароль в профиле перед тем, как делиться URL. Добавьте веб-сайт и установите его скрипт отслеживания на контролируемой вами странице.

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

```bash
lizard events --service umami
lizard logs --build --service umami
lizard logs --service umami
```

Если первый запуск завершился таймаутом, проверьте `lizard events` на готовность контейнера. После запуска контейнера повторите загрузку с помощью `lizard up --service umami --port 3000`.

<span id="check-data-persistence" />

## Проверка сохранности данных

Посетите отслеживаемую страницу и убедитесь, что Umami фиксирует просмотр страницы. Перезапустите приложение:

```bash
lizard restart --service umami
```

Дождитесь повторного запуска сервиса. Убедитесь, что новый пароль работает и веб-сайт с просмотром страницы сохраняются. Затем повторите проверку после повторного развертывания:

```bash
lizard redeploy --service umami
```

Umami хранит аккаунты, настройки веб-сайтов и аналитику в PostgreSQL. Приложению не нужен файловый том для этих записей. Сохраняйте базу данных и секреты шифрования при замене или обновлении приложения. Проверка перезапуска не заменяет проверенный план резервного копирования и восстановления базы данных.

<span id="update-umami" />

## Обновление Umami

Сделайте резервную копию PostgreSQL и изучите примечания к выпуску перед обновлением. Измените тег образа в локальном Dockerfile, затем снова выполните `lizard up --service umami --port 3000`. Для этой настройки на основе загрузки `lizard redeploy` перестраивает последние загруженные файлы; он не загружает локальные правки.

См. [руководство Lizard по PostgreSQL](https://lizard.build/docs/addons/postgres/) для доступа к базе данных и [хранение и восстановление](https://lizard.build/docs/platform/storage-and-recovery/) для планирования резервного копирования.
