Самостоятельный хостинг Firecrawl: установка, проверка и реальные расходы
Разбираем самостоятельный хостинг Firecrawl: как развернуть и проверить стек, какие функции доступны и почему Cloud дешевле при 1,000–10,000 страницах.

Самостоятельный хостинг Firecrawl дает контроль над кодом и инфраструктурой, но не превращает управляемый сервис в бесплатный. Зафиксируйте версию v2.11.162, подтвердите работу реальным запросом к /v2/scrape, сохраните доказательства и только потом оценивайте стоимость эксплуатации. В приведенном ниже расчете за 30 дней Firecrawl Cloud стоит $0 за 1,000 базовых страниц и $44 за 10,000, а самостоятельное развертывание в первый месяц обходится в $725.20, если учесть явно заложенные шесть часов работы инженера.
Самостоятельный хостинг Firecrawl или Cloud: краткий ответ
Разворачивайте Firecrawl самостоятельно, если доступ к исходному коду, контроль над инфраструктурой или обязательная сетевая граница оправдывают владение всем стеком. Выбирайте Cloud, если задача сводится к преобразованию общедоступных URL в чистый контент. К тому же выводу Firecrawl приходит в руководстве по самостоятельному развертыванию: Cloud — самый быстрый поддерживаемый путь в продакшен, тогда как при self-hosted-развертывании вся техническая часть ложится на вашу команду.
Цифры для self-host — это бюджет, а не обещание производительности. Firecrawl не публикует проверенные минимальные требования к хосту, а в рамках этого запуска нельзя было выяснить, выдержит ли указанная машина любой из этих объемов. Честное основание платить больше — контроль. Экономию нужно доказать на своих страницах, при своем уровне параллелизма и своей доле ошибок.
Что на самом деле дает самостоятельный хостинг
Вы получаете ядро Firecrawl в подконтрольной инфраструктуре — и обязанность обслуживать все его зависимости. Cloud можно сравнить с полностью укомплектованной коммерческой кухней, а self-hosted-развертывание — с ее чертежом. Чертеж полезен: его можно изучать, менять и адаптировать. Но повара, пожарная инспекция, контроль холодильного оборудования и ночная смена к нему не прилагаются.
Стек по умолчанию для зафиксированной версии поддерживает основные маршруты scrape, crawl, map и search. Обработка через Fetch и Playwright тоже включена. При этом стек зависит от таких сервисов, как PostgreSQL, Redis и RabbitMQ, а эндпоинт готовности не проверяет всю цепочку целиком.
Это важно: ответ {"status":"ok"} означает лишь, что откликнулся один HTTP-эндпоинт. Он не доказывает, что запрос уйдет с хоста, страница отрисуется, пройдет через воркеры и вернется в формате Markdown. Минимально пригодное доказательство — успешный scrape-запрос.
Установка Firecrawl: используйте зафиксированный релиз
Берите Firecrawl v2.11.162, а не постоянно меняющуюся ветку main. Тег создан 30 июля 2026 года и указывает на коммит 7666c1f9ae8720a6bba271e0f60b6a217f8a5210. Фиксация версии гарантирует, что код, Compose-файл и инструкция по установке относятся к одному и тому же состоянию проекта.
Официальный список требований: Git, Docker Engine или Docker Desktop, Docker Compose v2, curl, свободный порт 3002 и достаточные ресурсы хоста для сборки и запуска нескольких сервисов. Firecrawl не указывает проверенную минимальную конфигурацию машины.
Зафиксируйте исходный код
Клонируйте Firecrawl и переключитесь на
v2.11.162. Запишите полученный коммит, чтобы следующий инженер мог воспроизвести развертывание.Создайте базовое окружение
Отключайте аутентификацию базы данных только для этой проверки в доверенной сети, оставьте имя базы PostgreSQL равным
postgresи задайте случайный пароль длиной не менее 32 символов. Не добавляйте.envв репозиторий.Соберите и проверьте все сервисы
Запустите Compose-стек, затем изучите вывод
docker compose ps --all. Долгоживущие сервисы должны работать, а одноразовые задачи инициализации — завершиться.Подтвердите работу реальным scrape-запросом
Сначала проверьте готовность, затем вызовите
/v2/scrapeдляhttps://example.com. Одного ответа эндпоинта готовности недостаточно.
git clone https://github.com/firecrawl/firecrawl.git
cd firecrawl
git checkout v2.11.162
git rev-parse HEAD
db_password="$(openssl rand -hex 32)"
printf 'USE_DB_AUTHENTICATION=false\nPOSTGRES_USER=postgres\nPOSTGRES_PASSWORD=%s\nPOSTGRES_DB=postgres\n' \
"$db_password" > .env
docker compose up --build -d
docker compose ps --all
curl --fail --silent --show-error --max-time 5 \
http://localhost:3002/v0/health/readiness
curl --fail-with-body --silent --show-error --max-time 75 \
-X POST http://localhost:3002/v2/scrape \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com","formats":["markdown"],"timeout":60000}'Scrape-запрос считается успешным, только если ответ содержит success: true, полученный Markdown и метаданные со значением statusCode: 200. Точный состав метаданных зависит от целевого сайта. Если проверка готовности проходит, а scrape-запрос — нет, изучите логи API и Playwright: зеленый индикатор работоспособности эти пути не задействовал.

