8,922 stars · AGPL-3.0-or-later, read from /blob/main/LICENSE.md on 2026-09-27 after /blob/main/LICENSE returned 404; composer.json agrees. Section 13 obliges anyone who modifies it and offers it over a network to give those users the corresponding source · v0.21.0 (2026-09-22), read from /releases/latest and confirmed by ungh · Track this in Scout
Self-hosted time tracking for billable work, with clients, projects, tasks, rates at three levels and role-based permissions.
▶Repo detailsthe review · specs · pros & cons · install
What it is
solidtime is a web application for tracking billable time across several organisations and several people. Entries attach to clients, projects, tasks and tags, rates can be set at the organisation, project or person level, and the result is aggregated into reports and PDF exports.
What it is good for. Freelancers and small agencies paying per person per month for a hosted tracker, and anyone who would rather their clients' billing records were not on someone else's server. Permissions are role-based, so a contractor can log time without seeing the whole organisation's figures. It also ships importers for Toggl and Clockify, so moving in does not mean abandoning your history — that is often the thing that keeps people on a paid product.
- It covers the parts that actually matter for invoicing: clients, projects, tasks, billable rates at three levels, several organisations, and role-based permissions.
- Importers for Toggl and Clockify mean your existing history comes with you.
- Officially maintained container images and a separate repository of working example configurations, so deploying it is not reverse-engineered from the source.
- It is not a one-command install. A working deployment is four containers plus a separate PDF service, and it needs generated keys, roughly twenty environment variables, and a database migration step. This is a system-administration job.
- PostgreSQL only. The documentation says plainly that "solidtime only supports PostgreSQL", which rules out most cheap shared hosting. The PHP version is also pinned narrowly to 8.3.
- Still before version 1.0, at v0.21.0 after about twenty months. There is also a paid "On-Premise Business" plan for self-hosted installations, so some features sit behind a commercial plan rather than in this repository — though the repository itself is fully AGPL, with no enterprise folder inside it.
kimai/kimai4,959 stars, covered in Edition 32; far older and with invoicing built in, on a PHP stack, and a denser interface.
Track this in Scout- almarklein/timetagger
1,777 stars, a much simpler tag-based tracker with a nice timeline; no clients, no rates, no invoices.
Track this in Scout - traggo/server
1,629 stars, a small Go tracker built around tags; quick to run and deliberately plain.
Track this in Scout
# take the compose file from solidtime-io/self-hosting-examples docker run --rm solidtime/solidtime:main php artisan self-host:generate-keys # put APP_KEY, PASSPORT_PRIVATE_KEY, PASSPORT_PUBLIC_KEY and the DB_* values into laravel.env docker compose up -d docker compose exec scheduler php artisan migrate --force

