{"id":13404901,"url":"https://github.com/kimai/kimai","last_synced_at":"2026-04-10T18:04:00.361Z","repository":{"id":37451210,"uuid":"71485542","full_name":"kimai/kimai","owner":"kimai","description":"Kimai is the #1 open-source time-tracking application. From freelancers to companies and organisations - everyone can manage timesheets, generate reports, create invoices and so much more... Web-based multi-user application, available as On-Premise or SaaS version: https://www.kimai.org","archived":false,"fork":false,"pushed_at":"2026-02-20T09:06:08.000Z","size":57248,"stargazers_count":4488,"open_issues_count":310,"forks_count":737,"subscribers_count":57,"default_branch":"main","last_synced_at":"2026-02-20T12:41:04.069Z","etag":null,"topics":["doctrine","invoice","invoicing","kimai","multilanguage","php","self-hosted","symfony","tabler","time-tracker","time-tracking","timetracker","timetracking","timetrackingapp","twig"],"latest_commit_sha":null,"homepage":"https://www.kimai.org","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kimai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["kevinpapst"],"open_collective":"kimai","custom":["https://www.kimai.org/","https://www.kimai.cloud/","https://www.kevinpapst.de/"]}},"created_at":"2016-10-20T17:06:34.000Z","updated_at":"2026-02-20T10:42:59.000Z","dependencies_parsed_at":"2024-01-28T22:21:11.866Z","dependency_job_id":"0422f88d-e436-4b53-a837-d87b19907c79","html_url":"https://github.com/kimai/kimai","commit_stats":{"total_commits":1485,"total_committers":77,"mean_commits":"19.285714285714285","dds":0.2767676767676768,"last_synced_commit":"84a0ca5ce6673dc45660dbf0c0d8968b9a609b70"},"previous_names":["kevinpapst/kimai2"],"tags_count":195,"template":false,"template_full_name":null,"purl":"pkg:github/kimai/kimai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimai%2Fkimai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimai%2Fkimai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimai%2Fkimai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimai%2Fkimai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kimai","download_url":"https://codeload.github.com/kimai/kimai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kimai%2Fkimai/sbom","scorecard":{"id":557280,"data":{"date":"2025-08-11","repo":{"name":"github.com/kimai/kimai","commit":"023048e7c01217da969a516542a576ea277aaf53"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.8,"checks":[{"name":"Code-Review","score":3,"reason":"Found 10/30 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"27 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU Affero General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: Dockerfile:37","Warn: containerImage not pinned by hash: Dockerfile:44","Warn: containerImage not pinned by hash: Dockerfile:80","Warn: containerImage not pinned by hash: Dockerfile:91","Warn: containerImage not pinned by hash: Dockerfile:97","Warn: containerImage not pinned by hash: Dockerfile:101","Warn: containerImage not pinned by hash: Dockerfile:106","Warn: containerImage not pinned by hash: Dockerfile:110","Warn: containerImage not pinned by hash: Dockerfile:114","Warn: containerImage not pinned by hash: Dockerfile:118","Warn: containerImage not pinned by hash: Dockerfile:125","Warn: containerImage not pinned by hash: Dockerfile:157","Warn: containerImage not pinned by hash: Dockerfile:185","Warn: containerImage not pinned by hash: Dockerfile:224","Warn: containerImage not pinned by hash: Dockerfile:238","Warn: containerImage not pinned by hash: Dockerfile:285","Warn: containerImage not pinned by hash: Dockerfile:306","Info:   0 out of  17 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T12:42:24.169Z","repository_id":37451210,"created_at":"2025-08-20T12:42:24.169Z","updated_at":"2025-08-20T12:42:24.169Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29842937,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T21:18:31.832Z","status":"ssl_error","status_checked_at":"2026-02-25T21:18:29.265Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["doctrine","invoice","invoicing","kimai","multilanguage","php","self-hosted","symfony","tabler","time-tracker","time-tracking","timetracker","timetracking","timetrackingapp","twig"],"created_at":"2024-07-30T19:01:53.015Z","updated_at":"2026-02-25T22:05:32.370Z","avatar_url":"https://github.com/kimai.png","language":"PHP","funding_links":["https://github.com/sponsors/kevinpapst","https://opencollective.com/kimai","https://www.kimai.org/","https://www.kimai.cloud/","https://www.kevinpapst.de/"],"categories":["PHP","时间跟踪","前端开发框架及项目","symfony"],"sub_categories":["管理面板"],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/kimai/images/main/repository-header.png\" alt=\"Kimai logo\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/kimai/kimai/actions\"\u003e\u003cimg alt=\"CI Status\" src=\"https://github.com/kimai/kimai/actions/workflows/testing.yaml/badge.svg\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/kimai/kimai\"\u003e\u003cimg alt=\"Code Coverage\" src=\"https://codecov.io/gh/kimai/kimai/branch/main/graph/badge.svg\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://packagist.org/packages/kimai/kimai\"\u003e\u003cimg alt=\"Latest stable version\" src=\"https://poser.pugx.org/kimai/kimai/v/stable\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eKimai\u003cbr\u003e#1 Open-Source Time-Tracker\u003c/h1\u003e\n\nKimai is a professional grade time-tracking application, free and open-source. \nIt handles use-cases of freelancers as well as companies with dozens or hundreds of users. \nKimai was build to track your project times and ships with many advanced features, including but not limited to:\n\nJSON API, invoicing, data exports, multi-timer and punch-in punch-out mode, tagging, multi-user - multi-timezones - multi-language ([over 30 translations existing](https://hosted.weblate.org/projects/kimai/)!),\nauthentication via SAML/LDAP/Database, two-factor authentication (2FA) with TOTP, customizable role and team permissions, responsive design,\nuser/customer/project specific rates, advanced search \u0026 filtering, money and time budgets, advanced reporting, support for [plugins](https://www.kimai.org/store/)\nand so much more.\n\n### Links\n\n- [Home](https://www.kimai.org) — Kimai project homepage\n- [Blog](https://www.kimai.org/blog/) — Read the latest news\n- [Documentation](https://www.kimai.org/documentation/) — Learn how to use Kimai\n\n### Requirements\n\n- PHP 8.1.3 minimum with support for 8.2, 8.3, 8.4, 8.5\n- MariaDB / MySQL: oldest maintained LTS release (MariaDB \u003e= [10.6](https://endoflife.date/mariadb) or MySQL \u003e= [8.4](https://endoflife.date/mysql)) or newer\n- A webserver and subdomain (subdirectory is not supported)\n- PHP extensions: `gd`, `intl`, `json`, `mbstring`, `pdo`, `tokenizer`, `xml`, `xsl`, `zip`\n\n## Installation\n\n- Caddy with Docker-Compose at [Hetzner](https://www.kimai.org/documentation/hosting-hetzner-cloud.html) and [DigitalOcean](https://www.kimai.org/documentation/hosting-digital-ocean.html)\n- [SSH setup](https://www.kimai.org/documentation/installation.html) with Git and Composer\n- [Docker images](https://hub.docker.com/r/kimai/kimai2) with FPM only or incl. Apache\n- [Synology](https://www.kimai.org/documentation/synology.html) user can host the Docker version \n- [Developer setups](https://www.kimai.org/documentation/developers.html) if you want to create Kimai integrations\n\nThere are more documented ways for [on-premise hosting](https://www.kimai.org/documentation/chapter-on-premise.html). \n\nAnd if you don't want to host Kimai, you can use the [Cloud version](https://www.kimai.cloud/) of it.\n\n### Updating Kimai\n\n- [Update Kimai](https://www.kimai.org/documentation/updates.html) — get the latest version\n- [UPGRADING guide](UPGRADING.md) — version specific steps\n\n### Plugins\n\n- [Plugins](https://www.kimai.org/store/) — paid and free plugin marketplace\n- [Developer documentation](https://www.kimai.org/documentation/developers.html) — how to create a plugin\n\n## Roadmap and releases\n\nYou can see a rough development [roadmap](https://github.com/orgs/kimai/projects/2), which is open for changes and input from the community, your [ideas](https://github.com/kimai/kimai/issues) are welcome.\n\nRelease versions will be created on a regular basis, every couple of weeks latest.\nEvery code change, whether it's a new feature or a bugfix, will be done on the `main` branch.\n\n## Contributing\n\nYou want to contribute to this repository? This is so great!\nThe best way to start is to [open a new issue](https://github.com/kimai/kimai/issues) for bugs or feature requests or a [discussion](https://github.com/kimai/kimai/discussions) for questions, support and such.\n\nIn case you want to contribute, but you wouldn't know how, here are some suggestions:\n\n- Spread the word: Please [write a testimonial for our Wall of love](https://love.kimai.org), vote for Kimai on any software platform, you can toot or tweet about it, share it on LinkedIn, Reddit and any other social media platform!\n- [Translate Kimai into your language](https://hosted.weblate.org/engage/kimai/), or help to improve the existing translations, many languages look for a contributor\n- Answer questions: You know the answer to another user's problem? Share your knowledge.\n- Something can be done better? An essential feature is missing? Create a feature request.\n- Report bugs makes Kimai better for everyone.\n- You don't have to be programmer, the documentation and translation could always use some attention.\n- Sponsor the project: free software costs money to create!\n\nThere is one simple rule in our \"Code of conduct\": Don't be an ass!\n\n## Follow Kimai\n\n- Mastodon: [@kimai](https://phpc.social/@kimai)\n- Youtube: [@kimai_org](https://www.youtube.com/@kimai_org)\n- LinkedIn: [@kimai-org](https://www.linkedin.com/company/kimai-org/)\n\n### Credits\n\nKimai is based on modern technologies and frameworks such as [PHP](https://www.php.net/),\n[Symfony](https://github.com/symfony/symfony) and [Doctrine](https://github.com/doctrine/),\n[Bootstrap](https://github.com/twbs/bootstrap) and [Tabler](https://tabler.io/),\nand [countless](composer.json) [others](package.json).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkimai%2Fkimai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkimai%2Fkimai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkimai%2Fkimai/lists"}