Как сохранить отчет о проверке для другого инженера
Настройку нельзя считать проверенной, пока исходные доказательства не пережили текущую терминальную сессию. Приведенный ниже скрипт запускается из репозитория на зафиксированной версии и создает каталог с временной меткой. В нем сохраняются характеристики хоста, точный релиз, время сборки, состояние контейнеров, ответ эндпоинта готовности, 10 исходных ответов на scrape-запросы, сводка, один снимок потребления ресурсов, результат перезапуска и еще один успешный scrape-запрос.
Десятый URL использует зарезервированный домен .invalid, поэтому набор содержит преднамеренную ошибку и не зависит от случайного сбоя реального сайта. Остальные девять целей — неизменные общедоступные страницы. Перед запуском установите jq: он формирует JSON запросов и читает поля результатов.
#!/usr/bin/env bash
set -euo pipefail
base_url="${FIRECRAWL_BASE_URL:-http://localhost:3002}"
stamp="$(date -u +%Y%m%dT%H%M%SZ)"
out="firecrawl-verification-${stamp}"
mkdir -p "$out/responses"
actual_release="$(git describe --tags --exact-match)"
[[ "$actual_release" == "v2.11.162" ]] || {
printf 'Expected v2.11.162, found %s\n' "$actual_release" >&2
exit 1
}
{
printf 'checked_at_utc=%s\n' "$(date -u +%FT%TZ)"
printf 'release=%s\n' "$actual_release"
printf 'commit=%s\n' "$(git rev-parse HEAD)"
printf 'cpus=%s\n' "$(getconf _NPROCESSORS_ONLN)"
awk '/MemTotal/ {printf "memory_kib=%s\n", $2}' /proc/meminfo
uname -a
docker version
docker compose version
} > "$out/host.txt" 2>&1
setup_start="$(date +%s)"
docker compose up --build -d > "$out/compose-up.log" 2>&1
printf '%s\n' "$(( $(date +%s) - setup_start ))" > "$out/setup-seconds.txt"
docker compose ps --all --format json > "$out/containers-before.json"
curl --fail --silent --show-error --max-time 5 \
"$base_url/v0/health/readiness" > "$out/readiness.json"
targets=(
https://example.com
https://example.org
https://example.net
https://httpbin.org/html
https://www.iana.org/help/example-domains
https://www.rfc-editor.org/rfc/rfc9110
https://www.w3.org/TR/PNG/iso_8859-1.txt
https://docs.python.org/3/
https://www.firecrawl.dev/
https://fixture-failure.invalid/
)
printf 'index\turl\tcurl_exit\tsuccess\tstatus_code\n' > "$out/summary.tsv"
i=0
for target in "${targets[@]}"; do
i=$((i + 1))
response="$out/responses/$(printf '%02d' "$i").json"
payload="$(jq -n --arg url "$target" \
'{url:$url,formats:["markdown"],timeout:60000}')"
if curl --silent --show-error --max-time 75 -X POST \
"$base_url/v2/scrape" -H 'Content-Type: application/json' \
-d "$payload" > "$response"; then curl_exit=0; else curl_exit=$?; fi
success="$(jq -r '.success // false' "$response" 2>/dev/null || printf false)"
status="$(jq -r '.data.metadata.statusCode // .error // "none"' \
"$response" 2>/dev/null || printf unreadable)"
printf '%s\t%s\t%s\t%s\t%s\n' \
"$i" "$target" "$curl_exit" "$success" "$status" >> "$out/summary.tsv"
done
docker stats --no-stream --format json > "$out/container-stats.json"
docker compose restart > "$out/restart.log" 2>&1
for attempt in $(seq 1 60); do
if curl --fail --silent --max-time 5 "$base_url/v0/health/readiness" \
> "$out/readiness-after-restart.json"; then break; fi
sleep 2
done
docker compose ps --all --format json > "$out/containers-after.json"
jq -n '{url:"https://example.com",formats:["markdown"],timeout:60000}' | \
curl --fail-with-body --silent --show-error --max-time 75 \
-X POST "$base_url/v2/scrape" -H 'Content-Type: application/json' -d @- \
> "$out/restart-scrape.json"
jq -e -s 'all(.[]; .success == true and .data.metadata.statusCode == 200)' \
"$out/responses/01.json" "$out/restart-scrape.json" >/dev/null
printf 'Saved verification record: %s\n' "$out"Не заявляйте об успехе на основании этого отчета, пока не пройдут и первый scrape-запрос, и scrape-запрос после перезапуска. Сохраняйте также все неудачные ответы. Ошибка сообщает о DNS, исходящем трафике, антибот-механизмах, состоянии целевого сайта или самого стека; удалив ее, вы обедните отчет.
Где заканчиваются возможности стандартного стека
Self-hosted Firecrawl включает основные маршруты, но не все продуктовые возможности Firecrawl. Добавляйте сервисы только под измеренную потребность, а не просто потому, что существует соответствующая настройка.
Если нужно сравнить варианты поиска и извлечения данных в Cloud за пределами этого решения о развертывании, в сравнении API для ИИ-поиска разобран более широкий круг поставщиков. Выбор альтернативного скрапера — отдельная закупочная задача.
Кому самостоятельный хостинг выгоднее всего
Лучше всего он подходит компаниям, у которых уже есть платформенная команда и требование к контролю. Одной лишь низкой цены страницы при небольшом объеме недостаточно.
Неподходящие сценарии столь же очевидны. Команда из двух человек, которой нужен один надежный scrape-эндпоинт, вместе с ним покупает ненужный операционный проект. Команда, зависящая от Agent, Browser, Interact, скриншотов, действий на странице или управляемого расширенного скрапинга, тоже начинает не с той стороны границы возможностей.
Расчет на 30 дней: контроль оплачивается отдельно
При 1,000 и 10,000 базовых страницах Firecrawl Cloud дешевле в рамках явно заданных консервативных допущений. Для self-hosted-варианта взят DigitalOcean Basic Droplet с 8 vCPUs, 16 GiB RAM и SSD на 320 GiB за $96 в месяц, постоянный Volume на 100 GiB за $10 и $19.20 на еженедельное резервное копирование. Такие цены DigitalOcean указывал 22 сентября 2026 года.
Конфигурация с 16 GiB — не официальный минимум, а бюджетное допущение, основанное на Compose-файле зафиксированной версии. В нем для API-сервиса задан лимит 8 GiB, для Playwright — 4 GiB, при этом база данных, кеш, очередь и другие процессы тоже требуют памяти. Определить размер хоста можно только нагрузочным тестом.
Главная статья расходов — время инженера. В расчет заложены четыре часа на настройку и два часа на обслуживание в первые 30 дней при полной стоимости часа $100. Это допущение, а не рыночный тариф. Подставьте собственную ставку.
В Firecrawl Cloud базовая обработанная страница стоит один кредит. Тариф Free включает 1,000 кредитов за $0. Для 10,000 страниц при помесячной оплате Hobby стоит $19 за 5,000 кредитов, а дополнительные 5,000 кредитов Hobby обойдутся в пять доплат по $5, поэтому общая сумма составит $44. При годовой оплате эффективная стоимость месяца Hobby снижается до $41, но оплачивать нужно сразу за год.

