Перейти к основному содержимому

Меню команд

Перейти на страницу или искать в каталоге

ИИ-инструменты и скрипты

Проверка конфигурации Fly.io

Проверяет fly.toml перед деплоем на Fly.io: секреты в [env] и аргументах сборки, базы данных на публичных портах, statics, раздающие ваш исходный код, отсутствие принудительного HTTPS, отсутствующие проверки работоспособности, несовпадение портов и настройки, которые Fly отклоняет.

$5.00

Что вы получите: 1 файл · 46.79 KB · ZIP

Варианты покупки

Описание товара

SESSION_SECRET в [env] попадает ко всем, кто может читать репозиторий, блок [[services]] для Redis дает кешу публичный адрес при первом же деплое, а запись [[statics]], указывающая на /app, отдает ваш .env и исходные файлы любому, кто их запросит. Этот навык находит такие ошибки и другие ошибки конфигурации Fly.io, перечисленные ниже, еще до деплоя и объясняет, как исправить каждую из них.

Ваш агент запускает сканер на fly.toml и его вариантах (fly.staging.toml, fly.production.toml), а также на Dockerfile, который fly deploy собирает для него (его WORKDIR, COPY . ., ENV PORT и команда запуска). Он читает TOML с номером строки для каждого ключа, знает значения по умолчанию для [http_service] и [[services]] (внутренний порт 8080, порты 80 и 443), обработчики tls и pg_tls и группы процессов, пропускает плейсхолдеры, ссылки ${...} и ключи, публичные по замыслу, и никогда не запускает flyctl, Docker или ваше приложение. Результат: BLOCK, REVIEW или NOT FLAGGED с указанием файла, строки, причины и более безопасного подхода. Секреты никогда не выводятся.

Что проверяется

BLOCK (исправить до выпуска)

  • F01: пароли, токены, ключи и строки подключения с паролем, записанные в [env], [build.args], командах процессов, release или console (в том числе флаг и его значение в отдельных элементах массива), заголовках проверок работоспособности или в raw_value блока [[files]]
  • F02: порт базы данных или кеша (PostgreSQL, MySQL, Redis, MongoDB и другие), открытый как обычный TCP без обработчика tls или pg_tls, если только комментарий не помечает приложение как приватное (# flycast only)
  • F03: [[statics]], которые раздают / или системную папку, либо папку, в которую Dockerfile копирует весь проект

REVIEW (проверить перед релизом)

  • F11: [http_service] или http-порт без force_https = true
  • F12: SSH, порт базы данных с TLS на прокси или обычный порт базы данных в приложении, помеченном как приватное
  • F13: публичный сервис без какой-либо проверки работоспособности
  • F14: образ в [build] или образ machine_checks без тега или с latest
  • F15: internal_port, который отличается от PORT или HTTP_PORT в [env], от ENV PORT в Dockerfile или от флага --port/--bind в команде запуска, либо приложение, привязанное к localhost
  • F16: включенный auto_stop_machines в приложении базы данных или кеша, у которого есть том
  • F17: release_command, которому нужен том (release-команды выполняются без томов), например миграция SQLite
  • F18: настройки, которые Fly отклоняет или игнорирует: canary или bluegreen с томами, bluegreen без проверки работоспособности, force_https на не-http порту, том, смонтированный в /, переменные FLY_, suspend со swap или больше 2 ГБ (memory, memory_mb или пресет size), а также неизвестные группы процессов
  • F19: переменная в [env] или [build.args] с секретным именем, которой присвоено стандартное слово вроде password, changeme или admin
  • F20: [[statics]] на корневой веб-папке nginx, Caddy или httpd, которую Dockerfile заполняет всем контекстом сборки

Что входит в комплект

  • Сканер (Python 3.9+, только стандартная библиотека)
  • Руководство по правилам с причиной, более безопасным подходом и ссылкой на официальную документацию Fly.io для каждого правила
  • Рискованный и безопасный примеры проекта (веб-приложение, приложение Redis и статический сайт документации, каждый с fly.toml, а также их Dockerfile), а также реальный отчет сканера по рискованному примеру

Ограничения

Он читает fly.toml и Dockerfile в том виде, в каком они записаны. Он не видит IP-адреса вашего приложения, значения, заданные через fly secrets, и изменения, сделанные через fly scale или Machines API, поэтому правила для портов баз данных и SSH исходят из того, что по умолчанию Fly выдает публичные адреса приложениям с сервисами (комментарий "# flycast only" помечает приложение как приватное), а F19 не может определить, переопределяет ли секрет Fly значение по умолчанию. Шаблон fly launch для большинства фреймворков не создает проверку работоспособности, так что там ожидайте F13. Порты, выбранные в коде или в Procfile, не отслеживаются, а безопасность самого Dockerfile не проверяется. NOT FLAGGED не является гарантией.

Содержимое

Один ZIP-файл с 23 файлами: SKILL.md, сканер в scripts/ (6 файлов Python), references/rules.md (каждое правило с причиной и более безопасным подходом) и examples/ (14 файлов примеров плюс report.md, реальный вывод сканера по рискованному примеру).

Как использовать: Это навык для агента: папка с файлом SKILL.md и скриптами Python, которые может запускать ИИ-агент для программирования, например Claude Code, Cursor или Codex CLI. Распакуйте его в папку навыков вашего агента (для Claude Code: ~/.claude/skills/), затем попросите агента проверить ваш проект. Скрипты также работают самостоятельно с Python 3.9 или новее, ничего устанавливать не нужно. Они только читают ваши файлы: без доступа к сети, и ничего никуда не отправляется.

Что вы получите

1 файл · 46.79 KB

  • fly-io-config-check-1.0.0.zipZIP · 46.79 KB
ЛицензияКоммерческое использование разрешено
Проверка пакетаПройдена

Getly открыл загруженные файлы и не нашёл ничего, что помешало бы их открыть. Это не проверка на вирусы и не оценка качества.

Опубликовано12 нояб. 2026 г.
Размер файла46.79 KB
Формат файлаZIP
Версияv1.0

Теги

flyiofly-tomldeploymentsecuritydevopsai agent skill
R
RR HH

Частые вопросы

Доступ открывается сразу?

Да. Это цифровой товар - скачать его можно сразу после оплаты, прямо из своей библиотеки.

Можно ли использовать в коммерческих проектах?

Да. Коммерческое использование разрешено: в своём бизнесе и в том, что вы продаёте. Перепродавать и распространять сам файл нельзя.

Какие условия возврата?

Запросить возврат можно в течение 30 дней. Если что-то не так, оформите заявку в своём заказе - её рассмотрит команда Getly.

Какие форматы и размеры файлов я получу?

Вы скачаете 1 файл - ZIP - всего 46.79 KB.

Обновления бесплатны?

Да - когда продавец выпускает новую версию, вы можете бесплатно скачать актуальные файлы из своей библиотеки. Последние изменения смотрите в истории версий.

Цена

$5.00