mirror of
https://github.com/System-End/hackatime.git
synced 2026-04-19 05:00:22 +00:00
Free, open source, Wakatime-compatible coding time tracker
* Re-add test_param
* Revert "`types_from_initializers` + `js_from_routes` + performance fixes (#918)"
This reverts commit
|
||
|---|---|---|
| .github | ||
| .kamal | ||
| app | ||
| bin | ||
| config | ||
| db | ||
| docs | ||
| lib | ||
| log | ||
| public | ||
| script | ||
| spec | ||
| storage | ||
| swagger/v1 | ||
| test | ||
| tmp | ||
| vendor | ||
| .dockerignore | ||
| .env.example | ||
| .erb_lint.yml | ||
| .gitattributes | ||
| .gitignore | ||
| .rspec | ||
| .rubocop.yml | ||
| .ruby-version | ||
| AGENTS.md | ||
| bun.lock | ||
| config.ru | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Dockerfile.dev | ||
| Dockerfile.production-worker | ||
| docs-index.png | ||
| docs-vs-code.png | ||
| entrypoint.dev.sh | ||
| Gemfile | ||
| Gemfile.lock | ||
| package-lock.json | ||
| package.json | ||
| Procfile.dev | ||
| Rakefile | ||
| README.md | ||
| slack_manifest_harbor.yml | ||
| slack_manifest_sailors_log.yml | ||
| svelte.config.js | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
Hackatime
Local development
# Set it up...
$ git clone https://github.com/hackclub/hackatime && cd hackatime
# Set your config
$ cp .env.example .env
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 project
$ 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 test@example.com 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:seed