Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Wakatime server implementation & analytics dashboard

License

NotificationsYou must be signed in to change notification settings

mujx/hakatime

Repository files navigation

Latest versionBuiltWithNix

Hakatime is a server implementation ofWakatime. You can use it as a self-hosted alternative.

It comes together with a dashboard which provides a graphical representation of the collected data.

Features

  • Import Wakatime activity using an API token and a range of dates.
  • See time spent on Github commits.
  • Forward incoming heartbeats to another Wakatime compatible server (e.gwakatime.com)
  • Group projects together with tags (e.g#work,#personal) and view their aggregated statistics.
  • User registration & login through the UI.
  • Leaderboards for all the users of the instance.
  • Badge generation for a project that displays that total amount of hours spent for a configurabletime period.my-app
  • Global and per project charts
    • Breakdown by project or language.
    • Breakdown by day of week and hour of the day.
    • Timeline of activity for a configurable time-frame.
    • Total time spent per file.
  • API token management & generation.

Demo

There is an instancehere that you can use to send data or browsearound.

Usedemo as username anddemodemo as password or create your own user to login. You can createan API token and try sending your data.

Client setup

After you've generated a new API token from Hakatime's UI, update your~/.wakatime.cfg file like below:

[settings]api_key=<generated_token># e.g api_url=https://hakatime.mtx-dev.xyz/api/v1/users/current/heartbeats.bulk for the demo instance.api_url=<hakatime_instance_url>/api/v1/users/current/heartbeats.bulk# e.g If you're using the docker-compose-deploy.yml to test things locally, use the following:# api_url=http://localhost:8080/api/v1/users/current/heartbeats.bulk

The file's location might be different depending on your system and editor. Please consult theclient docsfor further information.

Deployment

You can use the following docker-compose setup for testing locally or an actualdeployment. ChangeHAKA_BADGE_URL to match the actual external endpoint of yourinstance.

Deploying on ARM is also possible using themujx/hakatime:latest-arm ormujx/hakatime:v1.7.3-arm image or the dedicatedDockerfile (Dockerfile.arm) to build the image.

version:"3"services:server:container_name:hakatimeimage:mujx/hakatime:v1.7.3environment:# DB settings.HAKA_DB_HOST:haka_dbHAKA_DB_PORT:5432HAKA_DB_NAME:testHAKA_DB_PASS:testHAKA_DB_USER:test# Server settings.# Fill out this field if the api is behind another path (e.g behind a reverse proxy).# This will adjust the Set-Cookie path for all the /auth related API calls.HAKA_API_PREFIX:""# Update this with the external endpoint that you use to access hakatime.HAKA_BADGE_URL:"http://localhost:8080"HAKA_PORT:8080HAKA_SHIELDS_IO_URL:"https://img.shields.io"HAKA_ENABLE_REGISTRATION:"true"# Toggle after you've created your account.# Number of hours after which inactive browser sessions will expire (login required).HAKA_SESSION_EXPIRY:"24"HAKA_LOG_LEVEL:"info"# Control the verbosity of the logger.HAKA_ENV:"dev"# Use a json logger for production, otherwise key=value pairs.HAKA_HTTP_LOG:"true"# If you want to log http requests.GITHUB_TOKEN:"<token>"# If you want to retrieve time spent per commit. No extra scope is required.# Add the following variables if you want to forward any received heartbeats to another# Wakatime compatible server.HAKA_REMOTE_WRITE_URL:"https://wakatime.com/api/v1/users/current/heartbeats.bulk"# You can also use this URL format to forward heartbeats to Wakapi:# https://[wakapi-instance]/api/compat/wakatime/v1/users/current/heartbeats.bulkHAKA_REMOTE_WRITE_TOKEN:"<token>"ports:# This will start the services on all interfaces.# More info here: https://github.com/compose-spec/compose-spec/blob/master/spec.md#ports      -"8080:8080"haka_db:container_name:haka_dbimage:postgres:12-alpineenvironment:POSTGRES_DB:testPOSTGRES_PASSWORD:testPOSTGRES_USER:testvolumes:      -deploy_db_data:/var/lib/postgresql/datavolumes:deploy_db_data:{}

To start all the services run:

$ docker-compose -f ./docker-compose-deploy.yml up

and navigate tohttp://localhost:8080 to access the dashboard.

Building

Server

Requirements:

cabal buildcabal run exe:hakatime -- run

Dashboard

The output files will be located atdashboard/dist.

Requirements:

  • Node.js & npm
cd dashboardnpm installnpm run prod

CLI options

hakatime :: v1.7.3Usage: hakatime COMMAND  Wakatime server implementationAvailable options:  -h,--help                Show this help textAvailable commands:  create-token             Create a new auth token  create-user              Create a new user account  run-migrations           Apply pending database migrations  run                      Start the Server

Screens

Overview

Overview Page

Projects

Projects Page

Projects Page - Commits

Contributing

Any kind of contribution is greatly appreciated. This could be:

  • Bug fixes
  • Suggesting/Implementing new features
  • UI/UX improvements/suggestions
  • Code refactoring

[8]ページ先頭

©2009-2025 Movatter.jp