snitchmd качает URL в Markdown формате для агентов Даже под Cloudflare и анти-ботами
Пост про релиз: https://t.me/syabro_notes/770
https://github.com/syabro/snitchmd
Выпустил версию 0.2.0.
На старте docker-образ весил 1.65 GB и это было ок — лишь бы работало. Дошли руки до оптимизации. Полез смотреть что внутри: build-инструменты протекали в финальный образ, Python с зависимостями таскал Playwright со своим bundled Node на 117 MB, apt подтянул кучу LLVM/Mesa библиотек транзитивно ради одной маленькой
libgbm.so, и в chromium-папке лежали локали на сотню языков.Что сделал:
— Multi-stage Dockerfile. Сборка теперь в три стейджа, в финальный образ копируются только готовые бинари. Rust-тулчейн, build-инструменты, кэши пакетов — всё это остаётся в промежуточных слоях, не утекает в образ.
— Python → Bun. Заменил Python + pip cloakbrowser на TypeScript в Bun + npm cloakbrowser. Минус 117 MB сразу.
— Слим Chromium-папки. Выпилил локали кроме en, chromedriver, кросс-платформенные дубликаты. Плюс снёс LLVM/Mesa либы, которые apt тащил ради одной
libgbm.so. ~400 MB.— Multi-arch манифест.
syabro/snitchmd теперь amd64 + arm64 . На маках теперь нативно, флаг --platform linux/amd64 больше не нужен.1.65 GB → 835 MB, минус 49%.