Umami を実行する
このガイドでは、公式の Umami Docker イメージを Lizard 上で、別個の PostgreSQL データベースとともに実行します。Lizard CLI を使って小さなローカル Dockerfile をデプロイし、HTTPS 経由で Umami を公開します。
前提条件
- アプリホスティングと Managed Postgres にアクセスできる Lizard アカウント。
- お使いのコンピューターに Node.js と npm、およびシークレット生成用の OpenSSL。
Lizard CLI をインストールしてログインします:
npm install -g @lizard-build/cli
lizard login続行する前に、ブラウザーでログインを完了してください。以下のコマンドは Lizard CLI 0.3.95 と Umami 3.3.1 でテストされています。
プロジェクトとデータベースを作成する
このデプロイ用に新しいディレクトリを使用します:
mkdir umami-on-lizard
cd umami-on-lizard
lizard init --name umami-on-lizard
lizard add postgres --name umami-db
lizard add --service umami複数のワークスペースに所属している場合は、1 つを選ぶために lizard init に --workspace <workspace> を渡してください。Umami をデプロイする前に、データベースが running になるまで待ちます。
イメージとシークレットを設定する
Dockerfile という名前のファイルを作成します:
FROM ghcr.io/umami-software/umami:3.3.1
EXPOSE 3000このファイルを記述どおりに使うよう Lizard に指定します:
lizard service set umami --set dockerfilePath=Dockerfileデータベースを接続し、2 つの別々のシークレットを生成します:
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 は二要素認証に必要です。
デプロイしてサインインする
Dockerfile を含むディレクトリから、次を実行します:
lizard up --service umami --port 3000Umami のイメージは起動時にデータベースのセットアップとマイグレーションを実行します。このイメージには別個のマイグレーションコマンドは不要です。
デプロイで返された HTTPS URL を開きます。新しい Umami 3.3.1 データベースでは、ユーザー名 admin とパスワード umami でサインインし、URL を共有する前にプロフィールですぐにパスワードを変更してください。Web サイトを追加し、そのトラッキングスクリプトを自分が管理するページにインストールします。
デプロイに失敗した場合は、そのステータスとログを確認します:
lizard events --service umami
lizard logs --build --service umami
lizard logs --service umami最初の起動がタイムアウトする場合は、コンテナーの準備状況について lizard events を確認してください。コンテナーが起動したら、lizard up --service umami --port 3000 でアップロードを再試行します。
データの永続性を確認する
トラッキング対象のページにアクセスし、Umami がページビューを記録することを確認します。アプリケーションを再起動します:
lizard restart --service umamiサービスが再び実行状態になるまで待ちます。新しいパスワードでサインインでき、Web サイトとページビューが残っていることを確認してください。次に、再デプロイ後にも同じ確認を繰り返します:
lizard redeploy --service umamiUmami はアカウント、Web サイト設定、アナリティクスを PostgreSQL に保存します。これらの記録のために、アプリケーションにファイルボリュームは必要ありません。アプリを置き換えたりアップグレードしたりするときは、データベースと暗号化シークレットを維持してください。再起動の確認は、検証済みのデータベースのバックアップおよび復元計画の代わりにはなりません。
Umami を更新する
アップグレード前に PostgreSQL をバックアップし、リリースノートを読んでください。ローカル Dockerfile のイメージタグを変更してから、再度 lizard up --service umami --port 3000 を実行します。このアップロードベースのセットアップでは、lizard redeploy は最後にアップロードしたファイルを再ビルドします。ローカルの編集内容はアップロードしません。
データベースアクセスについては Lizard の PostgreSQL ガイド、バックアップ計画については ストレージとリカバリー を参照してください。