All Projects → mujx → Hakatime

mujx / Hakatime

Licence: unlicense
Wakatime server implementation & analytics dashboard

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to Hakatime

Droppy
**ARCHIVED** Self-hosted file storage
Stars: ✭ 1,564 (+915.58%)
Mutual labels:  self-hosted
Pinry
The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim through format.
Stars: ✭ 1,819 (+1081.17%)
Mutual labels:  self-hosted
Commafeed
Google Reader inspired self-hosted RSS reader.
Stars: ✭ 1,842 (+1096.1%)
Mutual labels:  self-hosted
Torrentinim
A very low memory-footprint, self hosted API-only torrent search engine. Sonarr + Radarr Compatible, native support for Linux, Mac and Windows.
Stars: ✭ 123 (-20.13%)
Mutual labels:  self-hosted
Fileshelter
FileShelter is a “one-click” file sharing web application
Stars: ✭ 132 (-14.29%)
Mutual labels:  self-hosted
Ambar
🔍 Ambar: Document Search Engine
Stars: ✭ 1,829 (+1087.66%)
Mutual labels:  self-hosted
Privacy Respecting
Curated List of Privacy Respecting Services and Software
Stars: ✭ 1,663 (+979.87%)
Mutual labels:  self-hosted
Subspace
A simple WireGuard VPN server GUI
Stars: ✭ 2,109 (+1269.48%)
Mutual labels:  self-hosted
Hrcloud2
A full-featured home hosted Cloud Drive, Personal Assistant, App Launcher, File Converter, Streamer, Share Tool & More!
Stars: ✭ 134 (-12.99%)
Mutual labels:  self-hosted
Photoprism
Photos App powered by Go and Google TensorFlow 🌈
Stars: ✭ 17,946 (+11553.25%)
Mutual labels:  self-hosted
Fx
A Function as a Service tool makes a function as a container-based service in seconds.
Stars: ✭ 1,679 (+990.26%)
Mutual labels:  self-hosted
Inertia
✈️ Effortless, self-hosted continuous deployment for small teams and projects
Stars: ✭ 133 (-13.64%)
Mutual labels:  self-hosted
Airsonic
📡 ☁️ 🎶Airsonic, a Free and Open Source community driven media server (fork of Subsonic and Libresonic)
Stars: ✭ 1,876 (+1118.18%)
Mutual labels:  self-hosted
Bot
An open-source and self-hosted ticket management bot for Discord - a free alternative to the premium and white-label plans of other popular ticketing bots.
Stars: ✭ 122 (-20.78%)
Mutual labels:  self-hosted
Photo Stream
Self-hosted, super simple photo stream
Stars: ✭ 1,839 (+1094.16%)
Mutual labels:  self-hosted
Homer
A very simple static homepage for your server.
Stars: ✭ 3,380 (+2094.81%)
Mutual labels:  self-hosted
Exoframe Server
Exoframe is a self-hosted tool that allows simple one-command deployments using Docker
Stars: ✭ 139 (-9.74%)
Mutual labels:  self-hosted
Ex money
A [work-in-progress] self-hosted personal finance app
Stars: ✭ 154 (+0%)
Mutual labels:  self-hosted
Lumo
Fast, cross-platform, standalone ClojureScript environment
Stars: ✭ 1,861 (+1108.44%)
Mutual labels:  self-hosted
Atheos
A self-hosted browser-based cloud IDE, updated from Codiad IDE
Stars: ✭ 144 (-6.49%)
Mutual labels:  self-hosted

hakatime

CircleCI Docker build Latest version BuiltWithNix

Hakatime is a server implementation of Wakatime. 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.
  • 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 configurable time 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 demo instance with fake data here.

Use demo as username and demodemo as password to login. You can create an 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-demo.mtx-dev.xyz/api/v1/users/current/heartbeats.bulk for the demo instance.
api_url=<hakatime_instance_url>/api/v1/users/current/heartbeats.bulk

The file's location might be different depending on your system and editor. Please consult the client docs for further information.

Deployment

You can use the following docker-compose setup for testing locally or an actual deployment. Change HAKA_BADGE_URL to match the actual external endpoint of your instance.

Deploying on ARM is also possible using the dedicated Dockerfile (Dockerfile.arm) to build the image.

version: "3"
services:
  server:
    container_name: hakatime
    image: mujx/hakatime:1.3.0
    environment:
      # DB settings.
      HAKA_DB_HOST: haka_db
      HAKA_DB_PORT: 5432
      HAKA_DB_NAME: test
      HAKA_DB_PASS: test
      HAKA_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: 8080
      HAKA_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.
    ports:
      - "127.0.0.1:8080:8080"
  haka_db:
    container_name: haka_db
    image: postgres:12-alpine
    environment:
      POSTGRES_DB: test
      POSTGRES_PASSWORD: test
      POSTGRES_USER: test
    volumes:
      - deploy_db_data:/var/lib/postgresql/data

volumes:
  deploy_db_data: {}

To start all the services run:

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

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

Building

Server

Requirements:

cabal build
cabal run exe:hakatime -- run

Dashboard

The output files will be located at dashboard/dist.

Requirements:

  • Node.js & npm
cd dashboard

npm install
npm run prod

CLI options

hakatime :: v1.3.0

Usage: hakatime COMMAND
  Wakatime server implementation

Available options:
  -h,--help                Show this help text

Available 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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].