優れたソフトウェアと実用的なチュートリアル
UmamiはGoogle Analyticsに代わるシンプルで高速、プライバシー重視の代替ツールです
公式 GitHub アドレス:https://github.com/umami-software/umami
正式ドッカーミラーアドレス: https://docker.umami.dev/umami-software/umami:postgresql-latest
うま味 に基づくNode.js 開発とサポート MySQL PostgreSQLなどのデータベースストレージ方式では、データを自分で管理できます。UMAMIは非常に詳細なデータも提供します。トラフィック分析ビジュアルインターフェース、UIエクスペリエンス、統計精度は非常に優れています。UMAMIは広告ブロックプラグインなどによるブロックも防ぎ、統計精度も高いです。
公式ドキュメント: 詳細な入門ガイドは以下にあります。https://umami.is/docs/現れる
必要とする:
- Node.jsバージョン12以上のサーバー
- Umami は MySQL および Postgresql データベースをサポートしています。
UbuntuにNode.jsをインストールし、npmを最新バージョンにアップデートする
Node.jsをインストールする
NodeSource は以下のアーキテクチャを引き続き維持し、将来的には他のアーキテクチャを追加する可能性があります。
- amd64(64ビット)
- アームHF(ARM 32 ビットハードフロート、ARMv7 以上:arm-linux-gnueabihf)
- アーム64(ARM 64 ビット、ARMv8 以上:aarch64-linux-gnu)
Node プロジェクトのウェブサイト:https://github.com/nodesource/distributions
システムを更新する
sudo apt update && sudo apt upgrade
依存関係をインストールする
sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y
Node.js v18.x
NodeSourceが提供する最新のnpmパッケージをインストールする
Node.jsには現在、Node.js 18.x、Node.js 20.x、Node.js 21.xの3つのバージョンがあります。
以下は Node.js 18.x のインストールで、1 行のコードで実行できます。 &&\ は、前のコマンドが正しく実行された後に次のコードが実行されることを意味します。
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - &&\ sudo apt-get install -y nodejs
ルートとしてインストール
curl -fsSL https://deb.nodesource.com/setup_18.x | bash - &&\ apt-get install -y nodejs
インストールが完了したら、バージョンが正常にインストールされたかどうかを確認します。
ノード -v
他のバージョンをインストールする場合は、上記のコマンドの setup_20.x を、インストールするバージョンに置き換えてください。
注意:Ubuntu 22.4にNode.js 20.xまたはNode.js 21.xをインストールすると、umamiを開いた後に画面が空白になり、アクセスできなくなります。これにより404エラーが発生します。
Umami をインストールした後に画面が真っ白になる問題の解決方法
これも大きな落とし穴です。Node.js 20.xとNode.js 21.xでコンパイルするとエラーが発生します。ブラウザを開くと、コンテンツがないどころか空白の画面が表示されます。F12キーを押すと、すべてのjsファイルにアクセスできないことがわかります。この問題は、Node.js 20.xとNode.js 21.xでコンパイルすると発生します。Node.js 18.xをインストールすると、すべて正常にコンパイルされ、問題なく開くことができます。
注:コンパイルにはNode.js 18.xを使用してください。コンパイルにはNode.js 18.xを使用してください。コンパイルにはNode.js 18.xを使用してください。重要なことは3回繰り返します。自分で穴を掘らないでください!
以下のNode.jsに関する内容は参考用です。実際のアプリケーションでは、以下のNode.js関連の内容は無視してください。
----------------------------------------------------------------------------------------
Node公式サイトダウンロードアドレス:https://nodejs.org/en/download/
もう一つの方法があります。ウブントゥaptを使ってNodeをインストールする
注意: apt を使用してインストールすると、node の低いバージョンがインストールされる可能性があり、その後のインストール中にエラーが発生します。
エラー @clickhouse/client@0.2.10: エンジン「node」はこのモジュールと互換性がありません。想定されるバージョンは ">=16 です。取得されたバージョンは「12.22.9」です。
エラー 互換性のないモジュールが見つかりました。
情報訪問 https://yarnpkg.com/en/docs/cli/install このコマンドに関するドキュメント。
このエラーは、現在のNode.jsバージョンが@clickhouse/clientモジュールの要件を満たしていないことを意味します。@clickhouse/clientモジュールを使用するには、Node.jsバージョン16以上が必要です。現在のNode.jsバージョンは12.22.9です。
この問題を解決するには、Node.js のバージョンを要件を満たすバージョンにアップグレードすることを検討してください。
sudo apt update sudo apt install nodejs # npm には付属していないため、自分でインストールする必要があります。sudo apt install npm # 最新バージョンにアップグレードするには、n Node バージョン管理ツールを使用します。udo npm install n -g # 最新の安定バージョンをダウンロードします。udo n stable # 最新バージョンをダウンロードします。udo n lastest # ダウンロードしたバージョンを表示します。udo n ls # Node のバージョンを切り替えます。udo n 18.21.1 # npm をアップグレードします。sudo npm install npm -g
Node.js UbuntuおよびDebianパッケージをアンインストールする
apt-get purge nodejs &&\ rm -rf /etc/apt/sources.list.d/nodesource.list &&\ rm -rf /etc/apt/keyrings/nodesource.gpg #Uninstall npm npm uninstall npm -g
インストール中にnpmをインストールできない場合は、nvmを使用してインストールできます。
nvm を使用して Node.js と npm をインストールします。Node Version Manager (nvm) を使用すると、Node.js のバージョンと npm の管理が容易になります。以下の手順に従って nvm をインストールし、Node.js と npm をインストールしてください。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash #またはwgetを使ってインストールします。wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash #Node.jsとnpmをインストールします。npmはNodeに含まれています。Nodeをインストールすると、npmが自動的にインストールされます。nvm install node #新しくインストールされたNodeを使用します。nvm use node
nvm を使用して複数のバージョンのノードをインストールする
#現在インストールされているノードを表示します。nvm ls #20xバージョンのノードをインストールします。20xの最高バージョンがデフォルトでインストールされます。たとえば、20.12 nvm install 20 #20xバージョンを使用します。nvm use 20 #20xバージョンを永続的に使用します。nvm alias default 20
参照終了!!
--------------------------------------------------------------------------------------------------
注: 上記の方法がどれもうまくいかない場合は、npmの代わりにyarnをお試しください。yarnは高速で信頼性が高く、安全なパッケージマネージャーで、npmの代替としてよく使用されます。yarnは以下の手順でインストールできます。
Yarnをインストールする
npm の代わりに yarn を使用します。プロジェクトではコンパイルに Yarn を使用するため、Yarn をインストールする必要があります。
npm インストール -g 糸
Yarn の公式インストール スクリプトを使用してインストールします。Yarn は公式にインストール スクリプトを提供しており、次のコマンドでインストールできます。
curl -o- -L https://yarnpkg.com/install.sh | bash # または wget を使用してインストールします wget -qO- https://yarnpkg.com/install.sh | bash
新しいMySQLデータベースを作成する
ここではMySQLを使用して、データベースに新しい空のデータベースを作成します。
phpmyadmin を使用して、サーバー上に Umami 用の空のデータベースを作成します。
または、サーバー上で直接作成します。
mysql -u ルート -p うまみ < sql/schema.mysql.sql
Umamiをインストールする
Umamiをダウンロードしてインストールする
カスタム ダウンロードは /home/umami ディレクトリに配置されますが、他のディレクトリに配置することもできます。
cd /home/ #git pull umami git clone https://github.com/umami-software/umami.git #umamiディレクトリに入ります cd umami #install yarn install
しばらくお待ちください。インストールが完了したら、.envファイルを設定する必要があります。
.env ファイルを構成する
umami フォルダーに .env という名前の新しいファイルを作成します。
touch コマンドを使用して新しい .env ファイルを作成するか、vim コマンドを直接使用して新しい .env ファイルを作成します。
vi .env
.env ファイルが作成されると、ディレクトリ内で表示できなくなることに注意してください。.env は隠しファイルであり、vi を使用して直接編集できます。
.env ファイルを編集し、次の構成を入力して保存します。
DATABASE_URL=mysql://umamiuser:umamipass@127.0.0.1:3306/umami_db APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/ DISABLE_TELEMETRY=1 TRACKER_SCRIPT_NAME=custom
データベースURL
データベースURL=mysql://umamiuser:umamipass@127.0.0.1:3306/umami_db
説明: これは Umami のデータベース接続 URL で、MySQL データベース umami_db を指し、データベース ユーザーは umamiuser、パスワードは umamipass、データベース サーバーは 127.0.0.1:3306 で実行されます。
有効性を確保する:
データベースが正しく作成され、データベースのユーザーとパスワードが正しく設定されていることを確認します。
MySQL データベースが 127.0.0.1 アドレス経由の接続を許可していることを確認します。
Umami サービスが MySQL データベースにアクセスできることを確認します。
アプリシークレット
APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/
説明: これは暗号化と署名に使用されるアプリケーションキーです。Umami は、JWT (JSON Web Token) やその他の機密情報のセキュリティを確保するためにこれを使用します。
有効性を確保する:
このキーは安全に保管し、公開したり漏らしたりしないでください。
より複雑なキーを生成することもできます。たとえば、openssl rand -base64 32 を使用して新しいキーを生成します。
テレメトリを無効にする
テレメトリを無効にする=1
説明: テレメトリを無効にすると、統計や使用状況データが Umami のサーバーに送信されなくなります。
有効性の確保: この構成は有効であり、テレメトリが無効になっており、より厳しいプライバシー要件に適しています。
トラッカースクリプト名
TRACKER_SCRIPT_NAME=カスタム
説明: この設定は、Umamiトラッキングスクリプトの名前を指定します。デフォルト名はumami.jsですが、custom.jsなど任意の名前に変更できます。
有効性を確認する: カスタム名を使用する場合は、Web ページ コードで正しい JavaScript トラッキング スクリプトを参照していることを確認してください。
その他の可能な設定項目
使用する Umami のバージョンと要件に応じて、次の構成も必要になる場合があります。
次のパブリックベースURL
UmamiインスタンスのベースURLを指定するために使用します。例えば、Umamiが https://umami.example.com は次のように設定できます。
NEXT_PUBLIC_BASE_URL=https://umami.example.com
認証を無効にする
Umami の認証機能を無効にしたい場合は、次のように設定します。
DISABLE_AUTH=true
警告: 認証を無効にすると、誰でも管理パネルにアクセスできるようになるため、開発環境にのみ推奨されます。
うまみバージョン
Umami の特定のバージョンを使用する場合は、次のように指定できます。
うまみ_バージョン=v1.35.0
ポート
Umami がリッスンするポートを設定します (デフォルト ポートが適用されない場合)。
ポート=3000
SMTP 構成 (電子メール通知用)
電子メール通知やその他のメール機能を有効にする必要がある場合は、次のように SMTP 構成を設定できます。
SMTP_HOST = smtp.example.com
SMTP_ポート=587
SMTP_USER = user@example.com
SMTP_PASSWORD=パスワード
うまみログレベル
必要に応じて設定できるログ レベルを構成します。
UMAMI_LOG_LEVEL=情報
設定ファイルの例:
これらの構成項目をすべて .env ファイルに結合します。
DATABASE_URL=mysql://umamiuser:umamipass@localhost:3306/umami_db APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/ DISABLE_TELEMETRY=1 TRACKER_SCRIPT_NAME=custom NEXT_PUBLIC_BASE_URL=https://umami.example.com DISABLE_AUTH=true PORT=3000
これらの構成項目は有効である必要があり、MySQL データベース接続を検証したことを確認し、必要に応じてその他の関連構成 (SMTP や認証設定など) を追加します。
2つのデータベースをリンクする例
postgresql://ユーザー名:パスワード@localhost:5432/mydb mysql://ユーザー名:パスワード@localhost:3306/mydb
アップデートのインストール
Prisma 関連の依存関係を更新するには、次のコマンドを実行します。
yarn add --dev prisma@latest yarn add @prisma/client@latest
うま味をコンパイルする
糸のビルド
彼が処刑を終えるまで待つだけです。
データベースに接続できないというエラーが発生した場合
$ ノードスクリプト/check-db.js
✓ DATABASE_URL が定義されています。
✗ データベースに接続できません。
エラー コマンドは終了コード 1 で失敗しました。
情報訪問 https://yarnpkg.com/en/docs/cli/run このコマンドに関するドキュメント。
エラー: 「check-db」が 1 で終了しました。
エラー コマンドは終了コード 1 で失敗しました。
情報訪問 https://yarnpkg.com/en/docs/cli/run このコマンドに関するドキュメント。
ローカルホストを127.0.0.1に変更します
DATABASE_URL=mysql://ユーザー名:パスワード@127.0.0.1:3306/データベース名 APP_SECRET=bu4orqfdlG+Dh3Otau4oWSBbI9kGWSkGfYc/WiH/ DISABLE_TELEMETRY=1 TRACKER_SCRIPT_NAME=カスタム
インストール中にエラーP3018が発生しました
エラー: P3018
移行の適用に失敗しました。エラーが回復するまでは、新しい移行を適用できません。本番環境データベースにおける移行の問題を解決する方法の詳細については、以下をご覧ください。 https://pris.ly/d/migrate-resolve
移行名: 05_add_visit_id
データベースエラーコード: 1305
データベース エラー:
FUNCTION t_umami_hk.BIN_TO_UUIDが存在しません移行ファイルからクエリ番号 2 を確認してください。
✗ コマンド失敗: prisma migrate deploy
エラー: P3018移行の適用に失敗しました。エラーが回復するまでは、新しい移行を適用できません。本番環境データベースにおける移行の問題を解決する方法の詳細については、以下をご覧ください。 https://pris.ly/d/migrate-resolve
移行名: 05_add_visit_id
データベースエラーコード: 1305
データベース エラー:
FUNCTION t_umami_hk.BIN_TO_UUIDが存在しません移行ファイルからクエリ番号 2 を確認してください。
エラー コマンドは終了コード 1 で失敗しました。
情報訪問 https://yarnpkg.com/en/docs/cli/run このコマンドに関するドキュメント。
エラー: 「check-db」が 1 で終了しました。
エラー コマンドは終了コード 1 で失敗しました。
情報訪問 https://yarnpkg.com/en/docs/cli/run このコマンドに関するドキュメント。
MariaDBは、MySQLの組み込み関数であるBIN_TO_UUIDをまだ実装していません。MariaDBデータベースのインストールでは、エラーp3018が報告されます。
umami がバージョン 2.11 にアップデートされた後、UUID サポートが導入されました。MySQL は移行スクリプトでランダムな UUID を生成する必要がありますが、MariaDB をご利用の場合、MariaDB はこの機能をサポートしていません。データベースを手動で変更する必要があります。
p3018エラーの解決策
以下のコマンドを実行して再インストールすると問題が解決します。
npx prisma migrate resolution --applied "05_add_visit_id" #インストールコマンドyarn buildを再実行します
Umamiをアンインストールする
インストール プロセス中に元に戻せない操作が発生した場合は、Umami をアンインストールして再インストールすることができます。Umami のインストール ディレクトリを削除するだけです。
rm -rf /home/umami 再起動
ポート3000は占有されています
ポート 3000 が占有されている場合、起動は失敗するため、ポート 3000 を占有している nghttpx をシャットダウンする必要があります。
nghttpx はポート 3000 を占有します。nghttpx で実行するサービスがない場合は、nghttpx をシャットダウンするだけです。
systemctl stop nghttpx systemctl disable nghttpx 再起動
PM2マネージャーをインストールする
PM2マネージャはPM2を介してUmamiを開くデーモンプログラムです。
npm install pm2 -g sudo yarn global add pm2 cd /home/umami pm2 start npm --name umami -- start pm2 startup pm2 save
npm を使用して PM2 をインストールする際にエラー 1143 が発生しました
ノード:内部/モジュール/cjs/ローダー:1143
const err = new Error(メッセージ);
^エラー: モジュール 'semver' が見つかりません
スタックが必要:
- /usr/share/nodejs/npm/lib/utils/unsupported.js
- /usr/share/nodejs/npm/lib/cli.js
- /usr/share/nodejs/npm/bin/npm-cli.js
Module._resolveFilename (node:internal/modules/cjs/loader:1143:15) で
Module._load (node:internal/modules/cjs/loader:984:27) で
Module.require (node:internal/modules/cjs/loader:1231:19) で
要求時 (node:internal/modules/helpers:179:18)
オブジェクトで。(/usr/share/nodejs/npm/lib/utils/unsupported.js:2:16)
Module._compile (ノード:internal/modules/cjs/loader:1369:14) で
Module._extensions..js (node:internal/modules/cjs/loader:1427:10) で
Module.load (node:internal/modules/cjs/loader:1206:32) で
Module._load (ノード:internal/modules/cjs/loader:1022:12) で
Module.require (node:internal/modules/cjs/loader:1231:19) で {
コード: 'MODULE_NOT_FOUND',
要求スタック: [
'/usr/share/nodejs/npm/lib/utils/unsupported.js',
'/usr/share/nodejs/npm/lib/cli.js',
'/usr/share/nodejs/npm/bin/npm-cli.js'
]
}Node.js v20.12.2
解決:
このエラーは、npm をインストールした後にサーバーを再起動しないと発生し、変数が有効になりません。サーバーを再起動すると問題が解決する場合があります。
巨大な穴
インストール後、 糸の始まり
Umamiを開くコマンドです。ポート3000が占有されている場合は、ポート占有エラーが表示されます。
root@localhost:~# 糸の開始
ヤーンラン v1.22.22
エラー "/root" に package.json ファイルが見つかりませんでした
情報訪問 https://yarnpkg.com/en/docs/cli/run このコマンドに関するドキュメント。
root@localhost:~# cd /home/umami
root@localhost:/home/umami# 糸の開始
ヤーンラン v1.22.22
次回$スタート
⨯ サーバーの起動に失敗しました
エラー: listen EADDRINUSE: アドレスは既に使用されています :::3000
Server.setupListenHandle [_listen2として] (node:net:1897:16)
listenInCluster (ノード:net:1945:12)
Server.listen (node:net:2037:7) で
/home/umami/node_modules/next/dist/server/lib/start-server.js:279:16 にあります
新しいPromise()
startServer (/home/umami/node_modules/next/dist/server/lib/start-server.js:190:11) で
nextStart (/home/umami/node_modules/next/dist/cli/next-start.js:50:40) で
/home/umami/node_modules/next/dist/bin/next:155:54 にあります
非同期メイン (/home/umami/node_modules/next/dist/bin/next:155:5) {
コード: 'EADDRINUSE'、
エラー番号: -98,
システムコール: 'listen',
住所: '::'、
ポート: 3000
}
エラー コマンドは終了コード 1 で失敗しました。
情報訪問 https://yarnpkg.com/en/docs/cli/run このコマンドに関するドキュメント。
このコマンドを使用して、ポート3000を誰が占有しているかを確認します
root@localhost:~# sudo lsof -i :3000
コマンド PID ユーザー FD タイプ デバイス サイズ/オフ ノード名
nghttpx 919 ルート 5u IPv4 34021 0t0 TCP ローカルホスト:3000 (LISTEN)
nghttpx 958 ルート 5u IPv4 34021 0t0 TCP ローカルホスト:3000 (LISTEN)
nghttpx はポート 3000 を占有します。nghttpx で実行するサービスがない場合は、nghttpx をシャットダウンするだけです。
systemctl stop nghttpx systemctl disable nghttpx 再起動
サービスを停止し、起動時に開始されないように無効にして、システムを再起動します。
注意: 巨大な落とし穴が来ます。
使用 糸の始まり
Umamiを起動するコマンド。この時点ではポートは占有されておらず、起動は通常通り開始されます。その後:
root@localhost:/home/umami# 糸の開始
ヤーンラン v1.22.22
次回$スタート
▲ Next.js 14.1.4
- 地元: http://localhost:3000⚠ 「next start」は「output: standalone」設定では動作しません。代わりに「node .next/standalone/server.js」を使用してください。
✓ 2秒で準備完了
起動プロセス中に警告が表示されました。これは、おおよそ
「次回起動」は「出力:スタンドアロン」設定には適用されません。「node.next/standalone/server.js」を使用してください。この警告はエラーでしょうか?解決する必要がありますか?オンラインで調べたところ、next.jsの問題であることがわかりました。最終結果:この警告は無視してください。ブラウザでIPアドレス+ポートに正常にアクセスできる場合は、次の手順に進む必要があります。サーバーのファイアウォールはポート3000を開いている必要があります。そうでない場合、アクセスが拒否されます。
インストールが成功したかどうかをテストする
インストールが完了したら、IPアドレスとポート番号を指定してアクセスし、ページが開けるかどうかを確認してください。最初のうちはページが開くまでに時間がかかる場合がありますので、しばらくお待ちください。
エラーが表示されなければインストールは成功です。ローカルコンピュータ上の http://127.0.0.1:3000 が正常に開けるかテストしてください。
カール http://127.0.0.1:3000
データ出力があるかどうかを確認します。
ポート 3000 の現在の状態を確認します。ポート 3000 がまだ使用されている場合は、umami を起動しないでください。
lsof -i:3000
サーバーのIP + ポートを使用してブラウザでUmamiを開きます
システムのデフォルトのユーザー名とパスワードを使用してログインします
- ユーザー名: admin
- パスワード: umami
このページはとてもシンプルでエレガントです。ウェブサイト統計ウェブサイトを追加したら、コードを取得して統計を開始できます。
個人プロフィールのパスワードを変更し、より複雑なものにすることを忘れないでください。
PM2のアンインストール
# PM2 の起動を無効にする pm2 unstartup # デーモンを終了する pm2 kill # アンインストールする npm を削除する pm2 -g # 保存されているすべての設定とログを削除する rm -rf ~/.pm2
最後に、削除が完了したら、/usr/local/lib/node_modules/ に移動し、pm2 フォルダがあるかどうかを確認します。もしあれば、削除してください。
OpenLiteSpeedをリバースプロキシサーバーとして使用する
OpenLiteSpeedで新しい仮想ホストを作成し、このホストを入力して新しい外部アプリケーション 、タイプにネットワークサーバーを選択し、同済
アドレスは127.0.0.1:3000なので、パブリックネットワークIP:3000と書き込むことができます。
次にリソースセットを作成し、タイプとしてプロキシを選択し、URIを/に設定します。
注: ネットワーク サーバーには以前に作成した tongji を選択し、その他の設定には最大値を入力します。
書き換えルール。フロントエンドとバックエンドのドメイン名が異なるため、ドメイン名をバックエンドに渡すには擬似静的ルールを使用する必要があります。そうしないと、バックエンドは接続を拒否し、フロントエンドは403または500エラーを直接返します。
書き換えルール ^/(.*)$ http://tongji/$1 [P,E=プロキシホスト:xxx.com]
中国語の設定
バックエンドにログインすると、デフォルトは英語になっている可能性があります。パネルには簡体字中国語が表示されます。「設定」→「プロフィール」→「言語」を開き、中国語を選択してください。
umamiのアップグレードとアップデート
umami のアップデートがあります。pm2 を一時停止し、以下のコードを実行してアップデートしてから実行してください。
pm2 stop umami #umamiファイルディレクトリに入るcd /home/umami git pull yarn install yarn build
umami のアップグレード中にこれに遭遇しました。 プリズマ移行デプロイエラー: P3009
このエラーは、umami がバージョン 2.11 にアップデートされた後に UUID サポートが導入されたことが原因です。MySQL は移行スクリプトでランダムな UUID を生成する必要がありますが、MariaDB をご利用の場合、MariaDB はこの機能をサポートしていません。データベースを手動で変更する必要があります。
以下はmysql実行文です。
-- AlterTable ALTER TABLE website_event ADD COLUMN visit_id VARCHAR(36) NULL; -- UUIDv4 で更新 UPDATE website_event we JOIN ( SELECT DISTINCT s.session_id, s.visit_time, LOWER(CONCAT( HEX(SUBSTR(MD5(RAND()), 1, 4)), '-', HEX(SUBSTR(MD5(RAND()), 1, 2)), '-4', SUBSTR(HEX(SUBSTR(MD5(RAND()), 1, 2)), 2, 3), '-', CONCAT(HEX(FLOOR(ASCII(SUBSTR(MD5(RAND())), 1, 1)) / 64)+8),SUBSTR(HEX(SUBSTR(MD5(RAND()), 1, 2)), 2, 3)), '-', HEX(SUBSTR(MD5(RAND()), 1, 6)) )) AS uuid FROM ( SELECT DISTINCT session_id、DATE_FORMAT(created_at、'%Y-%m-%d %H:00:00') visit_time FROM website_event ) s ) a ON we.session_id = a.session_id AND DATE_FORMAT(we.created_at、'%Y-%m-%d %H:00:00') = a.visit_time SET we.visit_id = a.uuid WHERE we.visit_id IS NULL; -- ModifyColumn ALTER TABLE website_event MODIFY visit_id VARCHAR(36) NOT NULL; -- CreateIndex CREATE INDEX website_event_visit_id_idx ON website_event(visit_id); -- CreateIndex CREATE INDEX website_event_website_id_visit_id_created_at_idx ON website_event(website_id, visit_id, created_at);
次に、Umami フォルダー内の移行を解決します。
# umamiファイルディレクトリに入ります cd /home/umami npx prisma migrate resolution --applied "05_add_visit_id"
アップデートコマンドを実行した後、PM2を起動することを忘れないでください。
#umamiファイルディレクトリに入りますcd /home/umami git pull yarn install yarn build pm2 start npm --name umami -- start
これでumamiのセットアップは正式に完了です。残りの設定は非常に簡単で、umamiパネルの指示に従うだけです。ご質問がありましたら、コメント欄にメッセージを残してください。
参考記事:https://www.howtoforge.com/how-to-install-umami-analytics-on-debian-12/