このプロジェクトについて
ΛNΛLOGは、自己ホスト可能な最小限のアナリティクスツールで、piratepxを強く影響を受け、多くの機能ではなく理解しやすい小さな機能セットに焦点を当てています。
このプロジェクトは、フロントエンドダッシュボードとNode.jsサーバーから構成されています。イベントは簡単なAPIを通じて記録され、ウェブダッシュボードに表示されます。READMEにはダッシュボードのスクリーンショットと短いデモ動画が掲載されています。
ストレージはプラグイン可能で、ANALOG_DATABASE_PROVIDER変数により4つのバックエンドから選択できます:MongoDB、PostgreSQL、Redis、SQLite。READMEでは、MongoDB、Supabase、Render、CockroachDB、Upstash、Tursoなどのホストプロバイダーを推奨しており、PostgreSQLについてはトランザクションプーリング接続を使用することを推奨しています。SQLite接続はlibsqlを使用し、ファイルURL経由でローカルファイルを指すことができます。
設定は環境変数を通じて行います。主なオプションには、データベースプロバイダーと接続URL、サーバーポート、ANALOG_TOKENによるリクエスト保護、ANALOG_PROTECT_POSTによるPOSTリクエストでのトークン要求、ANALOG_STATIC_SERVERによるNode.jsサーバーによるビルド済みフロントエンドの提供、ANALOG_DATABASE_REQUEST_ITEM_COUNTによる1回のデータベース呼び出しでのアイテム数などがあります。フロントエンド変数はViteで構築されたアプリケーションであるためVITE_プレフィックスを使用し、ページタイトル、表示時間範囲(最小10、最大30)、GETリクエストと同時にデータクリーンアップを実行するかどうか、およびAPIリクエストを一度にすべて取得せず順次キューイングするかどうかを制御します。
READMEに記載されているデプロイオプションには、npm installとnpm run devによるローカル開発、build argsと実行時環境変数を持つDockerfile、およびそれぞれの設定ファイル(netlify.toml、render.yaml、vercel.json)を備えたKoyeb、Netlify、Render、Vercelなどのクラウドサービスがあります。NetlifyとVercelはcron設定により毎日クリーンアップ関数をスケジュールできますが、READMEでは実行時の制限によりスケジューリングが動作しない可能性があると警告しています。
APIは/api/eventsを中心に構成されています。POSTリクエストはボディにイベント名を送信し、OKを返します。ANALOG_PROTECT_POSTとANALOG_TOKENが設定されている場合、リクエストには「Basic 」プレフィックス付きのトークンを含むAuthorizationヘッダーが必要です。GETリクエストはイベントデータをイベント名をキーとする数値配列として返します。オプションのカーソルパラメータによりページングされたデータベースクエリが可能で(指定しない場合はすべてのデータが一度に取得)、オプションのクリーンアップパラメータにより取得中にクリーンアップをトリガーできます。カーソルが使用される場合、レスポンスにはデータに加えてnextCursor値が含まれます。ANALOG_TOKENが設定されている場合、ダッシュボードURLにはトークンクエリパラメータが必要で、例えばhostname/?token=ANALOG_TOKENとなります。
全体的に見て、ΛNΛLOGは基本的なイベント追跡のための軽量で自己ホスト可能な代替手段であり、柔軟なストレージバックエンドと簡単なデプロイパスを備えています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.