#time-tracking #server #waka-time

app rustytime-server

πŸ•’ blazingly fast time tracking for developers

48 releases (6 breaking)

Uses new Rust 2024

new 0.9.11 Nov 10, 2025
0.8.6 Nov 1, 2025

#39 in HTTP server

Download history 24/week @ 2025-09-15 560/week @ 2025-09-22 584/week @ 2025-09-29 1826/week @ 2025-10-06 873/week @ 2025-10-13 338/week @ 2025-10-20 237/week @ 2025-10-27

3,314 downloads per month

AGPL-3.0-only

160KB
4K SLoC

πŸ•’ blazingly fast time tracking for developers

Crates.io Total Downloads GitHub Actions Workflow Status GitHub last commit Crates.io Version Crates.io License Crates.io Size

Features

  • βœ… Time tracking
  • βœ… Stat visualization
  • βœ… WakaTime compatible
  • βœ… Fast and memory efficient

What is this?

rustytime is a WakaTime compatible server that can be used to track time in most apps with any of the existing plugins!

Installation

Compiling from source

Dependencies:

  • rust
  • docker
  • git
git clone https://github.com/ImShyMike/rustytime.git
cd rustytime
mv .env.example .env
# Edit the .env file before running docker compose
docker compose up

Pulling containers from dockerhub

Dependencies:

  • docker
  • curl
mkdir rustytime
cd rustytime
curl -O https://raw.githubusercontent.com/ImShyMike/rustytime/main/.env.example
curl -o docker-compose.yml https://raw.githubusercontent.com/ImShyMike/rustytime/main/docker-compose.yml
mv .env.example .env
# Edit the .env file before running docker compose
docker compose up

Local Development

# Clone the repo
$ git clone https://github.com/ImShyMike/rustytime && cd rustytime

# Copy the env file
$ cp .env.example .env

Edit your .env file to include the following:

# GitHub OAuth Settings
GITHUB_CLIENT_ID=client_id_goes_here
GITHUB_CLIENT_SECRET=client_secret_goes_here

Build & Run

# Run the full app
$ docker compose up

# OR

# Run the databse + backend 
$ docker compose up timescaledb rustytime
# Run the frontend
$ cd frontend && bun run dev

The app should now be available at http://localhost:5173

Seeding the DB

The seed feature can be enabled in the build to seed the database with a single user and 10000 heartbeats.

cargo run --features seed

WakaTime

When using a WakaTime client, point your requests to http://localhost:3000/api/v1 (or https://api-rustytime.shymike.dev/api/v1 if using the deployed version)

License

This project is licensed under the GNU AGPLv3

Dependencies

~30–48MB
~696K SLoC