ШІ-інструменти та скрипти
Перевірка конфігурації Fly.io
Перевіряє fly.toml перед деплоєм на Fly.io: секрети в [env] і аргументах збирання, бази даних на публічних портах, statics, що віддають ваш вихідний код, непримусовий HTTPS, відсутні перевірки працездатності, розбіжності портів і налаштування, які Fly відхиляє.
Що ви отримаєте: 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
ШІ-інструменти та скрипти
Перевірка конфігурації Fly.io
Перевіряє fly.toml перед деплоєм на Fly.io: секрети в [env] і аргументах збирання, бази даних на публічних портах, statics, що віддають ваш вихідний код, непримусовий HTTPS, відсутні перевірки працездатності, розбіжності портів і налаштування, які Fly відхиляє.
Getly відкрив завантажені файли й не знайшов нічого, що завадило б їх відкрити. Це не антивірусна перевірка і не оцінка якості.
Теги
Поширені запитання
Чи отримаю я доступ одразу?
Так. Це цифровий товар: ви можете завантажити його одразу після оплати, просто зі своєї бібліотеки.
Чи можна використовувати його в комерційних проєктах?
Так. Комерційне використання дозволено: користуйтеся в особистому бізнесі та в тому, що продаєте. Ви не можете перепродавати чи поширювати сам файл.
Яка у вас політика повернення коштів?
Ви можете запросити повернення коштів протягом 30 дн. Якщо щось не так, подайте запит зі свого замовлення, і команда Getly його розгляне.
Які формати та розміри файлів я отримаю?
Ви завантажите 1 файл - ZIP - загалом 46.79 KB.
Чи отримую я безкоштовні оновлення?
Так: коли продавець випускає нову версію, ви можете повторно завантажити свіжі файли зі своєї бібліотеки безкоштовно. Останні оновлення дивіться в журналі змін.
Ціна
$5.00



