Public record
Software health reportschema 0.30.0 · metrics 2.3.2 · 2026-08-03 14:55 UTC

coollabsio / coolify

An open-source, self-hostable PaaS alternative to Vercel, Heroku & Netlify that lets you easily deploy static sites, databases, full-stack applications and 280+ one-click services on your own servers.

PHP · BladeApache-2.0★ 60,033 stars⑂ 5,199 forkssince Jan 2021View on GitHub ↗
KindNetwork servicehow this is determined

coollabsio/coolify holds a health index of 88 out of 100, placing it in the Excellent band. It scores highest on Vitality (100/100) and lowest on Security (52/100). It was last updated today. A single contributor accounts for most of its recent work.

88
overall / 100
Excellent

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean, calibrated against the distribution of the public record so bands carry percentile meaning; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At Risk ceiling of 34.

88
Exceptional93-100The record's top tier (≈ top 5%); essentially all checked criteria met
Excellent80-92Strong across the board; minor gaps
Good65-79Healthy; gaps are limited and manageable
Moderate50-64Acceptable with notable gaps; review recommended
Weak35-49Material weaknesses across several areas
At Risk20-34Significant weaknesses; adoption warrants caution
Critical1-19Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

The weighted overall 74 is calibrated to 88 on the published index scale (record calibration 2026-08-02).

Ownership

coolLabsOrganization
1,838 followers43 public repossince Feb 2020

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

100Exceptional · 21% of overall

Development activity

100Exceptional
How it's scored
36/36Push recency — last push 0 days ago
36/36Commit cadence — 52/52 weeks with commits
18/18Commit volume — 4,299 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year4,299
human_commit_share0.99
days_since_last_push0
active_weeks_last_year52

Release discipline

100Exceptional
How it's scored
27/27Ships releases — 100 releases published
36/36Release recency — latest release 12 days ago
27/27Release cadence — a release every ~13.2 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count100
latest_release_tagv4.2.0
releases_from_tagsno
days_since_latest_release12
mean_days_between_releases13.2
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

95Exceptional · 17% of overall
How it's scored
60/60Stars — 60,033 stars
25/25Forks — 5,199 forks
12.7/15Watchers — 191 watchers
Inputs used
forks5,199
stars60,033
watchers191
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

Community health

92Excellent
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (Apache-2.0)
18/18CONTRIBUTING guide
13.5/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
readme_badges1
has_contributingyes
has_issue_templateno
has_code_of_conductyes
readme_badge_servicesshields.io
has_pull_request_templateyes

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

55Moderate · 23% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
4.8/22.5Commit distribution — top contributor authored 79% of commits
13.5/13.5Contributor breadth — 98 contributors
10/10OpenSSF Scorecard: Contributors — project has 37 contributing companies or organizations
Inputs used
bus_factor1
contributors_sampled98
top_contributor_share0.787
How it's scored
35.2/42Issue resolution — 84% of issues closed
16.5/30PR acceptance — 2,671/4,847 decided PRs merged
1.4/13Newcomer PR acceptance — 1/9 first-time contributors' PRs merged in 30d
0/15OpenSSF Scorecard: Code-Review — Found 0/10 approved changesets -- score normalized to 0
Inputs used
merged_prs2,671
open_issues629
closed_issues3,249
prs_merged_7d3
prs_decided_7d20
prs_merged_30d13
prs_decided_30d57
issue_closed_ratio0.838
closed_unmerged_prs2,176
first_time_authors_30d8
first_time_prs_merged_30d1
first_time_prs_decided_30d9
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
23.5/25Owner reach — 1,838 followers of coollabsio
24/25Track record — 43 public repos, account ~6 yr old
Inputs used
followers1,838
owner_typeOrganization
is_verified
owner_logincoollabsio
public_repos43
account_age_days2,370

Engineering Quality

Are baseline engineering and documentation practices in place?

70Good · 19% of overall
How it's scored
24/24CI workflows — 15 workflow(s)
24/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
6.4/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 10 out of 10 merged PRs checked by a CI test -- score normalized to 10
Inputs used
has_ciyes
has_testsyes
has_editorconfigyes
has_linter_configno
has_precommit_configno
How it's scored
30/30README
0/25Documentation directory
15/15Documentation / homepage site — https://coolify.io
10/10Repository description
10/10Topics — 20 topics
0/10Wiki
Inputs used
topicsnodejs, mysql, php, docker, self-hosting, redis, svelte, databases, nextjs, coolify, deployment, docker-compose, inertiajs, laravel, mariadb, postgres, self-hosted, server, static-site, svelte5
has_wikino
homepagehttps://coolify.io
has_readmeyes
has_docs_dirno
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

52Moderate · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
2.2/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 10 out of 10 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/10 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 37 contributing companies or organizations
0/10Dangerous-Workflow — no data
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
7.5/7.5Maintained — 30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — no data
0.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
2/5Security-Policy — security policy file detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — no data
1.5/7.5Vulnerabilities — 8 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated14
scorecard_versionv5.5.0
checks_inconclusive4
scorecard_aggregate4.8
Excluded from scoring (no data or not applicable): dangerous_workflow, packaging, signed_releases, token_permissions. Remaining weights renormalized.
How it's scored
12.2/35Direct dependencies free of known advisories — 2 affected: ws 8.20.1 (high 7.5), guzzlehttp/guzzle 7.12.1 (moderate 5.9)
0/25Indirect dependencies free of known advisories — transitive set not separable from development and test dependencies in this scope
40/40No advisories left outstanding — no advisory has been public longer than 90 days
Inputs used
sourceosv
advisories8
affected_packages4
assessed_packages359
unassessed_packages0
affected_by_severityhigh 2, moderate 2
direct_affected_packages2
Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 359 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight (4%): agent tooling is a real maintenance signal, but a repository with none can still reach 100/100.

59Moderate · 4% of overall
How it's scored
45/45Agent instructions — .cursor/rules/coolify-ai-docs.mdc, AGENTS.md, CLAUDE.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 85 of 99 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.859
agent_instruction_files.cursor/rules/coolify-ai-docs.mdc, AGENTS.md, CLAUDE.md
agent_instruction_max_bytes18,856
How it's scored
0/18One-command bootstrap
22/22Automated tests
0/11Lint / format config
0/11Static type checking
10/10Reproducible environment — Dockerfile, lockfile
0/10Demonstrated agent practice — no agent-authored commits among the last 100
8/8Automated maintenance — 1 of the last 100 commits are automated dependency updates
1/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
Inputs used
has_nixno
has_testsyes
lockfilescomposer.lock, package-lock.json
has_dockerfileyes
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0.01
How it's scored
0/45Type-checkable code — PHP without a type-check config
54.2/55Manageable file sizes — 32/2,122 source files over 60KB
Inputs used
primary_languagePHP
largest_source_bytes5,749,518
source_files_sampled2,122
oversized_source_files32
How it's scored
40/40API schema (OpenAPI/GraphQL/proto) — openapi.json, openapi.yaml
20/20MCP server
0/40Runnable examples
Inputs used
example_dirs
has_mcp_signalyes
api_schema_filesopenapi.json, openapi.yaml

Key facts

60,033GitHub stars
98contributors
4,299commits, last 12 months
0days since last push
100releases
1bus factor
629open issues
npm, Packagistpackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • First-time contributor figures cover 12 of 29 authors (cap 12)
  • Could not fetch packagist package 'coollabsio/coolify' from its registry

More detail

Star and fork history 0 ★ / 5,199 ⇿
0Stars
5,199Forks
4Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

Only the most recent history is shown — this repository exceeds the collection window, so the earliest history is not captured.

4,0004,4004,8005,2005,199412026-052026-062026-08
Major 0Minor 2Patch 2
OpenSSF Scorecard 4.8 / 10
4.8aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-08-03 14:54 UTC

10Binary-Artifactsno binaries found in the repo
3Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests10 out of 10 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/10 approved changesets -- score normalized to 0
10Contributorsproject has 37 contributing companies or organizations
n/aDangerous-Workflowno workflows found
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
n/aPackagingpackaging workflow not detected
1Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 1
0SASTSAST tool is not run on all commits -- score normalized to 0
4Security-Policysecurity policy file detected
n/aSigned-Releasesno releases found
n/aToken-PermissionsNo tokens found
2Vulnerabilities8 existing vulnerabilities detected
Direct dependencies 56
RegistryPackageVersion constraintManifest
Packagistdanharrin/livewire-rate-limiting^2.1.0composer.json
Packagistdoctrine/dbal^4.4.1composer.json
Packagistguzzlehttp/guzzle^7.10.0composer.json
Packagistlaravel/fortify^1.34.0composer.json
Packagistlaravel/framework^12.49.0composer.json
Packagistlaravel/horizon^5.43.0composer.json
Packagistlaravel/mcp^0.6.7composer.json
Packagistlaravel/nightwatch^1.24composer.json
Packagistlaravel/pail^1.2.4composer.json
Packagistlaravel/prompts^0.3.11|^0.3.11|^0.3.11composer.json
Packagistlaravel/sanctum^4.3.0composer.json
Packagistlaravel/socialite^5.24.2composer.json
Packagistlaravel/tinker^2.11.0composer.json
Packagistlaravel/ui^4.6.1composer.json
Packagistlcobucci/jwt^5.6.0composer.json
Packagistleague/flysystem-aws-s3-v3^3.31.0composer.json
Packagistleague/flysystem-sftp-v3^3.31composer.json
Packagistlivewire/livewire^3.7.8composer.json
Packagistlog1x/laravel-webfonts^2.0.1composer.json
Packagistlorisleiva/laravel-actions^2.9.1composer.json
Packagistnubs/random-name-generator^2.2composer.json
Packagistpion/laravel-chunk-upload^1.5.6composer.json
Packagistpoliander/cron^3.3.0composer.json
Packagistpurplepixie/phpdns^2.3.6composer.json
Packagistpusher/pusher-php-server^7.2.7composer.json
Packagistresend/resend-laravel^0.20.0composer.json
Packagistsentry/sentry-laravel^4.20.1composer.json
Packagistsocialiteproviders/authentik^5.2composer.json
Packagistsocialiteproviders/clerk^5.1composer.json
Packagistsocialiteproviders/discord^4.2composer.json
Packagistsocialiteproviders/google^4.1composer.json
Packagistsocialiteproviders/infomaniak^4.0composer.json
Packagistsocialiteproviders/microsoft-azure^5.2composer.json
Packagistsocialiteproviders/zitadel^4.2composer.json
Packagistspatie/laravel-activitylog^4.11.0composer.json
Packagistspatie/laravel-data^4.19.1composer.json
Packagistspatie/laravel-markdown^2.7.1composer.json
Packagistspatie/laravel-schemaless-attributes^2.5.1composer.json
Packagistspatie/url^2.4composer.json
Packagiststevebauman/purify^6.3.1composer.json
Packagiststripe/stripe-php^16.6.0composer.json
Packagistsymfony/yaml^7.4.1composer.json
Packagistvisus/cuid2^6.0.0composer.json
Packagistyosymfony/toml^1.0.4composer.json
Packagistzircote/swagger-php^5.8.0composer.json
npm@tailwindcss/forms0.5.10package.json
npm@tailwindcss/typography0.5.16package.json
npm@xterm/addon-fit0.10.0package.json
npm@xterm/xterm5.5.0package.json
npmplaywright^1.58.2package.json
npm@xterm/addon-fit0.11.0docker/coolify-realtime/package.json
npm@xterm/xterm6.0.0docker/coolify-realtime/package.json
npmcookie1.1.1docker/coolify-realtime/package.json
npmdotenv17.3.1docker/coolify-realtime/package.json
npmnode-pty1.1.0docker/coolify-realtime/package.json
npmws8.20.1docker/coolify-realtime/package.json
All dependencies 359

Full resolved dependency set from the GitHub dependency graph: 56 direct and 303 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

