About this project
Wakapi is a free, open-source, self-hosted backend that is compatible with WakaTime, the popular coding-activity tracker. It is designed for developers who want to keep their coding statistics on their own infrastructure while continuing to use existing WakaTime editor plugins.
## What it does
Wakapi receives heartbeats from the official WakaTime client tools and turns them into statistics about projects, languages, editors, hosts, and operating systems. It offers a web dashboard, embeddable badges, weekly email reports, a REST API, and Prometheus-compatible metrics export. It is described as partially compatible with WakaTime and can also integrate with WakaTime itself.
## Deployment options
The README lists several ways to run Wakapi:
- Use the hosted cloud service at wakapi.dev.
- Quick-run a release via a shell installer script.
- Run the official Docker image (ghcr.io/muety/wakapi), with a persistent volume and a password salt. SQLite is the default database; MySQL and Postgres are also supported. Docker Compose and Docker Secrets are supported, and a community Helm chart exists for Kubernetes.
- Compile and run from source with Go, using a YAML configuration file. Running as a SystemD service is recommended for standalone deployments.
## Client setup
Wakapi relies on the open-source WakaTime client tools. Users install the WakaTime plugin for their editor, then edit `~/.wakatime.cfg` to point `api_url` at their Wakapi instance and set their Wakapi API key. A client-side proxy can be configured optionally. Wakapi and WakaTime can run in parallel, either through client-side configuration or through Wakapi's relay feature, which forwards heartbeats to WakaTime.
## Configuration
Configuration can be provided through a YAML file or environment variables. The README documents a broad set of options, including:
- Application settings: leaderboard enablement, scope, generation time, and authentication requirement; aggregation and weekly report schedules; data cleanup and database optimization times; import settings (enablement, batch size, backoff, rate limits, host whitelist); heartbeat maximum age; cache warming; custom language mappings; avatar URL templates; date and datetime formats; support contact; data retention and inactive-account limits.
- Server settings: port, IPv4/IPv6 addresses, UNIX socket and its permissions, log format, request timeout, TLS certificate and key paths, base path, and public URL.
- Security settings: disabling local authentication, disabling WebAuthn, password salt, cookie key, insecure cookies, cookie lifetime, local signup, OIDC signup, OIDC TLS verification, and signup CAPTCHA.
## Notes
The README states that, due to limited maintainer time, pull requests are temporarily not accepted. The project is licensed under an open-source license and is maintained by muety.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.