Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.30.0 · метрики 2.5.0 · 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 зірки⑂ 5 199 форківз січ. 2021 р.Переглянути на GitHub ↗
ТипМережевий сервісяк це визначено

coollabsio/coolify має індекс здоров’я 88 зі 100, що відповідає смузі «Відмінний». Найвищий показник — Vitality (100/100), найнижчий — Security (52/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконує один учасник.

88
загалом / 100
Відмінний

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє зважене середнє, відкаліброване за розподілом публічного реєстру, тож діапазони мають перцентильний зміст; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 34 («У зоні ризику»).

88
Винятковий93-100Верхній щабель реєстру (≈ топ-5%); відповідає практично всім перевіреним критеріям
Відмінний80-92Сильний за всіма напрямами; незначні прогалини
Добрий65-79Здоровий; прогалини обмежені та керовані
Помірний50-64Прийнятний, але з помітними прогалинами; рекомендовано перевірку
Слабкий35-49Суттєві недоліки в кількох сферах
У зоні ризику20-34Суттєві слабкі місця; впровадження потребує обережності
Критичний1-19Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Зважений загальний бал 74 калібровано до 88 за шкалою опублікованого індексу (калібрування реєстру 2026-08-02).

Власність

coolLabsОрганізація
1 838 підписників43 публічні репозиторіїз лют. 2020 р.

За цим репозиторієм стоїть організація — спільна, підзвітна опіка, здатна пережити будь-якого окремого мейнтейнера.

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

100Винятковий · 21% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
36/36Ритм комітів — 52/52 тижнів із комітами
18/18Обсяг комітів — 4 299 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year4 299
human_commit_share0,99
days_since_last_push0
active_weeks_last_year52
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 100 релізів
36/36Свіжість релізів — останній реліз 12 дн. тому
27/27Ритм релізів — реліз кожні ~13,2 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count100
latest_release_tagv4.2.0
releases_from_tagsні
days_since_latest_release12
mean_days_between_releases13,2
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

95Винятковий · 17% загального індексу
Як обчислюється оцінка
60/60Зірки — 60 033 зірок
25/25Форки — 5 199 форків
12.7/15Спостерігачі — 191 спостерігачів
Використані вхідні дані
forks5 199
stars60 033
watchers191
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (Apache-2.0)
18/18Настанови CONTRIBUTING
13.5/13.5Кодекс поведінки
0/7.2Шаблон issue
6.3/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
readme_badges1
has_contributingтак
has_issue_templateні
has_code_of_conductтак
readme_badge_servicesshields.io
has_pull_request_templateтак

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

55Помірний · 23% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
4.8/22.5Розподіл комітів — головний контриб’ютор — автор 79% комітів
13.5/13.5Широта контриб’юторів — 98 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 37 contributing companies or organizations
Використані вхідні дані
bus_factor1
contributors_sampled98
top_contributor_share0,787
Як обчислюється оцінка
35.2/42Вирішення issue — закрито 84% issue
16.5/30Прийняття PR — злито 2 671/4 847 вирішених PR
1.4/13Newcomer PR acceptance — злито 1/9 PR від новачків за 30 дн.
0/15OpenSSF Scorecard: Code-Review — Found 0/10 approved changesets -- score normalized to 0
Використані вхідні дані
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
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
23.5/25Охоплення власника — 1 838 підписників у coollabsio
24/25Послужний список — 43 публічних репозиторіїв, вік облікового запису ~6 р.
Використані вхідні дані
followers1 838
owner_typeOrganization
is_verified
owner_logincoollabsio
public_repos43
account_age_days2 370

Інженерна якість

Чи наявні базові інженерні практики та документація?

70Добрий · 19% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 15 процес(ів) CI
24/24Наявні тести
0/16Конфігурація лінтера
0/9.6Pre-commit-хуки
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
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigтак
has_linter_configні
has_precommit_configні
Як обчислюється оцінка
30/30README
0/25Каталог документації
15/15Сайт документації / домашня сторінка — https://coolify.io
10/10Опис репозиторію
10/10Теми — 20 тем
0/10Wiki
Використані вхідні дані
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_wikiні
homepagehttps://coolify.io
has_readmeтак
has_docs_dirні
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

52Помірний · 16% загального індексу

Стан безпеки

48Слабкий
Як обчислюється оцінка
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 — немає даних
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — 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 — немає даних
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 — немає даних
0/7.5Token-Permissions — немає даних
1.5/7.5Vulnerabilities — 8 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated14
scorecard_versionv5.5.0
checks_inconclusive4
scorecard_aggregate4,8
Виключено з оцінювання (немає даних або не застосовно): dangerous_workflow, packaging, signed_releases, token_permissions. Залишкові ваги перенормовано.
Як обчислюється оцінка
12.2/35Прямі залежності без відомих сповіщень — уражено 2: ws 8.20.1 (high 7.5), guzzlehttp/guzzle 7.12.1 (moderate 5.9)
0/25Непрямі залежності без відомих сповіщень — транзитивний набір не відокремлюється від залежностей розробки й тестування в цьому обсязі
40/40Немає задавнених сповіщень — жодне сповіщення не є публічним довше за 90 дн.
Використані вхідні дані
sourceosv
advisories8
affected_packages4
assessed_packages359
unassessed_packages0
affected_by_severityhigh 2, moderate 2
direct_affected_packages2
Виключено з оцінювання (немає даних або не застосовно): Непрямі залежності без відомих сповіщень. Залишкові ваги перенормовано. Звірено 359 резолвлених залежностей із OSV. Цей репозиторій не публікує пакета, який резолвить індекс, тож натомість оцінено граф залежностей репозиторію. Цей граф змішує закріплені версії для розробки й тестування зі справді постачаними залежностями, тож оцінюються лише задекларовані runtime-залежності; транзитивні знахідки подаються як контекст і в оцінку не входять. Досяжність не аналізується.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Має свідомо малу вагу (4%): агентний інструментарій — реальний сигнал супроводу, але репозиторій без нього все одно може отримати 100/100.

59Помірний · 4% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — .cursor/rules/coolify-ai-docs.mdc, AGENTS.md, CLAUDE.md
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 85 з 99 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,859
agent_instruction_files.cursor/rules/coolify-ai-docs.mdc, AGENTS.md, CLAUDE.md
agent_instruction_max_bytes18 856
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
0/11Конфігурація лінтера / форматера
0/11Статична перевірка типів
10/10Відтворюване середовище — Dockerfile, lockfile
0/10Підтверджена практика роботи з агентами — серед останніх 100 комітів немає створених агентом
8/8Автоматизоване супроводження — 1 з останніх 100 комітів — автоматичні оновлення залежностей
1/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
Використані вхідні дані
has_nixні
has_testsтак
lockfilescomposer.lock, package-lock.json
has_dockerfileтак
typed_languageні
bootstrap_files
has_devcontainerні
has_linter_configні
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0,01
Як обчислюється оцінка
0/45Типізований код — PHP без конфігурації перевірки типів
54.2/55Керовані розміри файлів — 32/2 122 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languagePHP
largest_source_bytes5 749 518
source_files_sampled2 122
oversized_source_files32
Як обчислюється оцінка
40/40Схема API (OpenAPI/GraphQL/proto) — openapi.json, openapi.yaml
20/20Сервер MCP
0/40Придатні до запуску приклади
Використані вхідні дані
example_dirs
has_mcp_signalтак
api_schema_filesopenapi.json, openapi.yaml

Ключові факти

60 033зірок GitHub
98контриб'юторів
4 299комітів за останні 12 місяців
0днів від останнього пушу
100релізів
1бас-фактор
629відкритих issue
npm, Packagistпакетних екосистем

Попередження щодо збору даних

  • 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

Докладніше

Історія зірок і форків 0 ★ / 5 199 ⇿
0Зірки
5 199Форки
4Релізи

Коли додано кожну зірку й форк — зібрано з GitHub і згруповано за днями. Кумулятивне зростання розміщено просто над денними додаваннями, з яких воно складається, тож їх видно одне проти одного: рівномірне органічне накопичення виглядає зовсім інакше, ніж різкий короткочасний сплеск. Там, де цю різницю можна виміряти, її подано як автентичність росту.

Показано лише найновішу історію — цей репозиторій перевищує вікно збору, тож найраніша історія не захоплена.

4 0004 4004 8005 2005 199412026-052026-062026-08
Мажорні 0Мінорні 2Патчі 2
OpenSSF Scorecard 4.8 / 10
4.8сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).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
н/дDangerous-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
н/дPackagingpackaging 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
н/дSigned-Releasesno releases found
н/дToken-PermissionsNo tokens found
2Vulnerabilities8 existing vulnerabilities detected
Прямі залежності 56
РеєстрПакетОбмеження версіїМаніфест
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
Усі залежності 359

Повний розв'язаний набір залежностей із графа залежностей GitHub: 56 прямих і 303 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

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

Цей репозиторій не публікує пакета, який розпізнає індекс, тож оцінено його власний граф залежностей — 359 пакетів, серед яких є й піниї розробки та тестування, що ніколи не постачаються: 4 мають відомі сповіщення, з них 2 прямі.

ПакетВерсіяЗв'язокКритичністьСповіщеньВиправлено в
ws8.20.1прямависока18.21.0
postcss8.5.15непрямависока18.5.18
guzzlehttp/guzzle7.12.1прямапомірна57.15.1
guzzlehttp/psr72.12.1непрямапомірна12.12.3

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "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": {
      "top": [
        "application"
      ],
      "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.5.0"
  },
  "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"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v2.5.0, схема v0.30.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистика.