Getting Started with Kimai for Self-Hosted Time Tracking
Kimai is an open-source time tracker supporting PHP 8.2 and MariaDB 10.6. It handles billing for time-and-materials or budgeted projects, featuring a JSON API, multi-user access, and SAML authentication for self-hosted environments.
Kimai is a free, open-source time tracker that handles freelancers and companies with hundreds of users. The software bills projects based on effort or fixed price, supporting both time-and-materials and budgeted models. For budgeted work, it tracks consumption against the budget in a burndown view. For time-and-materials projects, you export billable hours with stored rates to create invoices in external accounting software. I have used the tool for years, first self-hosted at an internet provider and now in the cloud. The data model fits my business perfectly because it adapts to my processes rather than forcing me to adapt to the software. Numerous small features, such as hiding columns and advanced filter options, make daily work easier. The interface feels modern and intuitive, with everything located where I expect it to be. Support responds quickly, and several suggestions I submitted were implemented promptly. I have recommended Kimai to business partners in different industries without charge. You can tell its maturity from the software and the manufacturer’s experience in this field.
Server requirements and deployment steps
You need PHP 8.2 minimum, with support for versions 8.3, 8.4, and 8.5. The database must be MariaDB 10.6 or newer, or MySQL 8.4 or newer. A webserver and subdomain are required; subdirectory hosting is not supported. Specific PHP extensions like gd, intl, json, mbstring, pdo, tokenizer, xml, xsl, and zip must be installed. Docker images simplify the process by packaging these dependencies. If you prefer Kubernetes, a Helm chart bootstraps the deployment along with a Bitnami MariaDB chart. Release versions appear every couple of weeks, keeping the codebase current. The application runs on modern frameworks including Symfony, Doctrine, Bootstrap, and Tabler. If you do not want to host it yourself, a Cloud version exists, but the self-hosted edition gives you full control over your data.
| Requirement | Specification |
|---|---|
| PHP Version | 8.2 minimum (supports 8.3, 8.4, 8.5) |
| Database | MariaDB >= 10.6 or MySQL >= 8.4 |
| Web Hosting | Subdomain required (no subdirectories) |
| Extensions | gd, intl, json, mbstring, pdo, tokenizer, xml, xsl, zip |
Features, plugins, and practical usage
Kimai ships with a JSON API, invoicing, data exports, multi-timer, and punch-in punch-out mode. It supports tagging, multi-user access, multiple timezones, and over 30 language translations. Authentication works via SAML, LDAP, or database, with two-factor authentication using TOTP. Customizable role and team permissions let you restrict access to specific data. User, customer, and project specific rates allow precise billing for agencies. Advanced search and filtering help you find entries quickly. Money and time budgets provide oversight before costs exceed limits. The plugin system includes both free and paid bundles, available via git checkout or zip files. One user noted that some settings are tucked away, so you might miss them initially. Another reviewer found the billing process frustrating, citing long wait times for fixes. These issues suggest that while the core tracking is solid, the peripheral tools require patience. You can pipe hours into payroll or BI tools via the API. The community welcomes contributions, from bug reports to translation improvements. Do not be an ass, as per the code of conduct. Is the setup worth the maintenance overhead compared to SaaS alternatives?