{"id":21831068,"url":"https://github.com/enhavo/enhavo","last_synced_at":"2026-02-27T12:50:56.831Z","repository":{"id":34499493,"uuid":"38440204","full_name":"enhavo/enhavo","owner":"enhavo","description":"Modern CMS based on fullstack symfony and vue","archived":false,"fork":false,"pushed_at":"2026-02-26T06:51:12.000Z","size":41009,"stargazers_count":93,"open_issues_count":36,"forks_count":31,"subscribers_count":13,"default_branch":"0.16","last_synced_at":"2026-02-26T11:42:36.974Z","etag":null,"topics":["cms","enhavo","framework","php","symfony","typescript","vue"],"latest_commit_sha":null,"homepage":"https://www.enhavo.com/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/enhavo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2015-07-02T15:17:17.000Z","updated_at":"2026-02-23T09:34:13.000Z","dependencies_parsed_at":"2024-03-25T06:46:12.476Z","dependency_job_id":"0818d559-78e9-441b-979b-3e0dfe080e98","html_url":"https://github.com/enhavo/enhavo","commit_stats":{"total_commits":3265,"total_committers":23,"mean_commits":"141.95652173913044","dds":"0.34088820826952526","last_synced_commit":"458514d5c41235c79e859ca9cd17be8365fab8dc"},"previous_names":[],"tags_count":97,"template":false,"template_full_name":null,"purl":"pkg:github/enhavo/enhavo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enhavo%2Fenhavo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enhavo%2Fenhavo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enhavo%2Fenhavo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enhavo%2Fenhavo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/enhavo","download_url":"https://codeload.github.com/enhavo/enhavo/tar.gz/refs/heads/0.16","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/enhavo%2Fenhavo/sbom","scorecard":{"id":377390,"data":{"date":"2025-08-11","repo":{"name":"github.com/enhavo/enhavo","commit":"309b9f73ea87e09f156c6729b76de4813b96ce48"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.7,"checks":[{"name":"Code-Review","score":2,"reason":"Found 6/30 approved changesets -- score normalized to 2","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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/subtree.yml:1","Info: no jobLevel write permissions found"],"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":"Maintained","score":10,"reason":"15 commit(s) and 0 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":"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":"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: MIT License: 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":"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":"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":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:98: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:110: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:130: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:133: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:145: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:167: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:173: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:179: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:195: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:205: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:231: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:234: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/ci.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/release.yml/0.15?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/release.yml/0.15?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/release.yml/0.15?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/subtree.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/subtree.yml/0.15?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/subtree.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/subtree.yml/0.15?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/subtree.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/enhavo/enhavo/subtree.yml/0.15?enable=pin","Info:   0 out of  13 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   9 third-party GitHubAction 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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 26 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-18T14:34:43.393Z","repository_id":34499493,"created_at":"2025-08-18T14:34:43.393Z","updated_at":"2025-08-18T14:34:43.393Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29892076,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T09:48:51.284Z","status":"ssl_error","status_checked_at":"2026-02-27T09:48:43.992Z","response_time":57,"last_error":"SSL_read: 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":["cms","enhavo","framework","php","symfony","typescript","vue"],"created_at":"2024-11-27T19:08:21.952Z","updated_at":"2026-02-27T12:50:56.823Z","avatar_url":"https://github.com/enhavo.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"![alt text](assets/admin/images/enhavo.svg \"enhavo\")\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n[![License](https://img.shields.io/packagist/l/enhavo/enhavo.svg)](https://packagist.org/packages/enhavo/enhavo)\n[![Continuous Integration](https://github.com/enhavo/enhavo/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/enhavo/enhavo/actions/workflows/ci.yml)\n[![Scrutinizer](https://scrutinizer-ci.com/g/enhavo/enhavo/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/enhavo/enhavo)\n[![Code Coverage](https://scrutinizer-ci.com/g/enhavo/enhavo/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/enhavo/enhavo/?branch=master)\n[![Version](https://img.shields.io/packagist/v/enhavo/enhavo.svg)](https://packagist.org/packages/enhavo/enhavo)\n\nThe enhavo CMS is a open source PHP project on top of the fullstack Symfony framework,\nto serve a very flexible software, that can handle most of complex data structure with a clean and usability interface.\n\nEnhavo is still under heavy development and we can't guarantee for backward compatibility or security issues nor is our documentation up to date. \nSo we advice you to not use the software for production until we reach a stable release. \n\nGet started\n-----------\n\nIf you just want to use enhavo, you don't need to install this repository. \nRead the [Get Started](https://docs.enhavo.com/get-started/index.html) tutorial to install your own enhavo application.\n\nDemo\n----\n\nIf you want to check the enhavo look and feel. Take a look at our demo on [demo.enhavo.com](http://demo.enhavo.com/admin/login)\n\n| User            | Password      |\n|-----------------|---------------|\n| admin@enhavo.com|  admin        |\n\nContribute\n----------\n\nHelp us to develop the software. This is the main repository of the enhavo project. \nFeel free to open tickets or pull requests or just give us feedback.\nIf you are a github user, you can star our project.\n\n----------------------\n\nIf you want to contribute code, you need to run the main repository. Make sure you have installed `composer` and `yarn` on \nyour local machine. Fork and clone the repo and add a ``.env.local`` file containing your database credentials.\n\n```\nDATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/enhavo\n```\n\nAnd a test config ``.env.test.local`` containing your test database credentials.\n\n```\nDATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/enhavo_test\n```\n\nExecute following commands on your shell:\n\n```bash\n$ composer install\n$ yarn install\n$ yarn build\n$ bin/console doctrine:database:create\n$ bin/console doctrine:database:create --env=test\n$ bin/console doctrine:migrations:migrate\n$ bin/console doctrine:migrations:migrate --env=test\n$ bin/console enhavo:init\n$ bin/console enhavo:user:create --super-admin\n```\n\nMake your changes and run the tests.\n\n```bash\n$ bin/phpunit\n$ bin/behat\n$ yarn test:unit\n$ yarn test:integration\n```\n\n**Testing stack**\n\nDepending on what you are going to test, choose the right tool.\n\n```\n\u003c----------------------------- Behat ----------------------------------------\u003e\n                    \u003c----  PHPUnit ----\u003e\n                                        \u003c------------- Vitest ---------------\u003e\n[**** Database ****][**** PHP File ****][**** JS File ****][**** Browser ****]\n```\n\n\nDocumentation\n-------------\n\nThe documentation is available at [docs.enhavo.com](http://docs.enhavo.com). \n\n----------------------\n\nIf you want to contribute, fork and clone this repository and make your changes under `docs`.\n\nWe are using `vitepress`, which comes already with `yarn install`. To see the docs run `yarn docs:dev`\n\nRead more about the docs syntax [here](https://vitepress.dev/guide/markdown)\n\nMIT License\n-----------\n\nLicense can be found [here](https://github.com/enhavo/enhavo/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenhavo%2Fenhavo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenhavo%2Fenhavo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenhavo%2Fenhavo/lists"}