RegistryPackageVersionRelation
npm@tailwindcss/forms0.5.10direct
npm@tailwindcss/typography0.5.16direct
npm@xterm/addon-fit0.10.0direct
npm@xterm/addon-fit0.11.0direct
npm@xterm/xterm5.5.0direct
npm@xterm/xterm6.0.0direct
npmcookie1.1.1direct
npmdotenv17.3.1direct
npmnode-pty1.1.0direct
npmplaywright1.58.2direct
npmws8.20.1direct
Packagistdanharrin/livewire-rate-limiting2.2.0direct
Packagistdoctrine/dbal4.4.3direct
Packagistguzzlehttp/guzzle7.12.1direct
Packagistlaravel/fortify1.37.2direct
Packagistlaravel/framework12.61.1direct
Packagistlaravel/horizon5.47.0direct
Packagistlaravel/mcp0.6.7direct
Packagistlaravel/nightwatch1.27.0direct
Packagistlaravel/pail1.2.6direct
Packagistlaravel/prompts0.3.18direct
Packagistlaravel/sanctum4.3.2direct
Packagistlaravel/socialite5.27.0direct
Packagistlaravel/tinker2.11.1direct
Packagistlaravel/ui4.6.3direct
Packagistlcobucci/jwt5.6.0direct
Packagistleague/flysystem-aws-s3-v33.34.0direct
Packagistleague/flysystem-sftp-v33.33.0direct
Packagistlivewire/livewire3.8.0direct
Packagistlog1x/laravel-webfonts2.0.1direct
Packagistlorisleiva/laravel-actions2.10.1direct
Packagistnubs/random-name-generator2.2.0direct
Packagistpion/laravel-chunk-upload1.5.6direct
Packagistpoliander/cron3.3.1direct
Packagistpurplepixie/phpdns2.3.6direct
Packagistpusher/pusher-php-server7.2.8direct
Packagistresend/resend-laravel0.20.0direct
Packagistsentry/sentry-laravel4.25.1direct
Packagistsocialiteproviders/authentik5.3.0direct
Packagistsocialiteproviders/clerk5.1.0direct
Packagistsocialiteproviders/discord4.2.0direct
Packagistsocialiteproviders/google4.1.0direct
Packagistsocialiteproviders/infomaniak4.0.0direct
Packagistsocialiteproviders/microsoft-azure5.2.0direct
Packagistsocialiteproviders/zitadel4.2.0direct
Packagistspatie/laravel-activitylog4.12.3direct
Packagistspatie/laravel-data4.23.0direct
Packagistspatie/laravel-markdown2.8.0direct
Packagistspatie/laravel-schemaless-attributes2.6.0direct
Packagistspatie/url2.4.0direct
Packagiststevebauman/purify6.3.2direct
Packagiststripe/stripe-php16.6.0direct
Packagistsymfony/yaml7.4.12direct
Packagistvisus/cuid26.0.0direct
Packagistyosymfony/toml1.0.4direct
Packagistzircote/swagger-php5.8.3direct
npm@alloc/quick-lru5.2.0indirect
npm@emnapi/core1.10.0indirect
npm@emnapi/core1.7.1indirect
npm@emnapi/runtime1.10.0indirect
npm@emnapi/runtime1.7.1indirect
npm@emnapi/wasi-threads1.1.0indirect
npm@emnapi/wasi-threads1.2.1indirect
npm@jridgewell/gen-mapping0.3.13indirect
npm@jridgewell/remapping2.3.5indirect
npm@jridgewell/resolve-uri3.1.2indirect
npm@jridgewell/sourcemap-codec1.5.5indirect
npm@jridgewell/trace-mapping0.3.31indirect
npm@napi-rs/wasm-runtime1.1.0indirect
npm@napi-rs/wasm-runtime1.1.5indirect
npm@oxc-project/types0.133.0indirect
npm@rolldown/binding-android-arm641.0.3indirect
npm@rolldown/binding-darwin-arm641.0.3indirect
npm@rolldown/binding-darwin-x641.0.3indirect
npm@rolldown/binding-freebsd-x641.0.3indirect
npm@rolldown/binding-linux-arm-gnueabihf1.0.3indirect
npm@rolldown/binding-linux-arm64-gnu1.0.3indirect
npm@rolldown/binding-linux-arm64-musl1.0.3indirect
npm@rolldown/binding-linux-ppc64-gnu1.0.3indirect
npm@rolldown/binding-linux-s390x-gnu1.0.3indirect
npm@rolldown/binding-linux-x64-gnu1.0.3indirect
npm@rolldown/binding-linux-x64-musl1.0.3indirect
npm@rolldown/binding-openharmony-arm641.0.3indirect
npm@rolldown/binding-wasm32-wasi1.0.3indirect
npm@rolldown/binding-win32-arm64-msvc1.0.3indirect
npm@rolldown/binding-win32-x64-msvc1.0.3indirect
npm@rolldown/pluginutils1.0.1indirect
npm@tailwindcss/node4.1.18indirect
npm@tailwindcss/oxide4.1.18indirect
npm@tailwindcss/oxide-android-arm644.1.18indirect
npm@tailwindcss/oxide-darwin-arm644.1.18indirect
npm@tailwindcss/oxide-darwin-x644.1.18indirect
npm@tailwindcss/oxide-freebsd-x644.1.18indirect
npm@tailwindcss/oxide-linux-arm-gnueabihf4.1.18indirect
npm@tailwindcss/oxide-linux-arm64-gnu4.1.18indirect
npm@tailwindcss/oxide-linux-arm64-musl4.1.18indirect
npm@tailwindcss/oxide-linux-x64-gnu4.1.18indirect
npm@tailwindcss/oxide-linux-x64-musl4.1.18indirect
npm@tailwindcss/oxide-wasm32-wasi4.1.18indirect
npm@tailwindcss/oxide-win32-arm64-msvc4.1.18indirect
npm@tailwindcss/oxide-win32-x64-msvc4.1.18indirect
npm@tailwindcss/postcss4.1.18indirect
npm@tybys/wasm-util0.10.1indirect
npm@tybys/wasm-util0.10.2indirect
npm@types/prismjs1.26.5indirect
npmclsx2.1.1indirect
npmcssesc3.0.0indirect
npmdetect-libc2.1.2indirect
npmenhanced-resolve5.19.0indirect
npmfdir6.5.0indirect
npmfsevents2.3.2indirect
npmfsevents2.3.3indirect
npmgraceful-fs4.2.11indirect
npmjiti2.6.1indirect
npmlaravel-vite-plugin3.1.0indirect
npmlightningcss1.30.2indirect
npmlightningcss1.32.0indirect
npmlightningcss-android-arm641.30.2indirect
npmlightningcss-android-arm641.32.0indirect
npmlightningcss-darwin-arm641.30.2indirect
npmlightningcss-darwin-arm641.32.0indirect
npmlightningcss-darwin-x641.30.2indirect
npmlightningcss-darwin-x641.32.0indirect
npmlightningcss-freebsd-x641.30.2indirect
npmlightningcss-freebsd-x641.32.0indirect
npmlightningcss-linux-arm-gnueabihf1.30.2indirect
npmlightningcss-linux-arm-gnueabihf1.32.0indirect
npmlightningcss-linux-arm64-gnu1.30.2indirect
npmlightningcss-linux-arm64-gnu1.32.0indirect
npmlightningcss-linux-arm64-musl1.30.2indirect
npmlightningcss-linux-arm64-musl1.32.0indirect
npmlightningcss-linux-x64-gnu1.30.2indirect
npmlightningcss-linux-x64-gnu1.32.0indirect
npmlightningcss-linux-x64-musl1.30.2indirect
npmlightningcss-linux-x64-musl1.32.0indirect
npmlightningcss-win32-arm64-msvc1.30.2indirect
npmlightningcss-win32-arm64-msvc1.32.0indirect
npmlightningcss-win32-x64-msvc1.30.2indirect
npmlightningcss-win32-x64-msvc1.32.0indirect
npmlodash.castarray4.4.0indirect
npmlodash.isplainobject4.0.6indirect
npmlodash.merge4.6.2indirect
npmmagic-string0.30.21indirect
npmmini-svg-data-uri1.4.4indirect
npmnanoid3.3.12indirect
npmnode-addon-api7.1.1indirect
npmpicocolors1.1.1indirect
npmpicomatch2.3.2indirect
npmpicomatch4.0.4indirect
npmplaywright-core1.58.2indirect
npmpostcss8.5.15indirect
npmpostcss-selector-parser6.0.10indirect
npmprism-react-renderer2.4.1indirect
npmreact19.2.4indirect
npmrolldown1.0.3indirect
npmsource-map-js1.2.1indirect
npmtailwind-scrollbar4.0.2indirect
npmtailwindcss4.1.18indirect
npmtapable2.3.0indirect
npmtinyglobby0.2.17indirect
npmtslib2.8.1indirect
npmutil-deprecate1.0.2indirect
npmvite8.0.16indirect
npmvite-plugin-full-reload1.2.0indirect
Packagistamphp/amp3.1.1indirect
Packagistamphp/byte-stream2.1.2indirect
Packagistamphp/cache2.0.1indirect
Packagistamphp/dns2.4.0indirect
Packagistamphp/hpack3.2.2indirect
Packagistamphp/http2.1.2indirect
Packagistamphp/http-client5.3.6indirect
Packagistamphp/http-server3.4.5indirect
Packagistamphp/parser1.1.1indirect
Packagistamphp/pipeline1.2.4indirect
Packagistamphp/process2.0.3indirect
Packagistamphp/serialization1.1.0indirect
Packagistamphp/socket2.4.0indirect
Packagistamphp/sync2.3.0indirect
Packagistamphp/websocket2.0.4indirect
Packagistamphp/websocket-client2.0.2indirect
Packagistaws/aws-crt-php1.2.7indirect
Packagistaws/aws-sdk-php3.381.5indirect
Packagistbacon/bacon-qr-code3.1.1indirect
Packagistbarryvdh/laravel-debugbar3.16.5indirect
Packagistbrianium/paratest7.20.0indirect
Packagistbrick/math0.14.8indirect
Packagistcarbonphp/carbon-doctrine-types3.2.0indirect
Packagistcomposer/pcre3.3.2indirect
Packagistcomposer/xdebug-handler3.0.5indirect
Packagistdasprid/enum1.0.7indirect
Packagistdaverandom/libdns2.1.0indirect
Packagistdflydev/dot-access-data3.0.3indirect
Packagistdoctrine/deprecations1.1.6indirect
Packagistdoctrine/inflector2.1.0indirect
Packagistdoctrine/lexer3.0.1indirect
Packagistdragonmantank/cron-expression3.6.0indirect
Packagistdriftingly/rector-laravel2.3.0indirect
Packagistegulias/email-validator4.0.4indirect
Packagistezyang/htmlpurifier4.19.0indirect
Packagistfakerphp/faker1.24.1indirect
Packagistfidry/cpu-core-counter1.3.0indirect
Packagistfilp/whoops2.18.4indirect
Packagistfirebase/php-jwt7.0.5indirect
Packagistfruitcake/php-cors1.4.0indirect
Packagistgraham-campbell/result-type1.1.4indirect
Packagistguzzlehttp/promises2.5.0indirect
Packagistguzzlehttp/psr72.12.1indirect
Packagistguzzlehttp/uri-template1.0.7indirect
Packagisthamcrest/hamcrest-php2.1.1indirect
Packagistjean85/pretty-package-versions2.1.1indirect
Packagistkelunik/certificate1.1.3indirect
Packagistlaravel/boost2.4.8indirect
Packagistlaravel/dusk8.6.0indirect
Packagistlaravel/passkeys0.2.1indirect
Packagistlaravel/pint1.29.1indirect
Packagistlaravel/roster0.5.1indirect
Packagistlaravel/sentinel1.1.0indirect
Packagistlaravel/serializable-closure2.0.13indirect
Packagistlaravel/telescope5.20.0indirect
Packagistleague/commonmark2.8.2indirect
Packagistleague/config1.2.0indirect
Packagistleague/flysystem3.34.0indirect
Packagistleague/flysystem-local3.31.0indirect
Packagistleague/mime-type-detection1.16.0indirect
Packagistleague/oauth1-client1.11.0indirect
Packagistleague/uri7.8.1indirect
Packagistleague/uri-components7.8.1indirect
Packagistleague/uri-interfaces7.8.1indirect
Packagistlorisleiva/lody0.7.0indirect
Packagistmockery/mockery1.6.12indirect
Packagistmonolog/monolog3.10.0indirect
Packagistmtdowling/jmespath.php2.8.0indirect
Packagistmyclabs/deep-copy1.13.4indirect
Packagistnesbot/carbon3.13.0indirect
Packagistnette/schema1.3.5indirect
Packagistnette/utils4.1.4indirect
Packagistnikic/php-parser5.7.0indirect
Packagistnunomaduro/collision8.9.4indirect
Packagistnunomaduro/termwind2.4.0indirect
Packagistnyholm/psr71.8.2indirect
Packagistparagonie/constant_time_encoding3.1.3indirect
Packagistparagonie/random_compat9.99.100indirect
Packagistpestphp/pest4.7.0indirect
Packagistpestphp/pest-plugin4.0.0indirect
Packagistpestphp/pest-plugin-arch4.0.2indirect
Packagistpestphp/pest-plugin-browser4.3.1indirect
Packagistpestphp/pest-plugin-mutate4.0.1indirect
Packagistpestphp/pest-plugin-profanity4.2.1indirect
Packagistphar-io/manifest2.0.4indirect
Packagistphar-io/version3.2.1indirect
Packagistphp-debugbar/php-debugbar2.2.6indirect
Packagistphp-webdriver/webdriver1.16.0indirect
Packagistphpdocumentor/reflection-common2.2.0indirect
Packagistphpdocumentor/reflection-docblock6.0.3indirect
Packagistphpdocumentor/type-resolver2.0.0indirect
Packagistphpoption/phpoption1.9.5indirect
Packagistphpseclib/phpseclib3.0.54indirect
Packagistphpstan/phpdoc-parser2.3.3indirect
Packagistphpstan/phpstan2.1.55indirect
Packagistphpunit/php-code-coverage12.5.6indirect
Packagistphpunit/php-file-iterator6.0.1indirect
Packagistphpunit/php-invoker6.0.0indirect
Packagistphpunit/php-text-template5.0.0indirect
Packagistphpunit/php-timer8.0.0indirect
Packagistphpunit/phpunit12.5.24indirect
Packagistpragmarx/google2fa9.0.0indirect
Packagistpsr/cache3.0.0indirect
Packagistpsr/clock1.0.0indirect
Packagistpsr/container2.0.2indirect
Packagistpsr/event-dispatcher1.0.0indirect
Packagistpsr/http-client1.0.3indirect
Packagistpsr/http-factory1.1.0indirect
Packagistpsr/http-message2.0indirect
Packagistpsr/log3.0.2indirect
Packagistpsr/simple-cache3.0.0indirect
Packagistpsy/psysh0.12.22indirect
Packagistralouphie/getallheaders3.0.3indirect
Packagistramsey/collection2.1.1indirect
Packagistramsey/uuid4.9.3indirect
Packagistrector/rector2.4.4indirect
Packagistresend/resend-php0.18.1indirect
Packagistrevolt/event-loop1.0.9indirect
Packagistsebastian/cli-parser4.2.1indirect
Packagistsebastian/comparator7.1.8indirect
Packagistsebastian/complexity5.0.0indirect
Packagistsebastian/diff7.0.0indirect
Packagistsebastian/environment8.1.0indirect
Packagistsebastian/exporter7.0.3indirect
Packagistsebastian/global-state8.0.2indirect
Packagistsebastian/lines-of-code4.0.1indirect
Packagistsebastian/object-enumerator7.0.0indirect
Packagistsebastian/object-reflector5.0.0indirect
Packagistsebastian/recursion-context7.0.1indirect
Packagistsebastian/type6.0.4indirect
Packagistsebastian/version6.0.0indirect
Packagistsentry/sentry4.27.0indirect
Packagistserversideup/spin3.2.3indirect
Packagistsocialiteproviders/manager4.9.2indirect
Packagistspatie/backtrace1.8.2indirect
Packagistspatie/commonmark-shiki-highlighter2.5.2indirect
Packagistspatie/error-solutions1.1.3indirect
Packagistspatie/flare-client-php1.11.1indirect
Packagistspatie/ignition1.16.0indirect
Packagistspatie/laravel-ignition2.12.0indirect
Packagistspatie/laravel-package-tools1.93.1indirect
Packagistspatie/macroable2.1.0indirect
Packagistspatie/php-structure-discoverer2.4.2indirect
Packagistspatie/shiki-php2.4.0indirect
Packagistspomky-labs/cbor-php3.2.3indirect
Packagistspomky-labs/pki-framework1.4.2indirect
Packagiststaabm/side-effects-detector1.0.5indirect
Packagistsymfony/clock8.0.8indirect
Packagistsymfony/console7.4.13indirect
Packagistsymfony/css-selector8.0.9indirect
Packagistsymfony/deprecation-contracts3.7.1indirect
Packagistsymfony/error-handler7.4.8indirect
Packagistsymfony/event-dispatcher8.0.9indirect
Packagistsymfony/event-dispatcher-contracts3.7.0indirect
Packagistsymfony/filesystem8.0.11indirect
Packagistsymfony/finder7.4.8indirect
Packagistsymfony/http-client7.4.9indirect
Packagistsymfony/http-client-contracts3.7.0indirect
Packagistsymfony/http-foundation7.4.13indirect
Packagistsymfony/http-kernel7.4.13indirect
Packagistsymfony/mailer7.4.12indirect
Packagistsymfony/mime7.4.13indirect
Packagistsymfony/options-resolver8.0.8indirect
Packagistsymfony/polyfill-ctype1.37.0indirect
Packagistsymfony/polyfill-intl-grapheme1.38.1indirect
Packagistsymfony/polyfill-intl-idn1.38.1indirect
Packagistsymfony/polyfill-intl-normalizer1.38.0indirect
Packagistsymfony/polyfill-mbstring1.38.2indirect
Packagistsymfony/polyfill-php801.37.0indirect
Packagistsymfony/polyfill-php831.38.2indirect
Packagistsymfony/polyfill-php841.38.1indirect
Packagistsymfony/polyfill-php851.38.1indirect
Packagistsymfony/polyfill-uuid1.37.0indirect
Packagistsymfony/process7.4.13indirect
Packagistsymfony/property-access8.0.8indirect
Packagistsymfony/property-info8.0.8indirect
Packagistsymfony/psr-http-message-bridge8.0.8indirect
Packagistsymfony/routing7.4.13indirect
Packagistsymfony/serializer8.0.14indirect
Packagistsymfony/service-contracts3.7.0indirect
Packagistsymfony/string8.0.13indirect
Packagistsymfony/translation8.0.10indirect
Packagistsymfony/translation-contracts3.7.0indirect
Packagistsymfony/type-info8.0.9indirect
Packagistsymfony/uid7.4.9indirect
Packagistsymfony/var-dumper7.4.8indirect
Packagistta-tikoma/phpunit-architecture-test0.8.7indirect
Packagisttheseer/tokenizer2.0.1indirect
Packagisttijsverkoyen/css-to-inline-styles2.4.0indirect
Packagistvlucas/phpdotenv5.6.3indirect
Packagistvoku/portable-ascii2.1.1indirect
Packagistweb-auth/cose-lib4.5.2indirect
Packagistweb-auth/webauthn-lib5.3.5indirect
Packagistwebmozart/assert2.4.1indirect
Packagistyosymfony/parser-utils2.0.0indirect
Dependency advisories 4

