このプロジェクトについて

Wakapiは、人気のあるコーディング活動トラッカーであるWakaTimeと互換性のある、無料のオープンソースでセルフホスト型のバックエンドです。既存のWakaTimeエディタプラグインを使い続けながら、コーディング統計を自身のインフラ上に保持したい開発者向けに設計されています。 ## 機能 Wakapiは公式のWakaTimeクライアントツールからハートビートを受信し、プロジェクト、言語、エディタ、ホスト、オペレーティングシステムに関する統計に変換します。Webダッシュボード、埋め込み可能なバッジ、週次メールレポート、REST API、Prometheus互換のメトリクスエクスポートを提供します。WakaTimeと部分的に互換性があると説明されており、WakaTime自体とも統合できます。 ## デプロイオプション READMEには、Wakapiを実行するいくつかの方法が記載されています: - wakapi.devのホスト型クラウドサービスを利用する。 - シェルインストーラスクリプトでリリースをクイック実行する。 - 公式Dockerイメージ(ghcr.io/muety/wakapi)を、永続ボリュームとパスワードソルトとともに実行する。SQLiteがデフォルトのデータベースで、MySQLとPostgresもサポートされています。Docker ComposeとDocker Secretsがサポートされ、Kubernetes用のコミュニティHelmチャートも存在します。 - Goでソースからコンパイルして実行し、YAML設定ファイルを使用する。スタンドアロンデプロイではSystemDサービスとして実行することが推奨されます。 ## クライアントのセットアップ WakapiはオープンソースのWakaTimeクライアントツールに依存しています。ユーザーは自分のエディタ用のWakaTimeプラグインをインストールし、`~/.wakatime.cfg`を編集して`api_url`を自分のWakapiインスタンスに向け、WakapiのAPIキーを設定します。クライアント側プロキシをオプションで設定できます。WakapiとWakaTimeは、クライアント側の設定またはWakapiのリレー機能(ハートビートをWakaTimeに転送する)を通じて、並行して実行できます。 ## 設定 設定はYAMLファイルまたは環境変数を通じて提供できます。READMEには幅広いオプションが記載されています: - アプリケーション設定:リーダーボードの有効化、スコープ、生成時間、認証要件;集計と週次レポートのスケジュール;データクリーンアップとデータベース最適化の時間;インポート設定(有効化、バッチサイズ、バックオフ、レート制限、ホストホワイトリスト);ハートビートの最大経過時間;キャッシュウォーミング;カスタム言語マッピング;アバターURLテンプレート;日付と日時のフォーマット;サポート連絡先;データ保持と非アクティブアカウントの制限。 - サーバー設定:ポート、IPv4/IPv6アドレス、UNIXソケットとそのパーミッション、ログフォーマット、リクエストタイムアウト、TLS証明書とキーのパス、ベースパス、パブリックURL。 - セキュリティ設定:ローカル認証の無効化、WebAuthnの無効化、パスワードソルト、Cookieキー、安全でないCookie、Cookieの有効期間、ローカルサインアップ、OIDCサインアップ、OIDC TLS検証、サインアップCAPTCHA。 ## 注意事項 READMEには、メンテナーの時間が限られているため、プルリクエストは一時的に受け付けていないと記載されています。このプロジェクトはオープンソースライセンスの下でライセンスされており、muetyによってメンテナンスされています。