Horae

Open source · Self-hosted · NixOS-native

Time tracking that's
fully yours.

A Harvest-compatible time tracker you run on your own server. No subscriptions, no data leaving your infrastructure.

Self-host on NixOS View on GitHub

Features

Timer & time entries

Track time in real time or add entries manually. The live timer runs in the browser; durations are stored as integer minutes in PostgreSQL.

Weekly timesheets

Day, week, and calendar views with automatic totals. Submit weekly timesheets for manager review and approval.

Projects & clients

Organize time by client and project. Assign team members, control roles, and configure billing context per project.

Approval workflow

Managers review, approve, or reject submitted time. A state machine tracks every entry: open → submitted → approved or rejected.

Reports & export

Aggregate time by project, client, or user. Export to CSV or XLSX for payroll, billing, or external reporting.

Harvest-compatible API

A read-only /harvest/v2 endpoint matching the Harvest API v2 shape — your existing integrations keep working without changes.


One NixOS module.

Add Horae to your NixOS configuration. The module manages the systemd service, PostgreSQL database, and runtime environment.

# configuration.nix
{
  imports = [ horae.nixosModules.default ];

  services.horae = {
    enable = true;
    host = "127.0.0.1";
    port = 3000;
    database.createLocally = true; # manages local PostgreSQL
    secretKeyFile = /run/secrets/horae-env;
    openFirewall = true;
  };
}