Kimai

productivitysmall business

Self-hosted time tracking for agencies and freelancers with project billing, built-in invoicing, multi-user access, SAML auth, and detailed exports. Free to self-host

#time-tracking#invoicing#billing#freelance#agencies#projects
Alternative to HarvestToggl

Quick Start

docker compose up

Overview

Kimai is a self-hosted time tracking application built for teams that bill by the hour. It tracks time against customers, projects, and activities, then feeds that data into reports and invoices you can actually send.

The setup is designed for agencies and consultants: define your customer list, break work into projects and activities, then either start a timer or log hours manually. Reports filter by any combination of user, customer, project, date range, or tag, and export options cover XLSX, PDF, CSV, and HTML. Invoicing is built in with configurable templates and support for EN 16931 e-invoice compliance, relevant if you work with European business clients.

For teams, Kimai handles unlimited users with role-based permissions and team-scoped access control. LDAP and SAML integration covers Google Workspace and Azure AD for enterprise authentication. A customer portal lets clients view their own time and cost reports via a password-protected URL without giving them access to the admin interface.

The self-hosted version is completely free and open-source. A SaaS option called Kimai Cloud adds managed hosting, automatic backups, and additional features like custom fields and task planning.

Installation requires PHP and a MySQL or PostgreSQL database, with Docker images available for easier deployment. More than 5,000 customers use Kimai, and the project has been maintained continuously since 2006.

Use Cases

Specific ways to use Kimai for your workflow.

01
Billable hour tracking by customer and project for agencies
02
Automated invoicing and PDF export for client billing
03
Team time analysis with role-based access control

Deployment Strategy

Recommended ways to host Kimai in your own environment.

docker
self-hosted
cloud