自托管的代码片段分享工具。粘贴代码,拿链接,完事。
Self-hosted pastebin. Paste code, get a link. Done.
npx snapbin浏览器打开 http://localhost:3000,粘贴,点 Create,复制链接。
# 全局安装 / Global
npm install -g snapbin
snapbin
# 或者直接用 / Or just run
npx snapbinsnapbin [options]
--port <n> 端口 (默认 3000)
--host <addr> 绑定地址 (默认 0.0.0.0)
--base-url <url> 公网 URL 前缀
--max-snaps <n> 最大存储条数 (默认 10000)
--rate-limit <n> 每 IP 每分钟创建上限 (默认 10)
--help 帮助
# 创建 / Create
curl -X POST localhost:3000/api/snaps \
-H 'Content-Type: application/json' \
-d '{"content":"hello world","lang":"python","expiry":"1w"}'
# 读取 / Read
curl localhost:3000/api/snaps/{id}
# 原始文本 / Raw
curl localhost:3000/raw/{id}
# 密码保护 / Password protected
curl -X POST localhost:3000/api/snaps/{id}/verify \
-H 'Content-Type: application/json' \
-d '{"password":"secret"}'
# → {"token":"xxx"}
curl localhost:3000/api/snaps/{id}?token=xxx| 层级 | 实现 |
|---|---|
| 存储加密 | AES-256-GCM,每条独立 IV |
| 密码存储 | scrypt 哈希 + 随机盐 |
| 密码传输 | POST + 短时效 token(30 分钟),不走 URL |
| 访问控制 | IP 速率限制 + 存储容量上限 |
const { startServer, server } = require('snapbin');
startServer(); // 启动服务数据目录:~/.snapbin/
snaps.json— 加密的片段数据.key— AES-256 密钥(自动生成,权限 0600)
语法高亮依赖 cdnjs CDN。纯内网环境需自行托管 Prism.js 文件。
Syntax highlighting loads from cdnjs CDN. For offline use, self-host Prism.js.
MIT © aiyang-zh