{{ template "head.tpl.html" . }} {{ template "header.tpl.html" . }}
← Go back

Settings

         
{{ template "alerts.tpl.html" . }}

Account Preferences

{{ if .User.Email }}
Weekly E-Mail Reports
{{ end }}
E-Mail address is optional, but required for some features that you cannot use else. Also, if you do not add an e-mail address, you will not be able to reset your password in case you forget it.

Change Password

Aliases

You can specify aliases for any type of entity. For instance, you can define a rule, that both myapp-frontend and myapp-backend are combined under a project called myapp.
{{ if .Aliases }}

Rules

{{ range $i, $alias := .Aliases }}
▸  All {{ $alias.Type | typeName }}s named {{ range $j, $value := $alias.Values }} {{- $value -}} {{ if lt $j (add (len $alias.Values) -2) }} {{- ", " | capitalize -}} {{ else if lt $j (add (len $alias.Values) -1) }} {{- "or" -}} {{ end }} {{ end }} are mapped to {{ $alias.Type | typeName }} {{ $alias.Key }}.
{{end}}
{{end}}

Add Rule

Map named to

Project Labels

You can assign labels (aka. tags) to projects to group them together, e.g. by private and work. Please note that labels are only applied to new data, not to existing summaries in retrospect. To label historic data, you will need to clear and regenerate your summaries (see down below).
{{ if .Labels }}

Labels

{{ range $i, $label := .Labels }}
▸ {{ $label.Key }}: {{ range $j, $value := $label.Values }}
{{- $value -}}
{{ if lt $j (add (len $label.Values) -1) }} {{- ", " | capitalize -}} {{ end }} {{ end }}
{{end}}
{{end}} {{ if .Projects }}

Add Label

Project: Label:
{{ else }}
You don't have any projects, yet. Start out by sending a few heartbeats before you can then assign labels.
{{ end }}

Custom Mappings

You can specify custom mapping from file extensions to programming languages, for instance a .jsx file could be mapped to the React language.
{{ if .LanguageMappings }}

Rules

{{ range $i, $mapping := .LanguageMappings }}
▸  When filename ends in {{ $mapping.Extension }} then change the language to {{ $mapping.Language }}
{{end}}
{{end}}

Add Rule

When filename ends in change language to

Public Data

Some features require public access to your data without authentication. This mainly includes Badges and the integration with GitHub Readme Stats, corresponding to these API endpoints:

  • /api/compat/shields/v1/{user}
  • /api/v1/users/{user}/stats/{range}
Publicly accessible data range:
(in days; 0 = not public, -1 = unlimited)
Share projects:
Share languages:
Share editors:
Share operating systems:
Share machines:
Share project labels:

Integrations

WakaTime

WakaTime Logo

You can connect Wakapi with the official WakaTime in a way that all heartbeats sent to Wakapi are relayed. This way, you can use both services at the same time. To get started, get your API key and paste it here.

{{ $placeholderText := "Paste your WakaTime API key here ..." }} {{ if .User.WakatimeApiKey }} {{ $placeholderText = "********" }} {{ end }}
{{ if not .User.WakatimeApiKey }} {{ else }} {{ end }}
{{ if .User.WakatimeApiKey }}
{{ end }}

Please note: When enabling this feature, the operators of this server will, in theory (!), have unlimited access to your data stored in WakaTime. If you are concerned about your privacy, please do not enable this integration or wait for OAuth 2 authentication (#94) to be implemented.

Badges (Shields.io)

{{ if ne .User.ShareDataMaxDays 0 }}

Examples:

(Only available on public instances, not on localhost)
Shields.io badge
https://img.shields.io/endpoint?url=%s/api/compat/shields/v1/{{ .User.ID }}/interval:today&style=flat-square&color=blue&label=today
Shields.io badge
https://img.shields.io/endpoint?url=%s/api/compat/shields/v1/{{ .User.ID }}/interval:30_days&style=flat-square&color=blue&label=last 30d

You can also add /project:your-cool-project to the URL to filter by project.

{{ else }}

You have the ability to create badges from your coding statistics using Shields.io. To do so, you need to grant public, unauthorized access to the respective endpoint. See Public Data setting.

{{ end }}

GitHub Readme Stats

Wakapi intregrates with GitHub Readme Stats to generate fancy cards for you.

{{ if ne .User.ShareDataMaxDays 0 }}

Example:

(Only available on public instances, not on localhost)

Source URL: https://github-readme-stats.vercel.app/api/wakatime?username={{ .User.ID }}&api_domain=%s&bg_color=2D3748&title_color=2F855A&icon_color=2F855A&text_color=ffffff&custom_title=Wakapi%20Week%20Stats&layout=compact

{{ end }}

  Danger Zone

Regenerate summaries

Wakapi improves its efficiency and speed by automatically aggregating individual heartbeats to summaries on a per-day basis. That is, historic summaries, i.e. such from past days, are generated once and only fetched from the database in a static fashion afterwards, unless you pass &recompute=true with your request.

If, for some reason, these aggregated summaries are faulty or preconditions have change (e.g. you modified language mappings retrospectively), you may want to re-generate them from raw heartbeats.

Note: Only run this action if you know what you are doing. Data might be lost is case heartbeats were deleted after the respective summaries had been generated.

Reset API Key

⚠️ Caution: Resetting your API key requires you to update your .wakatime.cfg files on all of your computers to make the WakaTime client send heartbeats again.

Delete Account

Deleting your account will cause all data, including all your heartbeats, to be erased from the server immediately. This action is irreversible. Be careful!

{{ template "footer.tpl.html" . }} {{ template "foot.tpl.html" . }}