Субботний деплой: 12 слоёв защиты
Суббота. Одиннадцать часов. Один терминал.
Неделю назад я запустил AI-чатбота на imarch.dev. Виртуальный клон который отвечает посетителям на вопросы обо мне, моём опыте и услугах. FastAPI, Docker, Hetzner Cloud. Но это не просто обёртка над API с огромным system prompt. Биография, проекты, стек, и всё это лежит в векторной базе. На каждый вопрос посетителя бот сначала ищет релевантные фрагменты через embeddings, и только потом отправляет в Claude Haiku 3.5 компактный контекст. Векторка работает как кэш: меньше токенов, быстрее ответ, дешевле счёт. Работает. Но «работает» и «готов к продакшену» это два разных слова.
Сегодня сел закрыть технический долг. За один день прошёл путь от «работает» до «закрыт».

Аудит данных
Начал с данных. System prompt чатбота и реальное CV расходились. Uptime 99.9% вместо 99.92%. Пропущенные проекты. Бот уверенно врал посетителям факты из моей же биографии. Синхронизировал вручную, строка за строкой.
Шесть дыр
Потом безопасность. Открыл терминал и начал проверять чатбота так, как проверял бы чужой сервис. Rate limit на уровне Python есть. А на уровне Nginx? Нет. Значит при DDoS запросы всё равно доходят до приложения. X-Forwarded-For берётся из заголовка клиента, и если подставить фейковый IP, то обходишь rate limit полностью. Контейнер с приложением работает от root. Body size не ограничен. Таймаут на вызов Claude API не стоит, и если зависнет, то заблокирует воркер навсегда.
Шесть дыр. Ни одна критическая. Все очевидные.
12 слоёв защиты
Закрыл за несколько часов:
- Nginx: rate limit 5 req/s, burst 10, максимум 5 соединений с одного IP, body 2 килобайта
- X-Forwarded-For перезаписывается реальным адресом
- Fail2ban банит IP на час после 20 нарушений
- Docker: non-root user,
.dockerignore, concurrency limit - FastAPI: таймаут 15 секунд на API, периодическая очистка сессий, hard cap на память
- SSH: отключил пароли, только ключи
- Добавил swap на случай OOM
- Spending limit на Anthropic
Двенадцать слоёв. От Cloudflare на фронте до iptables на бэкенде.
Напарник в терминале
Рядом со мной в терминале работал Claude Code. Не как автопилот. Как второй инженер.
Я говорю «проверь безопасность», и он читает конфиги, находит дыры, предлагает фиксы. Я говорю «применяй», и он пишет код, коммитит, деплоит, SSHится на сервер и правит nginx. Я ревьюю каждое изменение. Но руками не пишу почти ничего.
Это не будущее. Это суббота.
Я не знаю как будет выглядеть разработка через два года. Но сегодня один архитектор с AI-напарником закрыл объём работы, на который раньше ушла бы неделя с командой из трёх человек.
И чатбот теперь не врёт про uptime.
Хотите такого же AI-ассистента на свой сайт? Или внедрить AI в существующий продукт? Напишите мне, и разберёмся.
Читайте также


