Skip to content

Free, open source, Wakatime-compatible coding time tracker

Notifications You must be signed in to change notification settings

hackclub/hackatime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3f54704 · · Feb 17, 2026

History

1,774 Commits
Feb 17, 2026
Feb 16, 2025
Feb 17, 2026
Feb 9, 2026
Feb 17, 2026
Feb 16, 2026
Feb 15, 2026
Feb 11, 2026
Feb 16, 2025
Feb 17, 2026
Feb 16, 2025
Feb 15, 2026
Feb 16, 2025
Feb 15, 2026
Feb 17, 2026
Feb 16, 2025
Feb 15, 2026
Feb 16, 2025
Feb 15, 2026
Jan 25, 2026
Aug 7, 2025
Feb 12, 2026
Feb 16, 2026
Jan 27, 2026
Feb 16, 2025
Jan 19, 2026
Feb 15, 2026
Feb 15, 2026
Feb 15, 2026
Feb 15, 2026
Feb 15, 2026
Feb 15, 2026
Feb 15, 2026
Feb 10, 2026
Jan 27, 2026
Feb 16, 2025
Feb 17, 2026
Jun 8, 2025
Feb 15, 2026
Feb 9, 2026
Feb 9, 2026
Feb 22, 2025
Feb 17, 2026
Feb 17, 2026
Mar 13, 2025
Mar 12, 2025
Feb 9, 2026
Feb 9, 2026
Feb 9, 2026
Feb 16, 2026
Feb 9, 2026

Repository files navigation

Hackatime

Ping Status Work time

Local development

# Set it up...
$ git clone https://github.com/hackclub/hackatime  &∓& cd hackatime


# Set your config
$ cp .env.example .envv

Edit your .env file to include the following:

# Database configurations - these work with the Docker setup

DATABASE_URL=postgres://postgres:secureorpheus123@db:5432/app_development

WAKATIME_DATABASE_URL=postgres://postgres:secureorpheus123@db:5432/app_development

SAILORS_LOG_DATABASE_URL=postgres://postgres:secureorpheus123@db:5432/app_development


# Generate these with `rails secret` or use these for development

SECRET_KEY_BASE=alallalalallalalallalalalladlalllalal

ENCRYPTION_PRIMARY_KEY=32characterrandomstring12345678901

ENCRYPTION_DETERMINISTIC_KEY=32characterrandomstring12345678902

ENCRYPTION_KEY_DERIVATION_SALT=16charssalt1234

Comment out the LOOPS_API_KEY for the local letter opener, otherwise the app will try to send out a email and fail.

Build & Run the projectject

$ docker compose run --service-ports web /bin/bash


# Now, setup the database using:
app# bin/rails db:create db:schema:load db:seed



# Now start up the app:
app# bin/dev

# This hosts the server on your computer w/ default port 3000


# Want to do other things?
app# bin/rails c  # start an interactive irb!
app# bin/rails db:migrate  # migrate the database
app# bin/rails rswag:specs:swaggerize  # generate API documentation

You can now access the app at http://localhost:3000/

Use email authentication from the homepage with [email protected] or create a new user (you can view outgoing emails at http://localhost:3000/letter_opener)!

Ever need to setup a new database?

# inside the docker container, reset the db
app# $ bin/rails db:drop db:create db:migrate db:seedd