Open source · Self-hosted · NixOS-native
A Harvest-compatible time tracker you run on your own server. No subscriptions, no data leaving your infrastructure.
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.
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;
};
}