本文は 2024 年 7 月 5 日に書き直されました
序文#
以前から Google Analytics をやめることを考えていました。主な理由は、機能が多すぎて、私の小さなブログでは必要ないものが多いからです。今年の初めに umami の自己ホスト統計について聞いたことがありますが、その時点では v1 のバージョンに問題があり、データベースに接続できずにデプロイに失敗していました。最近、umami v2 がリリースされたことを知り、再度試してみました。以下では、私のプロセスを共有します。
準備#
まず、umami は nextjs フレームワークを使用しているため、vercel にデプロイすることができます。同時に、統計データを保存するためのデータベースが必要です。mysql または postgresql をサポートしています。私は supabase がホストする postgresql データベースを使用していますが、具体的な選択はあなた次第です。彼らのドキュメントを参考にしてください。
デプロイ#
-
umami のリポジトリをフォークし、vercel に umami のリポジトリをインポートします。
-
通常、vercel はフレームワークやビルドコマンドなどを自動的に選択してくれるので、それらについては気にしなくても大丈夫です。次に、環境変数のオプションで新しい変数を作成し、名前を
DATABASE_URL
とし、値にデータベースの接続ドメインを入力します。例えば、postgres://postgres:[YOUR-PASSWORD]@host:6543/postgres のようなものです。
supabase データベースの場合#
supabase がホストするデータベースを使用する場合は、リポジトリのdb/postgresql/schema.prisma
パスに移動してパラメータを変更する必要があります。directUrl = env("DIRECT_DATABASE_URL")
を追加してください。
その後、vercel のデプロイでは、DATABASE_URL
に加えてDIRECT_DATABASE_URL
という環境変数を追加する必要があります。値は接続プールのオプションであるConnection Pooling
です。
要するに、DATABASE_URL にはポート 6543 の接続文字列を入力し、DIRECT_DATABASE_URL にはポート 5432 の接続文字列を入力します。
使用方法#
デプロイが成功したら、管理パネルにログインし、設定に移動します。
ウェブサイトを新規作成し、名前を任意に設定し、ドメインにはウェブサイトのドメインを入力します。
hexo の場合#
次に、彼の JavaScript コードスニペットを inject の bottom に挿入し、hexo を再起動すれば使用できます。
また、ブログの訪問者統計ページとして使用するために共有ページを作成することもできます。このサイトのアクセス統計は、この機能を使用しています。
mix-space の場合#
既に誰かが書いてくれていますので、詳細は省略します:https://blog.nekorua.com/posts/mx-space/118.html