snapbin
v1.0.0
Published
Self-hosted pastebin — paste code, get a share link. Zero config, zero database.
Maintainers
Readme
📋 SnapBin
自托管的代码片段分享工具。粘贴代码,拿链接,完事。
Self-hosted pastebin. Paste code, get a link. Done.
快速开始 / Quick Start
npx snapbin浏览器打开 http://localhost:3000,粘贴,点 Create,复制链接。
安装 / Install
# 全局安装 / Global
npm install -g snapbin
snapbin
# 或者直接用 / Or just run
npx snapbin参数 / Options
snapbin [options]
--port <n> 端口 (默认 3000)
--host <addr> 绑定地址 (默认 0.0.0.0)
--base-url <url> 公网 URL 前缀
--max-snaps <n> 最大存储条数 (默认 10000)
--rate-limit <n> 每 IP 每分钟创建上限 (默认 10)
--help 帮助API
# 创建 / 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安全 / Security
| 层级 | 实现 | |---|---| | 存储加密 | AES-256-GCM,每条独立 IV | | 密码存储 | scrypt 哈希 + 随机盐 | | 密码传输 | POST + 短时效 token(30 分钟),不走 URL | | 访问控制 | IP 速率限制 + 存储容量上限 |
编程调用 / Programmatic Usage
const { startServer, server } = require('snapbin');
startServer(); // 启动服务数据存储 / Storage
数据目录:~/.snapbin/
snaps.json— 加密的片段数据.key— AES-256 密钥(自动生成,权限 0600)
纯内网 / Offline
语法高亮依赖 cdnjs CDN。纯内网环境需自行托管 Prism.js 文件。
Syntax highlighting loads from cdnjs CDN. For offline use, self-host Prism.js.
License
MIT © aiyang-zh