Модель не учитывает налоги, опциональных LLM-провайдеров, прокси, Fire-engine, высокую доступность, сверхлимитный трафик, юридическую проверку и устранение последствий инцидентов. Она также не приписывает self-hosted-машине неподтвержденную производительность. В примере следующего месяца без четырех часов первоначальной настройки self-hosted-вариант стоит $325.20 и все еще проигрывает Cloud при обоих объемах.
Вывод не в том, что самостоятельный хостинг никогда не экономит деньги. Экономия начинается лишь после того, как бенчмарк подтвердит достаточную производительность, а объем позволит распределить постоянные затраты на инфраструктуру и работу инженера между большим числом успешно обработанных страниц. При 10,000 страниц требование к контролю должно оправдывать премию первого месяца в $681.20 по этому расчету.
Три продукта, которые можно построить вокруг этого разрыва
Самая сильная возможность — пакет проверки: он превращает неоднозначную настройку в доказательства, не конкурируя с самим Firecrawl. Единственный актуальный снимок поисковой выдачи содержал восемь связанных запросов и девять вопросов People Also Ask. Пять связанных запросов посвящены Docker, Docker Compose, бесплатному использованию, сравнению с Cloud или API-ключам, а среди вопросов прямо встречаются темы цены и безопасности Firecrawl.
1. Пакет проверки готовности self-hosted-развертывания
Это локальный CLI и отчет для технических руководителей. Он проверяет релиз, хост, состояние Compose, реальный путь scrape-запроса, ожидаемую ошибку, поведение после перезапуска и пробелы до продакшена, а затем формирует подписанный архив для проверки.
Сигнал спроса прямой: среди связанных запросов Google есть Firecrawl self-host Docker, Firecrawl self-host docker compose и Firecrawl self-host API key. Минимальный продаваемый продукт — одна команда, неизменный набор целей, HTML-отчет и средства маскирования чувствительных данных. Ограничение — разнообразие окружений. Отчет доказывает, что именно было выполнено, но не гарантирует одинаковое поведение для любой цели или будущего релиза.
2. Калькулятор стоимости Cloud и self-host
Это калькулятор развертывания, который принимает число успешно обработанных страниц, параметры, параллельность, ставку инженера, целевые параметры восстановления и обязательные функции. Он сопоставляет кредиты Cloud с инфраструктурой и трудозатратами, явно показывая каждое допущение.
В снимке поисковой выдачи есть Firecrawl self-hosted vs cloud, а в People Also Ask — Is Firecrawl expensive? и Is there a free version of Firecrawl available?. Актуальные ценовые ориентиры конкретны: $0 за 1,000 кредитов Cloud, $19 в месяц за 5,000 кредитов Hobby и $5 за каждую дополнительную 1,000 кредитов Hobby. MVP — версионируемая таблица цен и экспорт расчета. Ограничение — производительность self-hosted-системы: без бенчмарка покупателя калькулятор должен показывать диапазон, а не выдуманную точку безубыточности.
3. Шаблон подготовки системы к продакшену
Это стандартизированный инфраструктурный модуль для команд, которые завершили оценку и теперь должны внедрить аутентификацию, TLS, постоянное хранение данных, резервное копирование, проверку восстановления, мониторинг, управление секретами и контролируемый исходящий трафик.
Сигнал спроса делится между вопросом People Also Ask Is Firecrawl safe to use? и связанным запросом Firecrawl self-host API key. В собственном руководстве Firecrawl перечислены все нерешенные вопросы продакшена, поэтому ценность здесь — во внедрении и доказательствах, а не в попытке сделать вид, будто эти обязанности не были описаны. MVP — одна поддерживаемая облачная платформа, инфраструктурный код с зафиксированными версиями, оповещения и тест восстановления. Ограничение — ответственность: типовой модуль не может сертифицировать безопасность или соответствие требованиям конкретного заказчика.
Ограничения и честный вывод
Не разворачивайте Firecrawl самостоятельно ради экономии $19, пока не измерите эксплуатационные затраты. В базовой конфигурации отключена аутентификация API, нет TLS и постоянного хранилища для PostgreSQL, Redis и RabbitMQ, отсутствует высокая доступность. Если открыть к ней доступ из недоверенной сети, временное упрощение для оценки превратится в ошибку безопасности.
Не считайте стандартный стек полным аналогом Cloud. Для LLM-форматов нужен провайдер. Fire-engine устанавливается отдельно. Скриншоты и действия недоступны в стандартных путях. Agent, Browser, Interact, dashboard и корпоративные средства управления остаются функциями Cloud либо требуют отдельно проверенных сервисов.
Не определяйте продакшен-конфигурацию по лимитам Compose или этому расчету. Лимит памяти — не рекомендация по выбору хоста. Запустите неизменный набор, добавьте репрезентативные страницы из своей нагрузки, измерьте параллельность и классы ошибок, затем проверьте восстановление из резервной копии и откат обновления.
Самая веская причина продолжать — требование к контролю, которое Cloud не может обеспечить для команды. Самая слабая — слово «бесплатно».
Что сделать в понедельник
Выделите одному инженеру двухчасовое окно на одноразовом приватном хосте. Зафиксируйте v2.11.162, выполните один scrape-запрос по официальной инструкции, запустите скрипт сохранения доказательств и остановитесь, если scrape-запрос после перезапуска не пройдет. Затем замените ставку $100 в расчете на свою полную стоимость часа и одним предложением сформулируйте требование к контролю. Если оно расплывчато, выбирайте Cloud. Если конкретно — спланируйте меры для продакшена до увеличения объема.
Firecrawl — это дорого?
Все зависит от варианта развертывания и объема страниц. Firecrawl Cloud предоставляет первые 1,000 кредитов на базовые страницы каждого месяца за $0. В этом расчете 10,000 базовых страниц стоят $44 при помесячной оплате Hobby и дополнительных кредитов, а примерная стоимость первого месяца self-hosted-развертывания составляет $725.20 с учетом шести заложенных часов инженера. Самостоятельный хостинг приобретает финансовый смысл, только если ваш бенчмарк и требования к контролю оправдывают постоянные затраты.
Есть ли бесплатная версия Firecrawl?
Да. Firecrawl можно развернуть из открытого исходного кода, а бесплатный тариф Firecrawl Cloud включает 1,000 кредитов в месяц. Открытый код отменяет плату за тариф Firecrawl, но не расходы на вычислительные ресурсы, хранение, безопасность, мониторинг, обновления, восстановление и время инженера.
Безопасно ли использовать Firecrawl?
Базовая конфигурация для оценки безопасна только в доверенной сети при наличии надлежащих средств защиты хоста и сети. В ней отключена аутентификация базы данных, а продакшен-схема аутентификации, TLS, постоянное хранение, высокая доступность и восстановление не предусмотрены. До открытия доступа безопасность зависит от внедрения и проверки этих средств.
Как развернуть Firecrawl самостоятельно через Docker Compose?
Установите Git, Docker, Docker Compose v2 и curl. Переключитесь на v2.11.162, создайте базовый .env из четырех значений, выполните docker compose up --build -d, проверьте каждый сервис и эндпоинт готовности, а затем обязательно получите успешный ответ на POST /v2/scrape. Сохраните исходные результаты и повторите scrape-запрос после перезапуска.
Нужен ли API-ключ для self-hosted Firecrawl?
В конфигурации для доверенной сети задано USE_DB_AUTHENTICATION=false, поэтому для локальных запросов API-ключ не используется. Для общедоступного продакшена этого недостаточно. По документации Firecrawl, продакшен-аутентификация требует полноценной поддерживаемой схемы идентификации и базы данных, а также сетевых средств защиты и TLS. Одной переменной окружения мало.
Если вам нужно развертывание с зафиксированными версиями и полноценной наблюдаемостью, построенное вокруг ваших требований к контролю, изучите системы ИИ для продакшена.
- Последнее обновление
- 22 сент. 2026 г.
- Категория
- Build







