// case study · self-hosted infra · [●] live
Pastebox
Self-hosted pastebin со сквозным шифрованием — делиться кодом и секретами из терминала. CLI + API, E2EE, burn-after-read, TTL и вебхуки, полный контроль над своими данными.
ИДЕЯ
Публичные pastebin'ы — это чужой сервер видит твои секреты. А кидать конфиг, лог или одноразовый токен коллеге надо постоянно. Хотелось своё: на своём хосте, с шифрованием, и чтобы работало прямо из терминала — запайпил вывод команды и получил ссылку.
Pastebox — это API + CLI + доки, self-hosted одной Docker-командой. Контент можно шифровать в браузере (ключ живёт только в URL-фрагменте и не доходит до сервера), ставить срок жизни, жечь после первого чтения и слать события в вебхуки/Telegram.
CLI-FIRST
// запайпил — получил ссылку$ echo "super secret" | pastebox create --e2ee ✓ https://paste.example.com/p/aBcDeFgH#key=… // шифр в браузере, ключ в URL $ git diff | pastebox create --syntax diff --title "My changes" ✓ https://paste.example.com/p/9f3k2pQ $ pastebox create --file secret.txt --burn --title "One-time secret" ✓ https://paste.example.com/p/x7YzL0 // сгорит после первого чтения $ cat /var/log/app.log | pastebox create --syntax log --ttl 3600 ✓ https://paste.example.com/p/Qw3rT5 // истечёт через час $ pastebox list --limit 3 ID TITLE AGE TTL 9f3k2pQ My changes 2m — x7YzL0 One-time secret 5m burn Qw3rT5 — 8m 59m
ЧТО ВНУТРИ
Сквозное шифрование: контент шифруется в браузере, ключ живёт только в URL-фрагменте и до сервера не доходит.
Серверный режим на XChaCha20-Poly1305 — per-paste ключи под мастер-ключом, military-grade AEAD.
Паста самоуничтожается после первого просмотра — для одноразовых секретов и токенов.
Срок жизни на пасту; истёкшее чистится фоновым воркером автоматически.
События пасты по HTTP с HMAC-SHA256 подписью и авто-ретраями.
Привязка Telegram-чата — мгновенные уведомления о новых пастах.
Полноценный CLI: create/get/list/delete, авто-подсветка по расширению, пайп из stdin.
Своя инфра одной Docker-командой: Caddy, бэкапы, конфиг под деплой в Coolify.
АРХИТЕКТУРА
// pnpm-монорепоenvelope-крипто (packages/shared)
- pnpm workspaces:
apps/api(Fastify + фоновые воркеры),apps/cli,apps/docs(VitePress) иpackages/shared— крипто-примитивы и Zod-схемы общие для всех. - E2EE vs envelope: в режиме E2EE сервер видит только шифртекст (ключ в URL-фрагменте); в серверном режиме — envelope-шифрование XChaCha20-Poly1305 с per-paste ключами.
- Self-host: Dockerfile + Caddy + бэкап-утилиты в
infra/, готово к деплою в Coolify.
ДЛЯ АГЕНТОВ
// агент сложил → отдал ссылку → чат чистыйPastebox можно сделать дефолтным «sink» для вывода кодинг-агента: вместо простыней логов, диффов и дампов в чат — агент кладёт их в Pastebox и отдаёт ссылку. Два способа подключения:
- MCP-сервер
pastebox-mcp(npm) — нативный инструментcreate_pasteдля любого MCP-совместимого агента:npx -y pastebox-mcp, auth через env. - Скачиваемые скилы под Claude Code, Codex, Cursor и generic — учат агента, когда и как пастить; качаются прямо с лендинга одним zip.
- Без E2EE по MCP/curl: для секретов остаётся CLI
pastebox --e2ee --burn— это явно прописано в описании тула и доках, чтобы агент не слил токен.
«For Agents» — карточки Claude Code / Codex / Cursor / любой MCP-агент + скачивание
СКРИНШОТЫ
// клик = полный размер · pastebox.devisfun.ru
Лендинг — фичи: E2EE, envelope, burn, TTL, webhooks, Telegram




