🧰 Бесплатные сервисы для OSS: каталог и чеклист
Статус: проверено по официальным страницам · 2026-08-17 (условия OSS-программ часто меняются — при подключении спустя месяцы перепроверять pricing-страницу). Контекст: организация fortemate (Free), публичные репо; приватные остаются на личном аккаунте. Уже используются: SonarCloud (4 Scala-репо под rabestro), CodeRabbit, Codecov, CodeQL/Dependabot/secret scanning, Uptime Kuma + Grafana на homelab.
Три находки, которые важнее всего каталога
- SonarCloud-проекты НЕ переносятся между организациями. SonarCloud-организация жёстко привязана 1:1 к GitHub-аккаунту; официальный ответ SonarSource: «recreate your project… essentially start from 0». Для 4 Scala-репо при переносе в fortemate: новая SonarCloud-организация (кнопка «Get SonarQube for OSS», без заявки) → пересоздать проекты → новые project key +
SONAR_TOKENв CI каждого репо → переиздать бейджи. История дашбордов/quality gate обнуляется — это цена переезда, и тянуть нельзя: после transfer репо старая привязка сама перестаёт получать анализы. Есть неофициальный ускоритель рутины:sonar-solutions/rebind-sqc-projects. - Анти-коммерческие пункты в OSS-программах конфликтуют с open-core. Crowdin требует «no commercial products related to the open-source project», Docker-Sponsored OSS — «no pathway to commercialization». С планом «AGPL-ядро + закрытые EV-модули» заявки туда либо отклонят, либо придётся лукавить — не подавать. (У 1Password, наоборот, явное исключение для GitHub Sponsors — совместим.)
- Codespaces для организаций не бесплатны вообще: личные free-квоты (120 ч/мес) на organization-owned репо не действуют — платно с первого часа. Не заводить.
Мелкая, но приятная: поиск по докам уже есть «из коробки» — Starlight включает Pagefind, Quartz включает FlexSearch. Algolia DocSearch не нужен.
Ставить сейчас (чеклист подключения на организацию)
| # | Сервис | Что делает | Как подключить | Заметки |
|---|---|---|---|---|
| 1 | GitHub Security Configurations | CodeQL + secret scanning + push protection + dependency review на все репо организации разом, включая будущие | Org Settings → Advanced Security → применить GitHub-recommended configuration | бесплатно для публичных даже на Free-org; сделать ПЕРВЫМ, до волн переноса |
| 2 | CodeRabbit | AI-ревью PR; Pro-план бесплатен навсегда для публичных репо | установить GitHub App на fortemate (All repositories) | .coderabbit.yaml едет с репо; судьба накопленных learnings при transfer не задокументирована — при желании спросить саппорт |
| 3 | SonarCloud | SAST/качество для Scala 3; OSS-план: безлимитные публичные репо | создать организацию fortemate через «Get SonarQube for OSS» | миграция проектов = пересоздание (см. находку №1); синхронно с переносом каждого Scala-репо |
| 4 | OpenSSF Scorecard | публичный бейдж безопасности репо | workflow-файл per-repo (push+cron), раскатать шаблоном как AGENTS.md | language-agnostic; фундамент для Best Practices Badge позже |
| 5 | StepSecurity harden-runner | мониторинг/фильтрация egress в Actions, защита цепочки поставки | 1 строка-шаг в workflow; Community-tier бесплатен навсегда для публичных | приоритет — релизные workflow (Central, ghcr) |
| 6 | Trivy (action) | сканирование Docker-образов ботов | шаг в CI Docker-репо; не SaaS, лимитов нет | закрывает нишу Snyk Container бесплатно |
| 7 | GitHub artifact attestations | SLSA-provenance для ghcr-образов и jar’ов | шаг attest-build-provenance в релизных workflow (id-token: write, attestations: write) | бесплатно только для публичных репо |
| 8 | Socket.dev | поведенческий анализ npm-зависимостей (малварь, не CVE) | GitHub App на npm-репо (play, доки) | «always free for open source»; не дублирует CodeQL/Dependabot |
| 9 | Sentry for Open Source ⏳ | отлов ошибок SPA + play-api (сейчас фронт-ошибки не собираются вообще) | ✉️ заявка отправлена 17.08 — sentry.io/sponsorship; ⚠️ сначала регистрируется организация в Sentry (slug → fortemate.sentry.io), форма спрашивает её URL | спонсорский план щедрый и без term limit; единственное трение — их пожелание «friendly license like Apache or MIT», AGPL в список не входит |
| 10 | JetBrains OSS (All Products Pack) ⏳ | бесплатная лицензия на все IDE | ✉️ заявка отправлена 17.08 — прямая форма jetbrains.com/shop/eform/opensource (на маркетинговой странице ссылки нет); в Repository URL указан dicechess-engine-scala — активность проверяется автоматически по коммитам кода | выдаётся контрибьютору (rabestro), не организации; на год, продлеваемо; при появлении платного продукта — переходить на коммерческую лицензию |
| 11 | 1Password for Open Source ⏸️ | team-хранилище секретов проекта (Terraform-креды, токены) | ⏸️ на паузе (решение владельца 17.08) — см. «Заявки: статус» ниже | явное исключение для GitHub Sponsors — с open-core совместим |
Заявки: статус (обновлено 2026-08-17)
| Сервис | Статус | Ссылка на форму | Что дальше |
|---|---|---|---|
| JetBrains OSS | ⏳ отправлена 17.08 | jetbrains.com/shop/eform/opensource | ждём ответа; активность проверяется автоматически, ответ обычно быстрый |
| Sentry OSS | ⏳ отправлена 17.08 | sentry.io/sponsorship | ждём; при вопросе про AGPL — ответить, что стартер-киты MIT, а AGPL защищает платформу от закрытых форков, не ограничивая игроков |
| 1Password OSS | ⏸️ на паузе | шаблон issue | вернуться после фазы B (миграции сайта) — причины ниже |
Почему 1Password на паузе
Две причины, обе про сроки, а не про пригодность:
- Заявка — публичный GitHub issue в репозитории
1Password/for-open-source, а не приватная форма. Имя проекта, домен и почта становятся индексируемыми — это было бы первым публичным упоминанием бренда Fortemate, до анонса и до миграции сайта. Публичным станет и отказ, если он случится. - Требование «permissive open source license» сформулировано жёстче, чем у Sentry, а наше ядро под AGPL (copyleft). При этом в их же шаблоне заявки поле «License type» приводит GPL как пример — то есть формулировка неаккуратная и copyleft на практике, похоже, проходит. Разрешается письмом на
opensource@1password.comдо публичной заявки (README прямо это предлагает; в шаблоне есть и приватный путь для тех, кто не может публиковать почту).
Предусловия, когда вернёмся: нужен именно Teams-аккаунт (личные и family не подходят; тип аккаунта меняется в настройках), и 🔑 второго человека надо добавить в группу Owners — 1Password рекомендует это против блокировки, и это тот же bus-factor-аргумент, что и со вторым owner’ом GitHub-организации.
Настройка Sentry после одобрения — не забыть
- ⚠️ Не включать согласие «use your Sentry data … to help validate our models» (Settings → Usage & Billing → Legal & Compliance → Service Data Usage). Проверено по докам: Seer и прочий AI работают без него, то есть отказ ничего не отключает. Против: выгоды для нас ноль; в набор данных входят DOM interactions (session replays) — обработка данных игроков сверх отладки, а Privacy Policy у нас пока нет; и главное — «code from your connected repositories» при доступе интеграции к приватным репо утащило бы закрытые EV-модули в чужой оценочный датасет. Тумблер account-wide, по репозиториям не гранулируется. Перепроверить, что выключен, после активации спонсорского плана — смена плана может сбрасывать настройки.
- При подключении SDK: включить Data Scrubbing, Session Replay не включать без явной нужды.
Позже (привязано к этапам роадмапа)
CLA — искать сервис❌ отменено 17.08: CLA v1.0 уже реализован своими силами в engine-scala, play, play-api, analytics (CLA.md + self-service реестр.github/cla-signatures.json+ workflow наpull_request_target, без сторонних SaaS). Сторонние варианты (cla-assistant.io, форк contributor-assistant) не нужны — наш лучше. DCO app ставить НЕ надо: он слабее и путал бы контрибьюторов вторым обрядом. Осталась работа: починить owner-skip до переноса в org (сломается:context.repo.ownerстанетfortemate) и закрыть AGPL-репоdicechess-bot-java, где CLA нет. Полный разбор: dco-vs-cla.- Weblate (план Libre) или inlang Fink — к фазе i18n (play#261): Weblate — 160k строк бесплатно для публичных, без анти-коммерческого пункта; Fink — нативный для Paraglide, но «Free Beta». Crowdin — не подавать (находка №2).
- BrowserStack for Open Source — к публичному запуску: безлимитные Live/Automate/Percy (визуальная регрессия включена — отдельный Chromatic не нужен), 5 параллелей; реальные устройства поверх Playwright-смоуков.
- OpenSSF Best Practices Badge — после того как Scorecard закроет технические дыры; ручная анкета на часы работы.
- Open Collective — только если получателей средств станет больше одного (комиссия ~10% против 0% у GitHub Sponsors).
- Snyk — вернуться для приватных EV-модулей (там CodeQL недоступен без Enterprise); free-лимитов (200 SCA-тестов/мес) на 30 публичных репо не хватит, а для пары приватных — хватит.
Пропустить (и почему)
| Сервис | Причина |
|---|---|
| DeepSource / Codacy / CodeFactor / Coveralls | дублируют SonarCloud+Codecov; поддержка именно Scala 3 не подтверждена |
| Algolia DocSearch | Pagefind (Starlight) и FlexSearch (Quartz) уже встроены; без утечки запросов читателей |
| Crowdin | анти-коммерческий пункт против open-core (находка №2) |
| Docker Hub DSOS | «no pathway to commercialization» + ghcr уже закрывает нишу |
| GitHub Codespaces | для организаций не бесплатен вообще (находка №3) |
| Grafana Cloud Free | свой Grafana на homelab с лучшим retention (14 дней у бесплатного облака) |
| Chromatic | Percy входит в BrowserStack OSS-грант |
| LambdaTest/TestMu | дублирует BrowserStack; бренд в процессе ребрендинга (01.2026) |
| Codecov | ⚠️ решение владельца 17.08: не переустанавливать на организацию — SonarCloud с настроенным покрытием закрывает главную функцию (Quality Gate по «Coverage on New Code» в PR) в том же месте, где уже живут баги/смеллы. Сверх этого Codecov даёт per-file diff-таблицы (косметика) и flags/carryforward для матричных сборок (у нас один отчёт на репо). Минус сервис = минус точка отказа и минус чужой доступ к коду. Вернуть — установкой App за 5 минут, если реально не хватит diff-аннотаций. ⚠️ Условие отказа: покрытие в Sonar ДОЛЖНО быть настроено и включено в Quality Gate, иначе метрика просто исчезнет. NB: Codecov с 02.06.2026 принадлежит Harness, не Sentry |
| Renovate / Scala Steward | Dependabot умеет sbt с 26.05.2026 (version updates) и уже раскатан; два бот-бампера = шум. Вернуться, если упрёмся в отсутствие sbt-security-апдейтов (их у Dependabot нет) или понадобятся Scalafix-миграции (ниша Scala Steward) |
Настройка покрытия в SonarCloud (условие отказа от Codecov)
Отказ от Codecov имеет смысл только когда покрытие реально доезжает до Sonar и участвует в гейте. Что нужно в каждом репо:
| Стек | Отчёт | Свойство Sonar |
|---|---|---|
| Scala (sbt) | scoverage XML | sonar.scala.coverage.reportPaths |
| Java (Maven) | JaCoCo XML (target/site/jacoco/jacoco.xml) | sonar.coverage.jacoco.xmlReportPaths |
| TypeScript (SvelteKit) | LCOV (coverage/lcov.info) | sonar.javascript.lcov.reportPaths |
Плюс: включить условие «Coverage on New Code» в Quality Gate, и ⚠️ выключить Automatic Analysis в каждом новом проекте (Administration → Analysis Method) — иначе она конфликтует с CI-сканом и отчитывается без покрытия (в bot-java именно это и наблюдалось: 400 ncloc, метрики coverage нет).
🔗 Связанное
- org-migration-benefits — миграция репо в организацию (SonarCloud-миграция — новый пункт цены переноса).
- brand-fortemate §8 — фазовый план; Security Configurations ставить до волн фазы D.
- 🏷️ Раздел Fortemate.