This repository publishes no package the index resolves, so its own dependency graph was assessed — 359 packages, which also include development and test pins that never ship: 4 carry known advisories, of which 2 are direct.

PackageVersionRelationSeverityAdvisoriesFixed in
ws8.20.1directhigh18.21.0
postcss8.5.15indirecthigh18.5.18
guzzlehttp/guzzle7.12.1directmoderate57.15.1
guzzlehttp/psr72.12.1indirectmoderate12.12.3

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "nodejs",
        "mysql",
        "php",
        "docker",
        "self-hosting",
        "redis",
        "svelte",
        "databases",
        "nextjs",
        "coolify",
        "deployment",
        "docker-compose",
        "inertiajs",
        "laravel",
        "mariadb",
        "postgres",
        "self-hosted",
        "server",
        "static-site",
        "svelte5"
      ],
      "is_fork": false,
      "size_kb": 75851,
      "has_wiki": false,
      "homepage": "https://coolify.io",
      "languages": {
        "CSS": 22198,
        "PHP": 9109610,
        "Blade": 1943387,
        "Shell": 151374,
        "Dockerfile": 19781,
        "JavaScript": 71961
      },
      "pushed_at": "2026-08-03T14:44:39Z",
      "created_at": "2021-01-25T20:54:01Z",
      "owner_type": "Organization",
      "updated_at": "2026-08-03T14:23:01Z",
      "description": "An open-source, self-hostable PaaS alternative to Vercel, Heroku & Netlify that lets you easily deploy static sites, databases, full-stack applications and 280+ one-click services on your own servers.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "v4.x",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "PHP",
      "significant_languages": [
        "PHP",
        "Blade"
      ]
    },
    "owner": {
      "blog": "https://coollabs.io",
      "name": "coolLabs",
      "type": "Organization",
      "login": "coollabsio",
      "company": null,
      "location": null,
      "followers": 1838,
      "avatar_url": "https://avatars.githubusercontent.com/u/60715044?v=4",
      "created_at": "2020-02-05T20:36:54Z",
      "is_verified": null,
      "public_repos": 43,
      "account_age_days": 2370
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v4.2.0",
          "kind": "minor",
          "published_at": "2026-07-21T16:08:35Z"
        },
        {
          "tag": "v4.1.2",
          "kind": "patch",
          "published_at": "2026-06-04T07:54:18Z"
        },
        {
          "tag": "v4.1.1",
          "kind": "patch",
          "published_at": "2026-05-27T09:27:50Z"
        },
        {
          "tag": "v4.1.0",
          "kind": "minor",
          "published_at": "2026-05-18T09:00:04Z"
        },
        {
          "tag": "v4.0.0",
          "kind": "major",
          "published_at": "2026-04-27T08:55:25Z"
        },
        {
          "tag": "v4.0.0-beta.474",
          "kind": "prerelease",
          "published_at": "2026-04-21T10:31:25Z"
        },
        {
          "tag": "v4.0.0-beta.473",
          "kind": "prerelease",
          "published_at": "2026-04-13T09:33:58Z"
        },
        {
          "tag": "v4.0.0-beta.472",
          "kind": "prerelease",
          "published_at": "2026-04-09T10:19:18Z"
        },
        {
          "tag": "v4.0.0-beta.471",
          "kind": "prerelease",
          "published_at": "2026-04-09T07:16:21Z"
        },
        {
          "tag": "v4.0.0-beta.470",
          "kind": "prerelease",
          "published_at": "2026-03-24T21:00:59Z"
        },
        {
          "tag": "v4.0.0-beta.469",
          "kind": "prerelease",
          "published_at": "2026-03-20T15:39:04Z"
        },
        {
          "tag": "v4.0.0-beta.468",
          "kind": "prerelease",
          "published_at": "2026-03-12T13:28:09Z"
        },
        {
          "tag": "v4.0.0-beta.467",
          "kind": "prerelease",
          "published_at": "2026-03-11T17:23:16Z"
        },
        {
          "tag": "v4.0.0-beta.466",
          "kind": "prerelease",
          "published_at": "2026-03-11T06:34:38Z"
        },
        {
          "tag": "v4.0.0-beta.465",
          "kind": "prerelease",
          "published_at": "2026-03-10T20:18:11Z"
        },
        {
          "tag": "v4.0.0-beta.464",
          "kind": "prerelease",
          "published_at": "2026-03-09T10:25:54Z"
        },
        {
          "tag": "v4.0.0-beta.463",
          "kind": "prerelease",
          "published_at": "2026-02-09T11:57:33Z"
        },
        {
          "tag": "v4.0.0-beta.462",
          "kind": "prerelease",
          "published_at": "2026-01-16T11:05:11Z"
        },
        {
          "tag": "v4.0.0-beta.461",
          "kind": "prerelease",
          "published_at": "2026-01-16T07:24:15Z"
        },
        {
          "tag": "v4.0.0-beta.460",
          "kind": "prerelease",
          "published_at": "2025-12-31T10:58:42Z"
        },
        {
          "tag": "v4.0.0-beta.459",
          "kind": "prerelease",
          "published_at": "2025-12-23T14:40:52Z"
        },
        {
          "tag": "v4.0.0-beta.458",
          "kind": "prerelease",
          "published_at": "2025-12-18T12:23:23Z"
        },
        {
          "tag": "v4.0.0-beta.457",
          "kind": "prerelease",
          "published_at": "2025-12-18T12:05:25Z"
        },
        {
          "tag": "v4.0.0-beta.456",
          "kind": "prerelease",
          "published_at": "2025-12-18T08:59:27Z"
        },
        {
          "tag": "v4.0.0-beta.455",
          "kind": "prerelease",
          "published_at": "2025-12-17T09:24:10Z"
        },
        {
          "tag": "v4.0.0-beta.454",
          "kind": "prerelease",
          "published_at": "2025-12-11T20:37:05Z"
        },
        {
          "tag": "v4.0.0-beta.453",
          "kind": "prerelease",
          "published_at": "2025-12-08T20:23:48Z"
        },
        {
          "tag": "v4.0.0-beta.452",
          "kind": "prerelease",
          "published_at": "2025-11-28T19:53:19Z"
        },
        {
          "tag": "v4.0.0-beta.451",
          "kind": "prerelease",
          "published_at": "2025-11-27T14:09:46Z"
        },
        {
          "tag": "v4.0.0-beta.450",
          "kind": "prerelease",
          "published_at": "2025-11-26T13:06:51Z"
        },
        {
          "tag": "v4.0.0-beta.449",
          "kind": "prerelease",
          "published_at": "2025-11-26T09:05:43Z"
        },
        {
          "tag": "v4.0.0-beta.448",
          "kind": "prerelease",
          "published_at": "2025-11-25T16:08:31Z"
        },
        {
          "tag": "v4.0.0-beta.447",
          "kind": "prerelease",
          "published_at": "2025-11-25T15:44:40Z"
        },
        {
          "tag": "v4.0.0-beta.446",
          "kind": "prerelease",
          "published_at": "2025-11-24T14:18:49Z"
        },
        {
          "tag": "v4.0.0-beta.445",
          "kind": "prerelease",
          "published_at": "2025-11-24T12:51:35Z"
        },
        {
          "tag": "v4.0.0-beta.444",
          "kind": "prerelease",
          "published_at": "2025-11-14T08:35:16Z"
        },
        {
          "tag": "v4.0.0-beta.443",
          "kind": "prerelease",
          "published_at": "2025-11-13T14:37:31Z"
        },
        {
          "tag": "v4.0.0-beta.442",
          "kind": "prerelease",
          "published_at": "2025-11-07T08:16:55Z"
        },
        {
          "tag": "v4.0.0-beta.441",
          "kind": "prerelease",
          "published_at": "2025-11-05T08:12:09Z"
        },
        {
          "tag": "v4.0.0-beta.440",
          "kind": "prerelease",
          "published_at": "2025-11-04T09:03:49Z"
        },
        {
          "tag": "v4.0.0-beta.439",
          "kind": "prerelease",
          "published_at": "2025-11-03T10:09:01Z"
        },
        {
          "tag": "v4.0.0-beta.438",
          "kind": "prerelease",
          "published_at": "2025-10-29T09:40:12Z"
        },
        {
          "tag": "v4.0.0-beta.437",
          "kind": "prerelease",
          "published_at": "2025-10-21T07:12:25Z"
        },
        {
          "tag": "v4.0.0-beta.436",
          "kind": "prerelease",
          "published_at": "2025-10-17T13:48:41Z"
        },
        {
          "tag": "v4.0.0-beta.435",
          "kind": "prerelease",
          "published_at": "2025-10-16T08:10:16Z"
        },
        {
          "tag": "v4.0.0-beta.434",
          "kind": "prerelease",
          "published_at": "2025-10-03T07:42:54Z"
        },
        {
          "tag": "v4.0.0-beta.433",
          "kind": "prerelease",
          "published_at": "2025-10-01T18:37:28Z"
        },
        {
          "tag": "v4.0.0-beta.432",
          "kind": "prerelease",
          "published_at": "2025-09-29T10:52:01Z"
        },
        {
          "tag": "v4.0.0-beta.431",
          "kind": "prerelease",
          "published_at": "2025-09-24T18:55:40Z"
        },
        {
          "tag": "v4.0.0-beta.430",
          "kind": "prerelease",
          "published_at": "2025-09-24T16:20:49Z"
        },
        {
          "tag": "v4.0.0-beta.429",
          "kind": "prerelease",
          "published_at": "2025-09-23T16:20:49Z"
        },
        {
          "tag": "v4.0.0-beta.428",
          "kind": "prerelease",
          "published_at": "2025-09-15T16:52:47Z"
        },
        {
          "tag": "v4.0.0-beta.427",
          "kind": "prerelease",
          "published_at": "2025-09-15T10:48:47Z"
        },
        {
          "tag": "v4.0.0-beta.426",
          "kind": "prerelease",
          "published_at": "2025-08-28T18:17:22Z"
        },
        {
          "tag": "v4.0.0-beta.425",
          "kind": "prerelease",
          "published_at": "2025-08-28T09:33:10Z"
        },
        {
          "tag": "v4.0.0-beta.424",
          "kind": "prerelease",
          "published_at": "2025-08-27T19:37:14Z"
        },
        {
          "tag": "v4.0.0-beta.423",
          "kind": "prerelease",
          "published_at": "2025-08-27T16:39:15Z"
        },
        {
          "tag": "v4.0.0-beta.422",
          "kind": "prerelease",
          "published_at": "2025-08-27T15:17:01Z"
        },
        {
          "tag": "v4.0.0-beta.421",
          "kind": "prerelease",
          "published_at": "2025-08-26T19:47:05Z"
        },
        {
          "tag": "v4.0.0-beta.420.9",
          "kind": "prerelease",
          "published_at": "2025-08-26T16:24:37Z"
        },
        {
          "tag": "v4.0.0-beta.420.8",
          "kind": "prerelease",
          "published_at": "2025-08-26T14:45:01Z"
        },
        {
          "tag": "v4.0.0-beta.420.7",
          "kind": "prerelease",
          "published_at": "2025-08-26T13:32:59Z"
        },
        {
          "tag": "v4.0.0-beta.420.6",
          "kind": "prerelease",
          "published_at": "2025-07-18T18:45:44Z"
        },
        {
          "tag": "v4.0.0-beta.420.5",
          "kind": "prerelease",
          "published_at": "2025-07-08T19:14:04Z"
        },
        {
          "tag": "v4.0.0-beta.420.4",
          "kind": "prerelease",
          "published_at": "2025-07-08T08:58:14Z"
        },
        {
          "tag": "v4.0.0-beta.420.3",
          "kind": "prerelease",
          "published_at": "2025-07-03T19:31:13Z"
        },
        {
          "tag": "v4.0.0-beta.420.2",
          "kind": "prerelease",
          "published_at": "2025-07-03T13:55:03Z"
        },
        {
          "tag": "v4.0.0-beta.420.1",
          "kind": "prerelease",
          "published_at": "2025-06-26T20:27:21Z"
        },
        {
          "tag": "v4.0.0-beta.420",
          "kind": "prerelease",
          "published_at": "2025-06-26T10:23:45Z"
        },
        {
          "tag": "v4.0.0-beta.419",
          "kind": "prerelease",
          "published_at": "2025-06-17T12:39:00Z"
        },
        {
          "tag": "v4.0.0-beta.418",
          "kind": "prerelease",
          "published_at": "2025-05-09T06:30:49Z"
        },
        {
          "tag": "v4.0.0-beta.417",
          "kind": "prerelease",
          "published_at": "2025-05-07T21:14:23Z"
        },
        {
          "tag": "v4.0.0-beta.416",
          "kind": "prerelease",
          "published_at": "2025-05-05T07:04:47Z"
        },
        {
          "tag": "v4.0.0-beta.415",
          "kind": "prerelease",
          "published_at": "2025-04-29T08:54:51Z"
        },
        {
          "tag": "v4.0.0-beta.414",
          "kind": "prerelease",
          "published_at": "2025-04-28T18:48:31Z"
        },
        {
          "tag": "v4.0.0-beta.413",
          "kind": "prerelease",
          "published_at": "2025-04-28T08:46:03Z"
        },
        {
          "tag": "v4.0.0-beta.412",
          "kind": "prerelease",
          "published_at": "2025-04-23T12:18:58Z"
        },
        {
          "tag": "v4.0.0-beta.411",
          "kind": "prerelease",
          "published_at": "2025-04-23T11:49:15Z"
        },
        {
          "tag": "v4.0.0-beta.410",
          "kind": "prerelease",
          "published_at": "2025-04-18T08:40:13Z"
        },
        {
          "tag": "v4.0.0-beta.409",
          "kind": "prerelease",
          "published_at": "2025-04-16T08:09:16Z"
        },
        {
          "tag": "v4.0.0-beta.408",
          "kind": "prerelease",
          "published_at": "2025-04-14T12:32:42Z"
        },
        {
          "tag": "v4.0.0-beta.407",
          "kind": "prerelease",
          "published_at": "2025-04-09T07:21:51Z"
        },
        {
          "tag": "v4.0.0-beta.406",
          "kind": "prerelease",
          "published_at": "2025-04-05T13:09:41Z"
        },
        {
          "tag": "v4.0.0-beta.405",
          "kind": "prerelease",
          "published_at": "2025-04-04T05:44:01Z"
        },
        {
          "tag": "v4.0.0-beta.404",
          "kind": "prerelease",
          "published_at": "2025-04-03T07:43:32Z"
        },
        {
          "tag": "v4.0.0-beta.402",
          "kind": "prerelease",
          "published_at": "2025-04-01T09:07:42Z"
        },
        {
          "tag": "v4.0.0-beta.401",
          "kind": "prerelease",
          "published_at": "2025-03-28T21:19:15Z"
        },
        {
          "tag": "v4.0.0-beta.400",
          "kind": "prerelease",
          "published_at": "2025-03-27T09:37:57Z"
        },
        {
          "tag": "v4.0.0-beta.399",
          "kind": "prerelease",
          "published_at": "2025-03-25T10:58:25Z"
        },
        {
          "tag": "v4.0.0-beta.398",
          "kind": "prerelease",
          "published_at": "2025-03-01T11:49:31Z"
        },
        {
          "tag": "v4.0.0-beta.397",
          "kind": "prerelease",
          "published_at": "2025-02-28T19:30:48Z"
        },
        {
          "tag": "v4.0.0-beta.396",
          "kind": "prerelease",
          "published_at": "2025-02-28T12:41:46Z"
        },
        {
          "tag": "v4.0.0-beta.395",
          "kind": "prerelease",
          "published_at": "2025-02-22T12:12:36Z"
        },
        {
          "tag": "v4.0.0-beta.394",
          "kind": "prerelease",
          "published_at": "2025-02-17T09:17:09Z"
        },
        {
          "tag": "v4.0.0-beta.393",
          "kind": "prerelease",
          "published_at": "2025-02-15T12:25:41Z"
        },
        {
          "tag": "v4.0.0-beta.392",
          "kind": "prerelease",
          "published_at": "2025-02-13T12:33:44Z"
        },
        {
          "tag": "v4.0.0-beta.391",
          "kind": "prerelease",
          "published_at": "2025-02-04T14:26:52Z"
        },
        {
          "tag": "v4.0.0-beta.390",
          "kind": "prerelease",
          "published_at": "2025-01-28T12:48:47Z"
        },
        {
          "tag": "v4.0.0-beta.389",
          "kind": "prerelease",
          "published_at": "2025-01-23T14:23:33Z"
        },
        {
          "tag": "v4.0.0-beta.388",
          "kind": "prerelease",
          "published_at": "2025-01-22T16:23:43Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "940571e16f5a0e6c73cf56b4bb1184bed3d60623",
          "body": null,
          "is_bot": false,
          "headline": "feat(services): shared Redis cache for service templates (#11094)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-30T20:27:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a460a399d7b05e9e28bbe47451ec721730ab05a7",
          "body": null,
          "is_bot": false,
          "headline": "chore: prepare for PR",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-30T19:15:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5711930189cb26cc94e09f8bf6936ead2fc5eb27",
          "body": null,
          "is_bot": false,
          "headline": "fix(domains): allow clearing resource domains without TypeError (#11083)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-29T14:49:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "37d0699aae5f246b44821a112c54b59df4661488",
          "body": null,
          "is_bot": false,
          "headline": "chore: prepare for PR",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-29T14:27:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2180a5e7effdf8a994eaeb871d0ac77fa0be8fea",
          "body": null,
          "is_bot": false,
          "headline": "fix(traefik): track v3.7 and security patch updates (#11029)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-24T07:02:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8df830e5e9cf7934e4fff761755c7ff692184c1",
          "body": "Track v3.7 and patch releases for supported Traefik branches.\nSet the stable Coolify v4 version to 4.1.2.",
          "is_bot": false,
          "headline": "fix(traefik): track v3.7 security updates",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-24T07:00:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da29fdcc69a4e3e536da0759207e9a75777be03d",
          "body": null,
          "is_bot": false,
          "headline": "ci(images): add edge tag for v4.x SHA builds (#11022)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-23T17:15:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1fc294b90864d3d45388e5fa59967abfd4a88fd3",
          "body": null,
          "is_bot": false,
          "headline": "refactor(ui): remove deploy confirmation modals (#11023)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-23T17:13:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee86c69f1583451166031994538d7181557a6e34",
          "body": "Also publish the moving edge tag on GHCR and Docker Hub when the SHA build runs on v4.x, so edge always points at the latest production-line multi-arch image.",
          "is_bot": false,
          "headline": "ci: tag v4.x SHA images as edge",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-23T17:11:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ec1762b083daf704034531107ea6b42bc900a0d8",
          "body": null,
          "is_bot": false,
          "headline": "chore: prepare for PR",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-23T17:10:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "004c3ab3bc7bad94f0bc6dfd620e22b60c81e169",
          "body": null,
          "is_bot": false,
          "headline": "internal stuffs (#10992)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-20T10:56:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "160278c7ebf370703317ce322bafdc994c1819b6",
          "body": null,
          "is_bot": false,
          "headline": "ci: support main branch build and changelog workflows",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-20T10:54:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94a95cdf542c2229385abe87625fd502d5dfdb04",
          "body": null,
          "is_bot": false,
          "headline": "docs(release): clarify branch strategy and SHA build flow",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-20T10:39:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b284973e1a60a7b8f8f4b123f0941a282edf585",
          "body": null,
          "is_bot": false,
          "headline": "feat(backups): add scheduled storage volume backups (#10946)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-20T10:04:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf72fd5d8823c788d5f1f8eb18898f9839ed6546",
          "body": null,
          "is_bot": false,
          "headline": "refactor(backups): centralize storage deletion guard",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T21:20:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e03be755dac2bcae78de22ae5736542fb4aad3f",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into volume-backups-server-s3",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T21:16:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72a0a57f0e9fc7e152ab3051a7aec71d7d200660",
          "body": "- Gate volume backup retention and S3 controls by update permission\n- Preserve backup records when S3 deletion fails\n- Share SFTP download streaming with consistent missing-file handling\n- Handle schedule creation errors and link service database backups",
          "is_bot": false,
          "headline": "fix(backups): enforce authorization and safe retention",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T21:15:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24bc4b04621822f7913cea7cd9f44259dbb39024",
          "body": null,
          "is_bot": false,
          "headline": "docs(release): document SHA image promotion workflow",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T21:13:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99a8a96e7f2c92cd033829543a4f9df6500bdd81",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into volume-backups-server-s3",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T21:02:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b53ae426b881a1b895c4946253f8dd201a7f1747",
          "body": null,
          "is_bot": false,
          "headline": "ci(release): promote SHA-tagged images on release (#10988)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T21:01:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7716e65eeafde98f763920268fe7e67e035a0e42",
          "body": "Publish branch builds under immutable commit SHA tags, then promote the\nreleased image to its version tag and stable releases to latest.",
          "is_bot": false,
          "headline": "ci(release): promote SHA-tagged images on release",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T21:00:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "994eee83777c1ac7399c187e605d52ad7c99ed6a",
          "body": null,
          "is_bot": false,
          "headline": "fix(backups): retain volume backups without server",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T20:35:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b97a97e9553adf8225f511cf02bfc72f24a805f5",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into volume-backups-server-s3",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T19:45:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f715fb69bb498ba03463f95c3515d668b05267bb",
          "body": null,
          "is_bot": false,
          "headline": "v4.2 (#10872)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T19:21:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a92ca6e3b8e0791c3703fb3211a92f89cfb6216d",
          "body": null,
          "is_bot": false,
          "headline": "version ++",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T19:18:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0633b543ee124a63bdc0f7751cefc3f6fe227559",
          "body": "Make start/stop/restart, deploy, enable/disable, and server validate\nPOST-only, with GET returning 405. Server validate accepts optional\ninstall and uses ValidateAndInstallServerJob. Update OpenAPI and tests.",
          "is_bot": false,
          "headline": "feat(api): require POST for state-changing endpoints",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-19T09:42:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2c2180f4fe6387b7745f60d543fa98249e8307e",
          "body": "Keep the dev container as root for s6 init so composer can create\nvendor/ on root-owned mounts, then chown writable paths to www-data.\nMove init-setup into a shell script and expose VITE_HOST/PORT for\nremote HMR (LAN/Tailscale) with Vite listening on 0.0.0.0.",
          "is_bot": false,
          "headline": "fix(dev): support root bind mounts and LAN Vite access",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-18T18:56:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "662633399f125e16c4adf64a23253b06be3b8781",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into volume-backups-server-s3",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-18T14:07:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28f886756798135874d8261ae9ba82e2fe29fdb7",
          "body": "Expose DELETE for application, database, and service storage backup\nschedules (with OpenAPI docs), reject storage deletes while schedules\nexist, skip retention cleanup when no limits are set, and remove S3\narchives using the execution’s S3 storage.",
          "is_bot": false,
          "headline": "feat(api): add volume backup schedule delete endpoints",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-16T19:44:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "913d033c75b310db7784ccb51b6effd84f0f93a4",
          "body": null,
          "is_bot": false,
          "headline": "fix(resources): clarify build server hosting restrictions (#10961)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-16T19:35:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fab012b5c84786225dea6753427fff09e0a817f6",
          "body": "Skip empty-password rejection so delete works when two-step confirmation is disabled; cover with a feature test.",
          "is_bot": false,
          "headline": "fix(backups): allow volume backup delete without password when 2FA off",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-16T12:43:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac36a590881c89f3a0fe1453d1be1dbc7e0ae1ae",
          "body": "Store s3_storage_id on scheduled volume backup executions so retention\nand recovery use the S3 that received the upload. Extract\nDeleteScheduledVolumeBackup for UI and resource deletion, and isolate\ndatabase backup retention failures so cleanup errors do not fail the job.",
          "is_bot": false,
          "headline": "fix(backups): pin S3 per volume execution and harden deletes",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-16T12:30:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8cfa41a7d9cf7952cb2f6932c9058790ba51a2c2",
          "body": "Subscribe BackupEdit to database status broadcasts and refresh the\ndatabase status so the Backup Now control updates without a full reload.",
          "is_bot": false,
          "headline": "fix(backups): sync Backup Now with live database status",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-16T12:01:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ddbed9f8a655a62477b40ecf335a7d4f74120731",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into volume-backups-server-s3",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-16T11:47:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d699818e8f7395ab95471980bcbd889cf9dcf28",
          "body": "Wrap Vultr server creation in DB transactions and delete the remote\ninstance when local persistence fails (API and Livewire). Scope\nplus/dot email normalization to gmail.com/googlemail.com only.\nUse throw:false on DigitalOcean/Vultr HTTP retries, and normalize\nservice log line counts via normalizeLogLines.",
          "is_bot": false,
          "headline": "fix: harden Vultr create, Gmail identity, and provider retries",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-16T11:42:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2719d6604244208f4464542ad49df9470df92e9f",
          "body": "Enable scheduled ClickHouse backups across the job, API, and UI, and\nguard unsupported database types via isBackupSolutionAvailable().\nConvert Stripe subscription sync from a job to an action with clearer\ndiscrepancy resolution, and add cloud:export-users plus\ncloud:cleanup-unverified-users with tests.",
          "is_bot": false,
          "headline": "feat: add ClickHouse backups and cloud ops tools",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-16T09:57:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ae1b4eba2b91e9299200e0369aa34aee2e07a28",
          "body": null,
          "is_bot": false,
          "headline": "fix(backups): show setup prompt when no S3 storage is available",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T18:36:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91d97bfad2903c7977a2db09ab4818bd36696a72",
          "body": null,
          "is_bot": false,
          "headline": "fix(status): prevent health badge row height expansion",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T18:07:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e0f85de3fefeb100d268aa75c61fc2647a3157cf",
          "body": null,
          "is_bot": false,
          "headline": "fix(backups): move S3 retention settings to retention page",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T18:00:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aef70eb053647da2f4fd69c1e7d7475cb7d79f00",
          "body": null,
          "is_bot": false,
          "headline": "refactor(backups): consolidate volume backup retention columns",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T17:55:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d04bb7e594704c6ffcda7eb9fedb618df167611",
          "body": null,
          "is_bot": false,
          "headline": "fix(backups): rename storage backup page heading",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T16:17:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41eee14bd33d67e27e14f81b0d8c7bc78662c08c",
          "body": "Queue manual database and volume backups before redirecting to their execution views, including schedules with unusable S3 storage.",
          "is_bot": false,
          "headline": "fix(backups): redirect to executions after manual backup queueing",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T15:39:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d7385ad0c4bfa39e4e5155a6de20de73b17de0bc",
          "body": "Add polymorphic volume backup scheduling for persistent volumes and directories, expose schedule management via API, and reorganize backup configuration and execution views.",
          "is_bot": false,
          "headline": "feat(backups): support scheduled backups for application storage targets",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T15:34:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "995ec5fbb60bd477c33e7a0cb595580d130ec8b6",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into volume-backups-server-s3",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T14:33:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4eec1ac54741da73716c239a4a954b385b25f735",
          "body": "Track and recover stopped containers across interrupted backup executions.",
          "is_bot": false,
          "headline": "fix(backups): stop containers during volume backup creation",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T13:59:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63961e0799fa5730d6854d30bbfd150fc33e3e77",
          "body": null,
          "is_bot": false,
          "headline": "feat(backups): add scheduled persistent volume backups",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T13:47:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "908b5cc09d2edcf2fcce6d775961d6f14f092b9b",
          "body": "Add service database CRUD, logs, and lifecycle actions, and document service application operations with OpenAPI tests.",
          "is_bot": false,
          "headline": "feat(api): add service database management endpoints",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T10:29:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "64667574f6fdf3251df95e50370710a29a862c12",
          "body": null,
          "is_bot": false,
          "headline": "fix(api): correct service and application OpenAPI schemas",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-15T10:29:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05dc2c65f6134f6491d51d0fcd04cd5645260264",
          "body": null,
          "is_bot": false,
          "headline": "chore(deps): bump web-auth/webauthn-lib from 5.3.3 to 5.3.5 (#10901)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-14T12:18:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "198e9f8fff379cdfe9ef44d3f0589d501b2ef809",
          "body": null,
          "is_bot": false,
          "headline": "fix(environment-variable): align settings and actions responsively",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-14T12:02:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59605fe7d30d8a5e647495a7b7d90f3a9c93ac6f",
          "body": null,
          "is_bot": false,
          "headline": "fix(environment-variable): keep delete button compact",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-14T11:58:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "34e6a6dd5d5bb2068941117f7d39039b0e13bcaa",
          "body": null,
          "is_bot": false,
          "headline": "feat(api): add application settings to application endpoints",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-14T11:44:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99e255a572f8c1c3e6a99637bdff498da7d2cefa",
          "body": "Expand configuration snapshots, handle defaults from older snapshots, and refresh configuration state after Livewire setting changes.",
          "is_bot": false,
          "headline": "fix(deployment): detect application configuration changes consistently",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-14T10:54:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5381287606323fd8656f7c893f99f4d54dd1b5fc",
          "body": null,
          "is_bot": false,
          "headline": "Update configuration for compatibility with EspoCRM v10 (#10848)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-13T13:06:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "683a2ce2e9acc603faee05e964385a0f8b253c1a",
          "body": null,
          "is_bot": false,
          "headline": "feat(services): bump alexandrie to version 8.10.0 (#10864)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-13T13:06:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47a292486cc6a6c8cd0d55393cec3435ac1fb5fd",
          "body": null,
          "is_bot": false,
          "headline": "chore(deps): bump NGINX package to 1.31.2-r1",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-13T08:54:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8a332a3bc935064dcbb2f7703b1edeb2becfaae",
          "body": "Track provider state independently, skip SSH work for placeholder IPs, and clean up failed cloud server provisioning.",
          "is_bot": false,
          "headline": "fix(servers): isolate cloud status checks from SSH checks",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-11T20:52:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e01b8a057e6437cf2a2bafe61db67943acc7bb39",
          "body": "Persist DigitalOcean, Hetzner, and Vultr servers before public IP\nassignment, then backfill placeholder addresses from provider state.\n\nTreat partial Sentinel snapshots as non-authoritative and document the\ndestinations API with OpenAPI schemas.",
          "is_bot": false,
          "headline": "fix(servers): retain cloud instances awaiting IPs",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-11T19:35:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bd82b4c1cd977712f67c9efe2dd5457852872678",
          "body": "Bumps [web-auth/webauthn-lib](https://github.com/web-auth/webauthn-lib) from 5.3.3 to 5.3.5.\n- [Commits](https://github.com/web-auth/webauthn-lib/compare/5.3.3...5.3.5)\n\n---\nupdated-dependencies:\n- dependency-name: web-auth/webauthn-lib\n  dependency-version: 5.3.5\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump web-auth/webauthn-lib from 5.3.3 to 5.3.5",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-10T18:35:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3fbb32c527bf880244330c3ce655ad8a672e935",
          "body": "Replace the legacy sync:bunny flags with an interactive CDN sync flow for service templates and release metadata. Serve official service templates from the Coollabs CDN, update version metadata, and remove obsolete helper scripts.",
          "is_bot": false,
          "headline": "feat(cdn): sync release metadata through BunnyCDN",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-10T12:29:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4f925ebbfc52d75d9921d22781054576c7783ea",
          "body": null,
          "is_bot": false,
          "headline": "fix(meta): serve releases metadata from Coollabs CDN",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-10T08:49:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd10a90d8c82d2eee20a772bea28df7d60310ed4",
          "body": null,
          "is_bot": false,
          "headline": "fix(meta): update social preview image URL",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-10T08:48:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bcadcc920083e5383869ce9bc3ca78ec927e3dcd",
          "body": null,
          "is_bot": false,
          "headline": "docs(readme): serve sponsor images from Coollabs CDN",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-10T08:47:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a0183bfad2ab7252144e5d73eb8cf7b598a0625",
          "body": "This reverts commit 8c1405e1689c7f26e27f062bb35025f76df02b05.",
          "is_bot": false,
          "headline": "Revert \"feat(notifications): deduplicate repeated email alerts\"",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-09T11:19:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c1405e1689c7f26e27f062bb35025f76df02b05",
          "body": "Add notification-level deduplication keys and TTLs for deployment, backup,\nserver, container, scheduled task, SSL, token, and transactional emails.\nApply deduplication in email channels before sending rendered messages.",
          "is_bot": false,
          "headline": "feat(notifications): deduplicate repeated email alerts",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T13:23:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee620a54132689cc918fb6adb4141e6a476326c1",
          "body": null,
          "is_bot": false,
          "headline": "fix(github): honor skip flags for PR preview syncs (#10873)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T13:06:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e325f93662d20330a09cf220fb9e22d4490a3584",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into 10870-pr-previews-ignore",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T13:06:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f24439f9c8410e00c6373b54a03850f84442e373",
          "body": null,
          "is_bot": false,
          "headline": "test(github): cover PR previews without skip ci",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T12:44:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3f960d94c350220c7928c7572772f421b757b0d0",
          "body": null,
          "is_bot": false,
          "headline": "fix(github): skip opened PR previews with skip ci",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T12:41:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0217e2b0c029b88d851b050f8dc8c2bd61696ea5",
          "body": "Add server private key generation from the dropdown, prevent deleting\nprivate keys that are still in use, and close cloud provider link modals\nafter successful linking.",
          "is_bot": false,
          "headline": "feat(server): improve private key and cloud link flows",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T11:35:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4f4274ceea20754ecf4b314b63375946b0b976e",
          "body": null,
          "is_bot": false,
          "headline": "fix(github): skip PR previews from head commit flags",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T11:31:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b8aeb47584099ceb617717aa629395e85bab35e",
          "body": null,
          "is_bot": false,
          "headline": "feat(server): add private key creation to IP server form",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T11:05:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e200d881f55d03ccf371780987839e5dafcb17e1",
          "body": "Add dedicated show/edit pages for cloud provider tokens and cloud-init\nscripts, including descriptions and UUID routes.\n\nGenerate private keys directly from the index and surface cloud provider\nAPI loading errors in server creation flows.",
          "is_bot": false,
          "headline": "feat(security): add editable cloud credential pages",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T10:58:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7236cb82287fa3fdc71a96039b40af093a16521b",
          "body": null,
          "is_bot": false,
          "headline": "feat(server): add dedicated server creation flow",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T10:20:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18f0f7f6be2906a496c63fa1ed43047e8e070e96",
          "body": null,
          "is_bot": false,
          "headline": "feat(digitalocean): add droplet provisioning support (#10871)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T08:50:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c303c34cfdd373b26aefd5efc970ce5640af7450",
          "body": null,
          "is_bot": false,
          "headline": "feat(digitalocean): add droplet provisioning support",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T08:42:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5936874ffd21c9f6c0e51e54eafa37252c634dc9",
          "body": null,
          "is_bot": false,
          "headline": "feat(vultr): add cloud provider integration (#10533)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T08:24:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2dd264f8024342e28872be44b16143b81f45a5b7",
          "body": null,
          "is_bot": false,
          "headline": "fix(vultr): remove duplicate deletion error log",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T08:23:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d90a0a288c076eac87e07287c0a7606d5bb842d9",
          "body": null,
          "is_bot": false,
          "headline": "fix: align server mobile menu spacing",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T07:49:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d74206f4a9f657b8538f8cb31a75657e6686c090",
          "body": "…rovider",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into feature/vultr-cloud-p…",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T07:48:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0f0f7d8d03e6e5e3a6a3d0d98eb5825042cbe0f",
          "body": "Add normalized email identity rate limiting for registration and forgot-password requests, and refresh Sentinel status from restart broadcasts.\n\nRework server sidebars and navbar for mobile menus and active status visibility.",
          "is_bot": false,
          "headline": "feat: harden auth flows and server mobile navigation",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-08T07:42:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94079c90f2962476c635b72b230f1797bb843006",
          "body": null,
          "is_bot": false,
          "headline": "docs(readme): refresh sponsor listings",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T22:03:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ed92cb97af582ee0f2cea2493b8e42dcefb69f9",
          "body": "Require IPv6 when public IPv4 is disabled, constrain cloud token\nlookup by team and provider during deletion, and encode Vultr instance IDs\nin API paths.",
          "is_bot": false,
          "headline": "fix(vultr): validate public network and token scope",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T19:39:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31f904ef9fb334e90366f92365d969ee80337b15",
          "body": "…rovider",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into feature/vultr-cloud-p…",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T19:23:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b93f1090ad9e1b9df1097a3b0621c9c06275d1a1",
          "body": "…ironments (#8968)",
          "is_bot": false,
          "headline": "feat(api): add POST /move endpoints to relocate resources between env…",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T19:21:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6872f63f5f43192a7d9fe6d68730130e05ad4595",
          "body": null,
          "is_bot": false,
          "headline": "fix(api): audit moved resources",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T19:20:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5699b7856751cf876c5a5fc6551aab888d796111",
          "body": null,
          "is_bot": false,
          "headline": "fix(api): stop auditing sentinel metric pushes",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T19:17:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f244b5e25d1f91968333d6877b80184fd9d68e34",
          "body": null,
          "is_bot": false,
          "headline": "test(api): assert target env authorization on moves",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T19:07:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "676161a627aab9291837e573b701701db4d141b3",
          "body": null,
          "is_bot": false,
          "headline": "fix(api): authorize target environment moves",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T18:56:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf63c7d1546ae8e820f523757bf652134ab189e3",
          "body": "…es-between-projects",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into feat/api-move-resourc…",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T16:13:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0cca267953af366212091bd47ae0902487a2e68d",
          "body": null,
          "is_bot": false,
          "headline": "feat(api): Service Application Management API (#9249)",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T16:05:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f1343427323b5fcfe565e4a95ddfccce58ffedd",
          "body": "Build container status commands with escaped container names in the\nDocker helper so callers can pass raw identifiers consistently.",
          "is_bot": false,
          "headline": "fix(docker): escape container status commands",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T16:00:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a165e03d06e00100970fbebf062f8e4857d41dc8",
          "body": "Escape service application lifecycle command arguments for deploy, restart, stop, and log status checks.\nValidate API update payloads from JSON/form data before applying allowed fields, preserving explicit boolean and null values.\nAdd coverage for service application API authorization, team isolation, validation, and command escaping.",
          "is_bot": false,
          "headline": "fix(service-apps): harden updates and docker commands",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T13:10:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "95a3c453d871ea04591e38008b00fa6437e5f20a",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into 9249-pr-investigation",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T12:45:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e81a2c69960d4e1cdca3b857da8ec3b98f16f7ac",
          "body": "…works and backups when creating the Server (#9646)",
          "is_bot": false,
          "headline": "feat(cloud-provider): Add support for Hetzner firewalls, internal net…",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T12:42:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8000ac2ad2fa0882223b8360028e21e9aaa6ad4",
          "body": null,
          "is_bot": false,
          "headline": "fix(hetzner): require at least one public IP protocol",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T12:41:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9ffa0db961402e1faba8e7fb046fa459d0a5bbf",
          "body": "…s-and-internal-networks",
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/next' into feat/hetzner-firewall…",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T12:37:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b33eb4e9cddbb36b6c993c62e45f72105016cda",
          "body": null,
          "is_bot": false,
          "headline": "fix(ui): constrain helper popup within viewport",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T12:37:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b939e09f12c717f665e5a933289931aee6c1ca72",
          "body": null,
          "is_bot": false,
          "headline": "refactor(hetzner): move advanced options into dropdown",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T12:36:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d723a52d9cfc0c5a009b235d9bc30a7333ff8a59",
          "body": "Authorize stored Hetzner cloud provider tokens before fetching\nfirewalls or networks, hide provider error details, and keep server\ncreation intact if backup activation fails.\n\nCollapse advanced Hetzner server options by default while preserving\nvisibility when advanced values are selected.",
          "is_bot": false,
          "headline": "fix(hetzner): secure token-backed option fetches",
          "author_name": "Andras Bacsai",
          "author_login": "andrasbacsai",
          "committed_at": "2026-07-07T12:24:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 4299,
      "latest_release_at": "2026-07-21T16:08:35Z",
      "latest_release_tag": "v4.2.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 52,
      "days_since_latest_release": 12,
      "mean_days_between_releases": 13.2
    },
    "artifacts": {
      "collected": true,
      "structure": [
        "tree.compose",
        "tree.dockerfile",
        "tree.migrations"
      ],
      "declarations": [
        {
          "name": "coollabsio/coolify",
          "path": "composer.json",
          "tokens": [
            "composer.type:project"
          ],
          "ecosystem": "packagist"
        },
        {
          "name": null,
          "path": "docker/coolify-realtime/package.json",
          "tokens": [
            "npm.private"
          ],
          "ecosystem": "npm"
        },
        {
          "name": null,
          "path": "package.json",
          "tokens": [
            "npm.private"
          ],
          "ecosystem": "npm"
        }
      ]
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "readme_badges": {
        "hosts": [
          "shields.io"
        ],
        "total": 1,
        "header": 1,
        "collected": true,
        "has_inspect_badge": false
      },
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 5199,
      "stars": 60033,
      "watchers": 191,
      "fork_history": {
        "days": [
          {
            "date": "2026-05-07",
            "count": 6
          },
          {
            "date": "2026-05-08",
            "count": 3
          },
          {
            "date": "2026-05-09",
            "count": 9
          },
          {
            "date": "2026-05-10",
            "count": 9
          },
          {
            "date": "2026-05-11",
            "count": 41
          },
          {
            "date": "2026-05-12",
            "count": 40
          },
          {
            "date": "2026-05-13",
            "count": 17
          },
          {
            "date": "2026-05-14",
            "count": 11
          },
          {
            "date": "2026-05-15",
            "count": 12
          },
          {
            "date": "2026-05-16",
            "count": 29
          },
          {
            "date": "2026-05-17",
            "count": 30
          },
          {
            "date": "2026-05-18",
            "count": 18
          },
          {
            "date": "2026-05-19",
            "count": 18
          },
          {
            "date": "2026-05-20",
            "count": 29
          },
          {
            "date": "2026-05-21",
            "count": 7
          },
          {
            "date": "2026-05-22",
            "count": 16
          },
          {
            "date": "2026-05-23",
            "count": 10
          },
          {
            "date": "2026-05-24",
            "count": 4
          },
          {
            "date": "2026-05-25",
            "count": 8
          },
          {
            "date": "2026-05-26",
            "count": 14
          },
          {
            "date": "2026-05-27",
            "count": 7
          },
          {
            "date": "2026-05-28",
            "count": 8
          },
          {
            "date": "2026-05-29",
            "count": 4
          },
          {
            "date": "2026-05-30",
            "count": 7
          },
          {
            "date": "2026-05-31",
            "count": 8
          },
          {
            "date": "2026-06-01",
            "count": 10
          },
          {
            "date": "2026-06-02",
            "count": 10
          },
          {
            "date": "2026-06-03",
            "count": 10
          },
          {
            "date": "2026-06-04",
            "count": 12
          },
          {
            "date": "2026-06-05",
            "count": 10
          },
          {
            "date": "2026-06-06",
            "count": 7
          },
          {
            "date": "2026-06-07",
            "count": 14
          },
          {
            "date": "2026-06-08",
            "count": 9
          },
          {
            "date": "2026-06-09",
            "count": 13
          },
          {
            "date": "2026-06-10",
            "count": 7
          },
          {
            "date": "2026-06-11",
            "count": 4
          },
          {
            "date": "2026-06-12",
            "count": 10
          },
          {
            "date": "2026-06-13",
            "count": 12
          },
          {
            "date": "2026-06-14",
            "count": 8
          },
          {
            "date": "2026-06-15",
            "count": 11
          },
          {
            "date": "2026-06-16",
            "count": 8
          },
          {
            "date": "2026-06-17",
            "count": 1
          },
          {
            "date": "2026-06-18",
            "count": 4
          },
          {
            "date": "2026-06-19",
            "count": 4
          },
          {
            "date": "2026-06-20",
            "count": 9
          },
          {
            "date": "2026-06-21",
            "count": 8
          },
          {
            "date": "2026-06-22",
            "count": 11
          },
          {
            "date": "2026-06-23",
            "count": 9
          },
          {
            "date": "2026-06-24",
            "count": 5
          },
          {
            "date": "2026-06-25",
            "count": 5
          },
          {
            "date": "2026-06-26",
            "count": 3
          },
          {
            "date": "2026-06-27",
            "count": 5
          },
          {
            "date": "2026-06-28",
            "count": 4
          },
          {
            "date": "2026-06-29",
            "count": 8
          },
          {
            "date": "2026-06-30",
            "count": 13
          },
          {
            "date": "2026-07-01",
            "count": 17
          },
          {
            "date": "2026-07-02",
            "count": 7
          },
          {
            "date": "2026-07-03",
            "count": 14
          },
          {
            "date": "2026-07-04",
            "count": 7
          },
          {
            "date": "2026-07-05",
            "count": 16
          },
          {
            "date": "2026-07-06",
            "count": 8
          },
          {
            "date": "2026-07-07",
            "count": 11
          },
          {
            "date": "2026-07-08",
            "count": 17
          },
          {
            "date": "2026-07-09",
            "count": 13
          },
          {
            "date": "2026-07-10",
            "count": 9
          },
          {
            "date": "2026-07-11",
            "count": 8
          },
          {
            "date": "2026-07-12",
            "count": 12
          },
          {
            "date": "2026-07-13",
            "count": 15
          },
          {
            "date": "2026-07-14",
            "count": 19
          },
          {
            "date": "2026-07-15",
            "count": 17
          },
          {
            "date": "2026-07-16",
            "count": 16
          },
          {
            "date": "2026-07-17",
            "count": 10
          },
          {
            "date": "2026-07-18",
            "count": 12
          },
          {
            "date": "2026-07-19",
            "count": 12
          },
          {
            "date": "2026-07-20",
            "count": 13
          },
          {
            "date": "2026-07-21",
            "count": 16
          },
          {
            "date": "2026-07-22",
            "count": 9
          },
          {
            "date": "2026-07-23",
            "count": 13
          },
          {
            "date": "2026-07-24",
            "count": 9
          },
          {
            "date": "2026-07-25",
            "count": 7
          },
          {
            "date": "2026-07-26",
            "count": 16
          },
          {
            "date": "2026-07-27",
            "count": 22
          },
          {
            "date": "2026-07-28",
            "count": 9
          },
          {
            "date": "2026-07-29",
            "count": 9
          },
          {
            "date": "2026-07-30",
            "count": 9
          },
          {
            "date": "2026-07-31",
            "count": 5
          },
          {
            "date": "2026-08-01",
            "count": 4
          },
          {
            "date": "2026-08-02",
            "count": 6
          },
          {
            "date": "2026-08-03",
            "count": 4
          }
        ],
        "complete": false,
        "collected": 1000,
        "total_forks": 5199
      },
      "star_history": null,
      "open_issues_and_prs": 841
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [
        "openapi.json",
        "openapi.yaml"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 5749518,
      "source_files_sampled": 2122,
      "oversized_source_files": 32,
      "agent_instruction_files": [
        ".cursor/rules/coolify-ai-docs.mdc",
        "AGENTS.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 18856
    },
    "dependencies": {
      "manifests": [
        "composer.json",
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "ws",
            "direct": true,
            "version": "8.20.1",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-96hv-2xvq-fx4p"
            ],
            "fixed_version": "8.21.0",
            "advisory_count": 1,
            "oldest_advisory_days": 48
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.15",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-r28c-9q8g-f849"
            ],
            "fixed_version": "8.5.18",
            "advisory_count": 1,
            "oldest_advisory_days": 9
          },
          {
            "name": "guzzlehttp/guzzle",
            "direct": true,
            "version": "7.12.1",
            "severity": "moderate",
            "ecosystem": "packagist",
            "cvss_score": 5.9,
            "advisory_ids": [
              "GHSA-94pj-82f3-465w",
              "GHSA-f283-ghqc-fg79",
              "GHSA-g446-98w2-8p5w",
              "GHSA-h95v-h523-3mw8",
              "GHSA-wm3w-8rrp-j577"
            ],
            "fixed_version": "7.15.1",
            "advisory_count": 5,
            "oldest_advisory_days": 13
          },
          {
            "name": "guzzlehttp/psr7",
            "direct": false,
            "version": "2.12.1",
            "severity": "moderate",
            "ecosystem": "packagist",
            "cvss_score": 4.2,
            "advisory_ids": [
              "GHSA-c2w2-prh8-qm98"
            ],
            "fixed_version": "2.12.3",
            "advisory_count": 1,
            "oldest_advisory_days": 12
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 2,
          "moderate": 2
        },
        "advisory_count": 8,
        "affected_count": 4,
        "assessed_count": 359,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 2
      },
      "ecosystems": [
        "npm",
        "packagist"
      ],
      "dependencies": [
        {
          "name": "danharrin/livewire-rate-limiting",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.1.0"
        },
        {
          "name": "doctrine/dbal",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^4.4.1"
        },
        {
          "name": "guzzlehttp/guzzle",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^7.10.0"
        },
        {
          "name": "laravel/fortify",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.34.0"
        },
        {
          "name": "laravel/framework",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^12.49.0"
        },
        {
          "name": "laravel/horizon",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5.43.0"
        },
        {
          "name": "laravel/mcp",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^0.6.7"
        },
        {
          "name": "laravel/nightwatch",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.24"
        },
        {
          "name": "laravel/pail",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.2.4"
        },
        {
          "name": "laravel/prompts",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^0.3.11|^0.3.11|^0.3.11"
        },
        {
          "name": "laravel/sanctum",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^4.3.0"
        },
        {
          "name": "laravel/socialite",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5.24.2"
        },
        {
          "name": "laravel/tinker",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.11.0"
        },
        {
          "name": "laravel/ui",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^4.6.1"
        },
        {
          "name": "lcobucci/jwt",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5.6.0"
        },
        {
          "name": "league/flysystem-aws-s3-v3",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^3.31.0"
        },
        {
          "name": "league/flysystem-sftp-v3",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^3.31"
        },
        {
          "name": "livewire/livewire",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^3.7.8"
        },
        {
          "name": "log1x/laravel-webfonts",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.0.1"
        },
        {
          "name": "lorisleiva/laravel-actions",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.9.1"
        },
        {
          "name": "nubs/random-name-generator",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.2"
        },
        {
          "name": "pion/laravel-chunk-upload",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.5.6"
        },
        {
          "name": "poliander/cron",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^3.3.0"
        },
        {
          "name": "purplepixie/phpdns",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.3.6"
        },
        {
          "name": "pusher/pusher-php-server",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^7.2.7"
        },
        {
          "name": "resend/resend-laravel",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^0.20.0"
        },
        {
          "name": "sentry/sentry-laravel",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^4.20.1"
        },
        {
          "name": "socialiteproviders/authentik",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5.2"
        },
        {
          "name": "socialiteproviders/clerk",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5.1"
        },
        {
          "name": "socialiteproviders/discord",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^4.2"
        },
        {
          "name": "socialiteproviders/google",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^4.1"
        },
        {
          "name": "socialiteproviders/infomaniak",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^4.0"
        },
        {
          "name": "socialiteproviders/microsoft-azure",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5.2"
        },
        {
          "name": "socialiteproviders/zitadel",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^4.2"
        },
        {
          "name": "spatie/laravel-activitylog",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^4.11.0"
        },
        {
          "name": "spatie/laravel-data",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^4.19.1"
        },
        {
          "name": "spatie/laravel-markdown",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.7.1"
        },
        {
          "name": "spatie/laravel-schemaless-attributes",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.5.1"
        },
        {
          "name": "spatie/url",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^2.4"
        },
        {
          "name": "stevebauman/purify",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^6.3.1"
        },
        {
          "name": "stripe/stripe-php",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^16.6.0"
        },
        {
          "name": "symfony/yaml",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^7.4.1"
        },
        {
          "name": "visus/cuid2",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^6.0.0"
        },
        {
          "name": "yosymfony/toml",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^1.0.4"
        },
        {
          "name": "zircote/swagger-php",
          "manifest": "composer.json",
          "ecosystem": "packagist",
          "version_constraint": "^5.8.0"
        },
        {
          "name": "@tailwindcss/forms",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "0.5.10"
        },
        {
          "name": "@tailwindcss/typography",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "0.5.16"
        },
        {
          "name": "@xterm/addon-fit",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "0.10.0"
        },
        {
          "name": "@xterm/xterm",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "5.5.0"
        },
        {
          "name": "playwright",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.58.2"
        },
        {
          "name": "@xterm/addon-fit",
          "manifest": "docker/coolify-realtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.11.0"
        },
        {
          "name": "@xterm/xterm",
          "manifest": "docker/coolify-realtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "6.0.0"
        },
        {
          "name": "cookie",
          "manifest": "docker/coolify-realtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.1"
        },
        {
          "name": "dotenv",
          "manifest": "docker/coolify-realtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "17.3.1"
        },
        {
          "name": "node-pty",
          "manifest": "docker/coolify-realtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "1.1.0"
        },
        {
          "name": "ws",
          "manifest": "docker/coolify-realtime/package.json",
          "ecosystem": "npm",
          "version_constraint": "8.20.1"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@tailwindcss/forms",
            "direct": true,
            "version": "0.5.10",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/typography",
            "direct": true,
            "version": "0.5.16",
            "ecosystem": "npm"
          },
          {
            "name": "@xterm/addon-fit",
            "direct": true,
            "version": "0.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xterm/addon-fit",
            "direct": true,
            "version": "0.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xterm/xterm",
            "direct": true,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@xterm/xterm",
            "direct": true,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": true,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv",
            "direct": true,
            "version": "17.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "node-pty",
            "direct": true,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "playwright",
            "direct": true,
            "version": "1.58.2",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": true,
            "version": "8.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "danharrin/livewire-rate-limiting",
            "direct": true,
            "version": "2.2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/dbal",
            "direct": true,
            "version": "4.4.3",
            "ecosystem": "packagist"
          },
          {
            "name": "guzzlehttp/guzzle",
            "direct": true,
            "version": "7.12.1",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/fortify",
            "direct": true,
            "version": "1.37.2",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/framework",
            "direct": true,
            "version": "12.61.1",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/horizon",
            "direct": true,
            "version": "5.47.0",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/mcp",
            "direct": true,
            "version": "0.6.7",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/nightwatch",
            "direct": true,
            "version": "1.27.0",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/pail",
            "direct": true,
            "version": "1.2.6",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/prompts",
            "direct": true,
            "version": "0.3.18",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/sanctum",
            "direct": true,
            "version": "4.3.2",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/socialite",
            "direct": true,
            "version": "5.27.0",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/tinker",
            "direct": true,
            "version": "2.11.1",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/ui",
            "direct": true,
            "version": "4.6.3",
            "ecosystem": "packagist"
          },
          {
            "name": "lcobucci/jwt",
            "direct": true,
            "version": "5.6.0",
            "ecosystem": "packagist"
          },
          {
            "name": "league/flysystem-aws-s3-v3",
            "direct": true,
            "version": "3.34.0",
            "ecosystem": "packagist"
          },
          {
            "name": "league/flysystem-sftp-v3",
            "direct": true,
            "version": "3.33.0",
            "ecosystem": "packagist"
          },
          {
            "name": "livewire/livewire",
            "direct": true,
            "version": "3.8.0",
            "ecosystem": "packagist"
          },
          {
            "name": "log1x/laravel-webfonts",
            "direct": true,
            "version": "2.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "lorisleiva/laravel-actions",
            "direct": true,
            "version": "2.10.1",
            "ecosystem": "packagist"
          },
          {
            "name": "nubs/random-name-generator",
            "direct": true,
            "version": "2.2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "pion/laravel-chunk-upload",
            "direct": true,
            "version": "1.5.6",
            "ecosystem": "packagist"
          },
          {
            "name": "poliander/cron",
            "direct": true,
            "version": "3.3.1",
            "ecosystem": "packagist"
          },
          {
            "name": "purplepixie/phpdns",
            "direct": true,
            "version": "2.3.6",
            "ecosystem": "packagist"
          },
          {
            "name": "pusher/pusher-php-server",
            "direct": true,
            "version": "7.2.8",
            "ecosystem": "packagist"
          },
          {
            "name": "resend/resend-laravel",
            "direct": true,
            "version": "0.20.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sentry/sentry-laravel",
            "direct": true,
            "version": "4.25.1",
            "ecosystem": "packagist"
          },
          {
            "name": "socialiteproviders/authentik",
            "direct": true,
            "version": "5.3.0",
            "ecosystem": "packagist"
          },
          {
            "name": "socialiteproviders/clerk",
            "direct": true,
            "version": "5.1.0",
            "ecosystem": "packagist"
          },
          {
            "name": "socialiteproviders/discord",
            "direct": true,
            "version": "4.2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "socialiteproviders/google",
            "direct": true,
            "version": "4.1.0",
            "ecosystem": "packagist"
          },
          {
            "name": "socialiteproviders/infomaniak",
            "direct": true,
            "version": "4.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "socialiteproviders/microsoft-azure",
            "direct": true,
            "version": "5.2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "socialiteproviders/zitadel",
            "direct": true,
            "version": "4.2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/laravel-activitylog",
            "direct": true,
            "version": "4.12.3",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/laravel-data",
            "direct": true,
            "version": "4.23.0",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/laravel-markdown",
            "direct": true,
            "version": "2.8.0",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/laravel-schemaless-attributes",
            "direct": true,
            "version": "2.6.0",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/url",
            "direct": true,
            "version": "2.4.0",
            "ecosystem": "packagist"
          },
          {
            "name": "stevebauman/purify",
            "direct": true,
            "version": "6.3.2",
            "ecosystem": "packagist"
          },
          {
            "name": "stripe/stripe-php",
            "direct": true,
            "version": "16.6.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/yaml",
            "direct": true,
            "version": "7.4.12",
            "ecosystem": "packagist"
          },
          {
            "name": "visus/cuid2",
            "direct": true,
            "version": "6.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "yosymfony/toml",
            "direct": true,
            "version": "1.0.4",
            "ecosystem": "packagist"
          },
          {
            "name": "zircote/swagger-php",
            "direct": true,
            "version": "5.8.3",
            "ecosystem": "packagist"
          },
          {
            "name": "@alloc/quick-lru",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/remapping",
            "direct": false,
            "version": "2.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.31",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.133.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/node",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-android-arm64",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-darwin-arm64",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-darwin-x64",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-freebsd-x64",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-linux-arm64-gnu",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-linux-arm64-musl",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-linux-x64-gnu",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-linux-x64-musl",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-wasm32-wasi",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-win32-arm64-msvc",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/oxide-win32-x64-msvc",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tailwindcss/postcss",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/prismjs",
            "direct": false,
            "version": "1.26.5",
            "ecosystem": "npm"
          },
          {
            "name": "clsx",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "cssesc",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "enhanced-resolve",
            "direct": false,
            "version": "5.19.0",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "laravel-vite-plugin",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.30.2",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.castarray",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.isplainobject",
            "direct": false,
            "version": "4.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.merge",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "mini-svg-data-uri",
            "direct": false,
            "version": "1.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.12",
            "ecosystem": "npm"
          },
          {
            "name": "node-addon-api",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "playwright-core",
            "direct": false,
            "version": "1.58.2",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.15",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-selector-parser",
            "direct": false,
            "version": "6.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "prism-react-renderer",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "react",
            "direct": false,
            "version": "19.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "tailwind-scrollbar",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "tailwindcss",
            "direct": false,
            "version": "4.1.18",
            "ecosystem": "npm"
          },
          {
            "name": "tapable",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "vite-plugin-full-reload",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "amphp/amp",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/byte-stream",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/cache",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/dns",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/hpack",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/http",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/http-client",
            "direct": false,
            "version": "5.3.6",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/http-server",
            "direct": false,
            "version": "3.4.5",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/parser",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/pipeline",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/process",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/serialization",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/socket",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/sync",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/websocket",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "packagist"
          },
          {
            "name": "amphp/websocket-client",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "packagist"
          },
          {
            "name": "aws/aws-crt-php",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "packagist"
          },
          {
            "name": "aws/aws-sdk-php",
            "direct": false,
            "version": "3.381.5",
            "ecosystem": "packagist"
          },
          {
            "name": "bacon/bacon-qr-code",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "packagist"
          },
          {
            "name": "barryvdh/laravel-debugbar",
            "direct": false,
            "version": "3.16.5",
            "ecosystem": "packagist"
          },
          {
            "name": "brianium/paratest",
            "direct": false,
            "version": "7.20.0",
            "ecosystem": "packagist"
          },
          {
            "name": "brick/math",
            "direct": false,
            "version": "0.14.8",
            "ecosystem": "packagist"
          },
          {
            "name": "carbonphp/carbon-doctrine-types",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "composer/pcre",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "packagist"
          },
          {
            "name": "composer/xdebug-handler",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "packagist"
          },
          {
            "name": "dasprid/enum",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "packagist"
          },
          {
            "name": "daverandom/libdns",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "packagist"
          },
          {
            "name": "dflydev/dot-access-data",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/deprecations",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/inflector",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "packagist"
          },
          {
            "name": "doctrine/lexer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "dragonmantank/cron-expression",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "packagist"
          },
          {
            "name": "driftingly/rector-laravel",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "packagist"
          },
          {
            "name": "egulias/email-validator",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "packagist"
          },
          {
            "name": "ezyang/htmlpurifier",
            "direct": false,
            "version": "4.19.0",
            "ecosystem": "packagist"
          },
          {
            "name": "fakerphp/faker",
            "direct": false,
            "version": "1.24.1",
            "ecosystem": "packagist"
          },
          {
            "name": "fidry/cpu-core-counter",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "packagist"
          },
          {
            "name": "filp/whoops",
            "direct": false,
            "version": "2.18.4",
            "ecosystem": "packagist"
          },
          {
            "name": "firebase/php-jwt",
            "direct": false,
            "version": "7.0.5",
            "ecosystem": "packagist"
          },
          {
            "name": "fruitcake/php-cors",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "packagist"
          },
          {
            "name": "graham-campbell/result-type",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "packagist"
          },
          {
            "name": "guzzlehttp/promises",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "packagist"
          },
          {
            "name": "guzzlehttp/psr7",
            "direct": false,
            "version": "2.12.1",
            "ecosystem": "packagist"
          },
          {
            "name": "guzzlehttp/uri-template",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "packagist"
          },
          {
            "name": "hamcrest/hamcrest-php",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "packagist"
          },
          {
            "name": "jean85/pretty-package-versions",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "packagist"
          },
          {
            "name": "kelunik/certificate",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/boost",
            "direct": false,
            "version": "2.4.8",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/dusk",
            "direct": false,
            "version": "8.6.0",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/passkeys",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/pint",
            "direct": false,
            "version": "1.29.1",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/roster",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/sentinel",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/serializable-closure",
            "direct": false,
            "version": "2.0.13",
            "ecosystem": "packagist"
          },
          {
            "name": "laravel/telescope",
            "direct": false,
            "version": "5.20.0",
            "ecosystem": "packagist"
          },
          {
            "name": "league/commonmark",
            "direct": false,
            "version": "2.8.2",
            "ecosystem": "packagist"
          },
          {
            "name": "league/config",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "league/flysystem",
            "direct": false,
            "version": "3.34.0",
            "ecosystem": "packagist"
          },
          {
            "name": "league/flysystem-local",
            "direct": false,
            "version": "3.31.0",
            "ecosystem": "packagist"
          },
          {
            "name": "league/mime-type-detection",
            "direct": false,
            "version": "1.16.0",
            "ecosystem": "packagist"
          },
          {
            "name": "league/oauth1-client",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "packagist"
          },
          {
            "name": "league/uri",
            "direct": false,
            "version": "7.8.1",
            "ecosystem": "packagist"
          },
          {
            "name": "league/uri-components",
            "direct": false,
            "version": "7.8.1",
            "ecosystem": "packagist"
          },
          {
            "name": "league/uri-interfaces",
            "direct": false,
            "version": "7.8.1",
            "ecosystem": "packagist"
          },
          {
            "name": "lorisleiva/lody",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "packagist"
          },
          {
            "name": "mockery/mockery",
            "direct": false,
            "version": "1.6.12",
            "ecosystem": "packagist"
          },
          {
            "name": "monolog/monolog",
            "direct": false,
            "version": "3.10.0",
            "ecosystem": "packagist"
          },
          {
            "name": "mtdowling/jmespath.php",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "packagist"
          },
          {
            "name": "myclabs/deep-copy",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "packagist"
          },
          {
            "name": "nesbot/carbon",
            "direct": false,
            "version": "3.13.0",
            "ecosystem": "packagist"
          },
          {
            "name": "nette/schema",
            "direct": false,
            "version": "1.3.5",
            "ecosystem": "packagist"
          },
          {
            "name": "nette/utils",
            "direct": false,
            "version": "4.1.4",
            "ecosystem": "packagist"
          },
          {
            "name": "nikic/php-parser",
            "direct": false,
            "version": "5.7.0",
            "ecosystem": "packagist"
          },
          {
            "name": "nunomaduro/collision",
            "direct": false,
            "version": "8.9.4",
            "ecosystem": "packagist"
          },
          {
            "name": "nunomaduro/termwind",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "packagist"
          },
          {
            "name": "nyholm/psr7",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "packagist"
          },
          {
            "name": "paragonie/constant_time_encoding",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "packagist"
          },
          {
            "name": "paragonie/random_compat",
            "direct": false,
            "version": "9.99.100",
            "ecosystem": "packagist"
          },
          {
            "name": "pestphp/pest",
            "direct": false,
            "version": "4.7.0",
            "ecosystem": "packagist"
          },
          {
            "name": "pestphp/pest-plugin",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "pestphp/pest-plugin-arch",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "packagist"
          },
          {
            "name": "pestphp/pest-plugin-browser",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "packagist"
          },
          {
            "name": "pestphp/pest-plugin-mutate",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "pestphp/pest-plugin-profanity",
            "direct": false,
            "version": "4.2.1",
            "ecosystem": "packagist"
          },
          {
            "name": "phar-io/manifest",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "packagist"
          },
          {
            "name": "phar-io/version",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "packagist"
          },
          {
            "name": "php-debugbar/php-debugbar",
            "direct": false,
            "version": "2.2.6",
            "ecosystem": "packagist"
          },
          {
            "name": "php-webdriver/webdriver",
            "direct": false,
            "version": "1.16.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpdocumentor/reflection-common",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpdocumentor/reflection-docblock",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "packagist"
          },
          {
            "name": "phpdocumentor/type-resolver",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpoption/phpoption",
            "direct": false,
            "version": "1.9.5",
            "ecosystem": "packagist"
          },
          {
            "name": "phpseclib/phpseclib",
            "direct": false,
            "version": "3.0.54",
            "ecosystem": "packagist"
          },
          {
            "name": "phpstan/phpdoc-parser",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "packagist"
          },
          {
            "name": "phpstan/phpstan",
            "direct": false,
            "version": "2.1.55",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-code-coverage",
            "direct": false,
            "version": "12.5.6",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-file-iterator",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-invoker",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-text-template",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/php-timer",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "phpunit/phpunit",
            "direct": false,
            "version": "12.5.24",
            "ecosystem": "packagist"
          },
          {
            "name": "pragmarx/google2fa",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/cache",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/clock",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/container",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/event-dispatcher",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/http-client",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/http-factory",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/http-message",
            "direct": false,
            "version": "2.0",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/log",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "packagist"
          },
          {
            "name": "psr/simple-cache",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "psy/psysh",
            "direct": false,
            "version": "0.12.22",
            "ecosystem": "packagist"
          },
          {
            "name": "ralouphie/getallheaders",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "packagist"
          },
          {
            "name": "ramsey/collection",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "packagist"
          },
          {
            "name": "ramsey/uuid",
            "direct": false,
            "version": "4.9.3",
            "ecosystem": "packagist"
          },
          {
            "name": "rector/rector",
            "direct": false,
            "version": "2.4.4",
            "ecosystem": "packagist"
          },
          {
            "name": "resend/resend-php",
            "direct": false,
            "version": "0.18.1",
            "ecosystem": "packagist"
          },
          {
            "name": "revolt/event-loop",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/cli-parser",
            "direct": false,
            "version": "4.2.1",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/comparator",
            "direct": false,
            "version": "7.1.8",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/complexity",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/diff",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/environment",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/exporter",
            "direct": false,
            "version": "7.0.3",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/global-state",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/lines-of-code",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/object-enumerator",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/object-reflector",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/recursion-context",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/type",
            "direct": false,
            "version": "6.0.4",
            "ecosystem": "packagist"
          },
          {
            "name": "sebastian/version",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "packagist"
          },
          {
            "name": "sentry/sentry",
            "direct": false,
            "version": "4.27.0",
            "ecosystem": "packagist"
          },
          {
            "name": "serversideup/spin",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "packagist"
          },
          {
            "name": "socialiteproviders/manager",
            "direct": false,
            "version": "4.9.2",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/backtrace",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/commonmark-shiki-highlighter",
            "direct": false,
            "version": "2.5.2",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/error-solutions",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/flare-client-php",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/ignition",
            "direct": false,
            "version": "1.16.0",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/laravel-ignition",
            "direct": false,
            "version": "2.12.0",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/laravel-package-tools",
            "direct": false,
            "version": "1.93.1",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/macroable",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/php-structure-discoverer",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "packagist"
          },
          {
            "name": "spatie/shiki-php",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "packagist"
          },
          {
            "name": "spomky-labs/cbor-php",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "packagist"
          },
          {
            "name": "spomky-labs/pki-framework",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "packagist"
          },
          {
            "name": "staabm/side-effects-detector",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/clock",
            "direct": false,
            "version": "8.0.8",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/console",
            "direct": false,
            "version": "7.4.13",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/css-selector",
            "direct": false,
            "version": "8.0.9",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/deprecation-contracts",
            "direct": false,
            "version": "3.7.1",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/error-handler",
            "direct": false,
            "version": "7.4.8",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/event-dispatcher",
            "direct": false,
            "version": "8.0.9",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/event-dispatcher-contracts",
            "direct": false,
            "version": "3.7.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/filesystem",
            "direct": false,
            "version": "8.0.11",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/finder",
            "direct": false,
            "version": "7.4.8",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/http-client",
            "direct": false,
            "version": "7.4.9",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/http-client-contracts",
            "direct": false,
            "version": "3.7.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/http-foundation",
            "direct": false,
            "version": "7.4.13",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/http-kernel",
            "direct": false,
            "version": "7.4.13",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/mailer",
            "direct": false,
            "version": "7.4.12",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/mime",
            "direct": false,
            "version": "7.4.13",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/options-resolver",
            "direct": false,
            "version": "8.0.8",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-ctype",
            "direct": false,
            "version": "1.37.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-intl-grapheme",
            "direct": false,
            "version": "1.38.1",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-intl-idn",
            "direct": false,
            "version": "1.38.1",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-intl-normalizer",
            "direct": false,
            "version": "1.38.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-mbstring",
            "direct": false,
            "version": "1.38.2",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-php80",
            "direct": false,
            "version": "1.37.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-php83",
            "direct": false,
            "version": "1.38.2",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-php84",
            "direct": false,
            "version": "1.38.1",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-php85",
            "direct": false,
            "version": "1.38.1",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/polyfill-uuid",
            "direct": false,
            "version": "1.37.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/process",
            "direct": false,
            "version": "7.4.13",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/property-access",
            "direct": false,
            "version": "8.0.8",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/property-info",
            "direct": false,
            "version": "8.0.8",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/psr-http-message-bridge",
            "direct": false,
            "version": "8.0.8",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/routing",
            "direct": false,
            "version": "7.4.13",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/serializer",
            "direct": false,
            "version": "8.0.14",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/service-contracts",
            "direct": false,
            "version": "3.7.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/string",
            "direct": false,
            "version": "8.0.13",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/translation",
            "direct": false,
            "version": "8.0.10",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/translation-contracts",
            "direct": false,
            "version": "3.7.0",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/type-info",
            "direct": false,
            "version": "8.0.9",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/uid",
            "direct": false,
            "version": "7.4.9",
            "ecosystem": "packagist"
          },
          {
            "name": "symfony/var-dumper",
            "direct": false,
            "version": "7.4.8",
            "ecosystem": "packagist"
          },
          {
            "name": "ta-tikoma/phpunit-architecture-test",
            "direct": false,
            "version": "0.8.7",
            "ecosystem": "packagist"
          },
          {
            "name": "theseer/tokenizer",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "packagist"
          },
          {
            "name": "tijsverkoyen/css-to-inline-styles",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "packagist"
          },
          {
            "name": "vlucas/phpdotenv",
            "direct": false,
            "version": "5.6.3",
            "ecosystem": "packagist"
          },
          {
            "name": "voku/portable-ascii",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "packagist"
          },
          {
            "name": "web-auth/cose-lib",
            "direct": false,
            "version": "4.5.2",
            "ecosystem": "packagist"
          },
          {
            "name": "web-auth/webauthn-lib",
            "direct": false,
            "version": "5.3.5",
            "ecosystem": "packagist"
          },
          {
            "name": "webmozart/assert",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "packagist"
          },
          {
            "name": "yosymfony/parser-utils",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "packagist"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 359,
        "direct_count": 56,
        "indirect_count": 303
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 212,
        "merged_prs": 2671,
        "open_issues": 629,
        "closed_ratio": 0.838,
        "closed_issues": 3249,
        "closed_unmerged_prs": 2176
      },
      "bus_factor": 1,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "andrasbacsai",
          "commits": 11916,
          "avatar_url": "https://avatars.githubusercontent.com/u/5845193?v=4"
        },
        {
          "type": "User",
          "login": "peaklabs-dev",
          "commits": 1728,
          "avatar_url": "https://avatars.githubusercontent.com/u/122374094?v=4"
        },
        {
          "type": "User",
          "login": "ShadowArcanist",
          "commits": 214,
          "avatar_url": "https://avatars.githubusercontent.com/u/162910371?v=4"
        },
        {
          "type": "User",
          "login": "ijpatricio",
          "commits": 80,
          "avatar_url": "https://avatars.githubusercontent.com/u/26031459?v=4"
        },
        {
          "type": "User",
          "login": "yipfram",
          "commits": 51,
          "avatar_url": "https://avatars.githubusercontent.com/u/46826777?v=4"
        },
        {
          "type": "User",
          "login": "sawa-ko",
          "commits": 43,
          "avatar_url": "https://avatars.githubusercontent.com/u/56084970?v=4"
        },
        {
          "type": "User",
          "login": "GauthierPLM",
          "commits": 40,
          "avatar_url": "https://avatars.githubusercontent.com/u/2579741?v=4"
        },
        {
          "type": "User",
          "login": "theh2so4",
          "commits": 39,
          "avatar_url": "https://avatars.githubusercontent.com/u/69685986?v=4"
        },
        {
          "type": "User",
          "login": "majcek210",
          "commits": 35,
          "avatar_url": "https://avatars.githubusercontent.com/u/155429915?v=4"
        },
        {
          "type": "User",
          "login": "dominicbachmann",
          "commits": 35,
          "avatar_url": "https://avatars.githubusercontent.com/u/64000291?v=4"
        }
      ],
      "contributors_sampled": 98,
      "top_contributor_share": 0.787
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "chore-lock-closed-issues-discussions-and-prs.yml",
        "chore-manage-stale-issues-and-prs.yml",
        "chore-pr-comments.yml",
        "claude.yml",
        "cleanup-ghcr-untagged.yml",
        "coolify-helper-next.yml",
        "coolify-helper.yml",
        "coolify-realtime-next.yml",
        "coolify-realtime.yml",
        "coolify-release.yml",
        "coolify-sha-build.yml",
        "coolify-staging-build.yml",
        "coolify-testing-host.yml",
        "generate-changelog.yml",
        "pr-quality.yaml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "composer.lock",
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 3,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "10 out of 10 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/10 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 37 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": null,
            "reason": "no workflows found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 1,
            "reason": "dependency not pinned by hash detected -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 4,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": null,
            "reason": "No tokens found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 2,
            "reason": "8 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "940571e16f5a0e6c73cf56b4bb1184bed3d60623",
        "ran_at": "2026-08-03T14:54:30Z",
        "aggregate_score": 4.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "recent_prs": {
        "merged_7d": 3,
        "decided_7d": 20,
        "merged_30d": 13,
        "authors_30d": 29,
        "decided_30d": 57,
        "sample_size": 60,
        "window_days": 30,
        "sample_exhausted": false,
        "authors_probed_30d": 12,
        "newcomer_merged_30d": 1,
        "bot_prs_excluded_30d": 0,
        "newcomer_authors_30d": 8,
        "newcomer_decided_30d": 9
      },
      "ci_last_run_at": "2026-08-03T03:11:51Z",
      "oldest_open_prs": [
        {
          "number": 5694,
          "created_at": "2025-04-25T14:00:20Z",
          "last_comment_at": "2026-05-10T14:46:09Z",
          "last_comment_author": "Sahiram101"
        },
        {
          "number": 6061,
          "created_at": "2025-06-25T11:56:23Z",
          "last_comment_at": "2025-07-18T18:56:23Z",
          "last_comment_author": "CatStudioApp"
        },
        {
          "number": 6189,
          "created_at": "2025-07-14T08:43:54Z",
          "last_comment_at": "2025-12-22T10:53:53Z",
          "last_comment_author": "lepirlouit"
        },
        {
          "number": 6389,
          "created_at": "2025-08-17T23:03:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 6482,
          "created_at": "2025-08-28T10:12:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 6548,
          "created_at": "2025-09-05T14:02:46Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 6640,
          "created_at": "2025-09-17T11:18:27Z",
          "last_comment_at": "2025-10-02T18:40:17Z",
          "last_comment_author": "tribal2"
        },
        {
          "number": 6696,
          "created_at": "2025-09-24T21:36:25Z",
          "last_comment_at": "2026-07-25T06:38:55Z",
          "last_comment_author": "swirleyythrone"
        },
        {
          "number": 6717,
          "created_at": "2025-09-28T00:58:01Z",
          "last_comment_at": "2025-10-21T11:53:12Z",
          "last_comment_author": "compgeniuses"
        },
        {
          "number": 6792,
          "created_at": "2025-10-07T18:50:34Z",
          "last_comment_at": "2025-10-07T18:54:22Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 6962,
          "created_at": "2025-10-22T00:05:28Z",
          "last_comment_at": "2026-01-27T21:38:11Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 7087,
          "created_at": "2025-11-02T17:25:34Z",
          "last_comment_at": "2025-11-02T17:25:46Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 7170,
          "created_at": "2025-11-09T23:47:46Z",
          "last_comment_at": "2026-02-16T06:42:10Z",
          "last_comment_author": "jonocodes"
        },
        {
          "number": 7210,
          "created_at": "2025-11-12T20:40:39Z",
          "last_comment_at": "2026-07-27T22:20:47Z",
          "last_comment_author": "sovetski"
        },
        {
          "number": 7307,
          "created_at": "2025-11-23T01:03:16Z",
          "last_comment_at": "2026-05-05T10:01:07Z",
          "last_comment_author": "M0n7y5"
        },
        {
          "number": 7312,
          "created_at": "2025-11-23T20:25:15Z",
          "last_comment_at": "2025-11-24T08:00:51Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 7411,
          "created_at": "2025-11-29T10:39:06Z",
          "last_comment_at": "2025-11-30T11:16:08Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 7413,
          "created_at": "2025-11-29T10:50:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 7489,
          "created_at": "2025-12-04T13:11:22Z",
          "last_comment_at": "2025-12-04T13:12:00Z",
          "last_comment_author": "coderabbitai"
        },
        {
          "number": 7591,
          "created_at": "2025-12-11T21:10:18Z",
          "last_comment_at": "2025-12-11T21:17:18Z",
          "last_comment_author": "coderabbitai"
        }
      ],
      "last_merged_pr_at": "2026-08-01T16:50:22Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 399,
          "created_at": "2022-05-03T08:11:35Z",
          "last_comment_at": "2026-07-26T14:40:47Z",
          "last_comment_author": "MuhammadQuran17"
        },
        {
          "number": 2004,
          "created_at": "2024-04-16T11:35:35Z",
          "last_comment_at": "2026-03-11T08:18:49Z",
          "last_comment_author": "andrasbacsai"
        },
        {
          "number": 2110,
          "created_at": "2024-05-02T03:27:28Z",
          "last_comment_at": "2026-04-06T22:11:55Z",
          "last_comment_author": "kpietraszko"
        },
        {
          "number": 2218,
          "created_at": "2024-05-16T08:17:24Z",
          "last_comment_at": "2025-03-25T22:27:59Z",
          "last_comment_author": "andrasbacsai"
        },
        {
          "number": 2332,
          "created_at": "2024-05-31T09:53:19Z",
          "last_comment_at": "2026-04-16T13:43:42Z",
          "last_comment_author": "Kabi10"
        },
        {
          "number": 2346,
          "created_at": "2024-06-03T18:17:47Z",
          "last_comment_at": "2026-05-24T11:45:54Z",
          "last_comment_author": "DYSfu"
        },
        {
          "number": 2377,
          "created_at": "2024-06-07T14:30:52Z",
          "last_comment_at": "2026-05-12T11:05:21Z",
          "last_comment_author": "rodrigouroz"
        },
        {
          "number": 2378,
          "created_at": "2024-06-07T14:35:39Z",
          "last_comment_at": "2026-05-06T03:27:55Z",
          "last_comment_author": "harishn1408"
        },
        {
          "number": 2389,
          "created_at": "2024-06-08T15:48:14Z",
          "last_comment_at": "2026-06-25T17:34:20Z",
          "last_comment_author": "Holo795"
        },
        {
          "number": 2390,
          "created_at": "2024-06-08T15:53:01Z",
          "last_comment_at": "2026-05-19T00:30:25Z",
          "last_comment_author": "brunobrise"
        },
        {
          "number": 2495,
          "created_at": "2024-06-12T13:38:52Z",
          "last_comment_at": "2026-05-13T05:11:14Z",
          "last_comment_author": "CatfishW"
        },
        {
          "number": 2499,
          "created_at": "2024-06-12T14:08:37Z",
          "last_comment_at": "2026-05-31T15:02:50Z",
          "last_comment_author": "jaxassistant55"
        },
        {
          "number": 2521,
          "created_at": "2024-06-13T09:03:50Z",
          "last_comment_at": "2026-06-14T11:09:48Z",
          "last_comment_author": "HT-Moh"
        },
        {
          "number": 2543,
          "created_at": "2024-06-14T08:10:09Z",
          "last_comment_at": "2026-05-21T12:26:19Z",
          "last_comment_author": "odanielschrage"
        },
        {
          "number": 2570,
          "created_at": "2024-06-16T10:18:53Z",
          "last_comment_at": "2024-12-19T19:20:36Z",
          "last_comment_author": "traskat"
        },
        {
          "number": 2705,
          "created_at": "2024-06-27T14:09:05Z",
          "last_comment_at": "2025-12-05T22:33:46Z",
          "last_comment_author": "FickleLife"
        },
        {
          "number": 2806,
          "created_at": "2024-07-12T07:53:26Z",
          "last_comment_at": "2025-11-05T18:10:24Z",
          "last_comment_author": "janviehweger"
        },
        {
          "number": 2854,
          "created_at": "2024-07-17T09:11:32Z",
          "last_comment_at": "2026-02-08T09:25:33Z",
          "last_comment_author": "coder966"
        },
        {
          "number": 2862,
          "created_at": "2024-07-17T19:09:45Z",
          "last_comment_at": "2025-11-12T15:30:15Z",
          "last_comment_author": "ItzAmirreza"
        },
        {
          "number": 2912,
          "created_at": "2024-07-22T11:19:40Z",
          "last_comment_at": "2026-03-09T23:26:53Z",
          "last_comment_author": "BanovMiroslav"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/coollabsio/coolify",
    "host": "github.com",
    "name": "coolify",
    "owner": "coollabsio"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "excellent",
      "name": "Overall health",
      "note": "The weighted overall 74 is calibrated to 88 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 74,
            "calibrated": 88,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 88,
      "inputs": {
        "security": 52,
        "vitality": 100,
        "community": 95,
        "governance": 55,
        "calibration": "2026-08-02",
        "engineering": 70,
        "ai_readiness": 59,
        "weighted_overall_raw": 74
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "exceptional",
        "name": "Vitality",
        "value": 100,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "exceptional",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "commits_last_year": 4299,
              "human_commit_share": 0.99,
              "days_since_last_push": 0,
              "active_weeks_last_year": 52
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "52/52 weeks with commits",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 52
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "4299 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 4299
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "exceptional",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v4.2.0",
              "releases_from_tags": false,
              "days_since_latest_release": 12,
              "mean_days_between_releases": 13.2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 12 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 12
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~13.2 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 13.2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "exceptional",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 4,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 4 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "exceptional",
        "name": "Community & Adoption",
        "value": 95,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "exceptional",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "forks": 5199,
              "stars": 60033,
              "watchers": 191,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "60,033 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 60033
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "5,199 forks",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 5199
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "191 watchers",
                "points": 12.7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 191
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": 1,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "readme_badge_services": [
                "shields.io"
              ],
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 55,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "weak",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 37,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 98,
              "top_contributor_share": 0.787
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 79% of commits",
                "points": 4.8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 79
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "98 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 98
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 37 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 53,
            "inputs": {
              "merged_prs": 2671,
              "open_issues": 629,
              "closed_issues": 3249,
              "prs_merged_7d": 3,
              "prs_decided_7d": 20,
              "prs_merged_30d": 13,
              "prs_decided_30d": 57,
              "issue_closed_ratio": 0.838,
              "closed_unmerged_prs": 2176,
              "first_time_authors_30d": 8,
              "first_time_prs_merged_30d": 1,
              "first_time_prs_decided_30d": 9
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "84% of issues closed",
                "points": 35.2,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 84
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "2671/4847 decided PRs merged",
                "points": 16.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 2671,
                      "decided": 4847
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "1/9 first-time contributors' PRs merged in 30d",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "newcomer_prs_merged",
                    "params": {
                      "days": 30,
                      "merged": 1,
                      "decided": 9
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/10 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "followers": 1838,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "coollabsio",
              "public_repos": 43,
              "account_age_days": 2370
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "1,838 followers of coollabsio",
                "points": 23.5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1838,
                      "login": "coollabsio"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "43 public repos, account ~6 yr old",
                "points": 24,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 43
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 6
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 70,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "15 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "10 out of 10 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [
                "nodejs",
                "mysql",
                "php",
                "docker",
                "self-hosting",
                "redis",
                "svelte",
                "databases",
                "nextjs",
                "coolify",
                "deployment",
                "docker-compose",
                "inertiajs",
                "laravel",
                "mariadb",
                "postgres",
                "self-hosted",
                "server",
                "static-site",
                "svelte5"
              ],
              "has_wiki": false,
              "homepage": "https://coolify.io",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://coolify.io",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "20 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 52,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "weak",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Dangerous-Workflow, Packaging, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "dangerous_workflow",
                    "packaging",
                    "signed_releases",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 48,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 14,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 4,
              "scorecard_aggregate": 4.8
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "10 out of 10 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/10 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 37 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no workflows found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 1",
                "points": 0.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "No tokens found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "8 existing vulnerabilities detected",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "good",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 359 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 359
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 70,
            "inputs": {
              "source": "osv",
              "advisories": 8,
              "affected_packages": 4,
              "assessed_packages": 359,
              "unassessed_packages": 0,
              "affected_by_severity": "high 2, moderate 2",
              "direct_affected_packages": 2
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "2 affected: ws 8.20.1 (high 7.5), guzzlehttp/guzzle 7.12.1 (moderate 5.9)",
                "points": 12.2,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 2,
                      "packages": "ws 8.20.1 (high 7.5), guzzlehttp/guzzle 7.12.1 (moderate 5.9)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory has been public longer than 90 days",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "advisories_none_stale",
                    "params": {
                      "days": 90
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "exceptional",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 359,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "exceptional",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 10
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 59,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.859,
              "agent_instruction_files": [
                ".cursor/rules/coolify-ai-docs.mdc",
                "AGENTS.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 18856
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".cursor/rules/coolify-ai-docs.mdc, AGENTS.md, CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".cursor/rules/coolify-ai-docs.mdc, AGENTS.md, CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "85 of 99 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 85,
                      "sampled": 99
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "weak",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 41,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "composer.lock",
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.01
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "1 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 1,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 1",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "primary_language": "PHP",
              "largest_source_bytes": 5749518,
              "source_files_sampled": 2122,
              "oversized_source_files": 32
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "PHP without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "PHP"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "32/2122 source files over 60KB",
                "points": 54.2,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 2122,
                      "oversized": 32
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "moderate",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "example_dirs": [],
              "has_mcp_signal": true,
              "api_schema_files": [
                "openapi.json",
                "openapi.yaml"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "openapi.json, openapi.yaml",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "openapi.json, openapi.yaml"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "labels": [
        "network-service"
      ],
      "scores": {
        "mcp-server": 3,
        "network-service": 12
      },
      "primary": "network-service",
      "evidence": [
        {
          "tier": "declared",
          "label": "library",
          "source": "composer.type:project",
          "weight": -8
        },
        {
          "tier": "declared",
          "label": "library",
          "source": "npm.private",
          "weight": -6
        },
        {
          "tier": "dependencies",
          "label": "network-service",
          "source": "dep:laravel/framework",
          "weight": 4
        },
        {
          "tier": "structure",
          "label": "mcp-server",
          "source": "mcp_signal",
          "weight": 3
        },
        {
          "tier": "structure",
          "label": "network-service",
          "source": "api_schema",
          "weight": 3
        },
        {
          "tier": "structure",
          "label": "network-service",
          "source": "tree.compose",
          "weight": 3
        },
        {
          "tier": "tags",
          "label": "network-service",
          "source": "tag:self-hosted",
          "weight": 2
        }
      ],
      "artifacts": [
        {
          "path": "composer.json",
          "labels": [],
          "ecosystem": "packagist"
        },
        {
          "path": "docker/coolify-realtime/package.json",
          "labels": [],
          "ecosystem": "npm"
        },
        {
          "path": "package.json",
          "labels": [],
          "ecosystem": "npm"
        }
      ],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": false
    },
    "metrics_version": "2.3.2"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "First-time contributor figures cover 12 of 29 authors (cap 12)",
    "Could not fetch packagist package 'coollabsio/coolify' from its registry"
  ],
  "report_type": "repository",
  "generated_at": "2026-08-03T14:55:01.873391Z",
  "schema_version": "0.30.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/c/coollabsio/coolify.svg",
  "full_name": "coollabsio/coolify",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v2.3.2, schema v0.30.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statistics.